<SEC-DOCUMENT>0000851205-24-000027.txt : 20240215
<SEC-HEADER>0000851205-24-000027.hdr.sgml : 20240215
<ACCEPTANCE-DATETIME>20240215063250
ACCESSION NUMBER:		0000851205-24-000027
CONFORMED SUBMISSION TYPE:	10-K
PUBLIC DOCUMENT COUNT:		139
CONFORMED PERIOD OF REPORT:	20231231
FILED AS OF DATE:		20240215
DATE AS OF CHANGE:		20240215

FILER:

	COMPANY DATA:	
		COMPANY CONFORMED NAME:			COGNEX CORP
		CENTRAL INDEX KEY:			0000851205
		STANDARD INDUSTRIAL CLASSIFICATION:	INDUSTRIAL INSTRUMENTS FOR MEASUREMENT, DISPLAY, AND CONTROL [3823]
		ORGANIZATION NAME:           	08 Industrial Applications and Services
		IRS NUMBER:				042713778
		STATE OF INCORPORATION:			MA
		FISCAL YEAR END:			1231

	FILING VALUES:
		FORM TYPE:		10-K
		SEC ACT:		1934 Act
		SEC FILE NUMBER:	001-34218
		FILM NUMBER:		24641986

	BUSINESS ADDRESS:	
		STREET 1:		ONE VISION DR
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
		BUSINESS PHONE:		5086503000

	MAIL ADDRESS:	
		STREET 1:		ONE VISION DRIVE
		CITY:			NATICK
		STATE:			MA
		ZIP:			01760
</SEC-HEADER>
<DOCUMENT>
<TYPE>10-K
<SEQUENCE>1
<FILENAME>cgnx-20231231.htm
<DESCRIPTION>10-K
<TEXT>
<XBRL>
<?xml version='1.0' encoding='ASCII'?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:country="http://xbrl.sec.gov/country/2023" xmlns:xbrldi="http://xbrl.org/2006/xbrldi" xmlns:dei="http://xbrl.sec.gov/dei/2023" xmlns:cgnx="http://cognex.com/20231231" xmlns:srt="http://fasb.org/srt/2023" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ixt-sec="http://www.sec.gov/inlineXBRL/transformation/2015-08-31" xmlns:utr="http://www.xbrl.org/2009/utr" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:us-gaap="http://fasb.org/us-gaap/2023" xmlns:iso4217="http://www.xbrl.org/2003/iso4217" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:currency="http://xbrl.sec.gov/currency/2023" xmlns:ixt="http://www.xbrl.org/inlineXBRL/transformation/2020-02-12" xmlns:ecd="http://xbrl.sec.gov/ecd/2023" xmlns:ix="http://www.xbrl.org/2013/inlineXBRL" xmlns:link="http://www.xbrl.org/2003/linkbase" xml:lang="en-US"><head><meta http-equiv="Content-Type" content="text/html"/>


<title>cgnx-20231231</title></head><body><div style="display:none"><ix:header><ix:hidden><ix:nonNumeric contextRef="c-1" name="dei:AmendmentFlag" id="f-30">false</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalYearFocus" id="f-31">2023</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:DocumentFiscalPeriodFocus" id="f-32">FY</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:EntityCentralIndexKey" id="f-33">0000851205</ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="dei:CurrentFiscalYearEndDate" format="ixt:date-month-day" id="f-34">12/31</ix:nonNumeric><ix:nonFraction unitRef="shares" contextRef="c-3" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-35">171,633,726</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-2" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="f-36">9,631,957,405</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-404">4,389</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-405">5,943</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-406">2,206</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-407">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-408">&#8212;</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" format="ixt:fixed-zero" scale="3" id="f-409">&#8212;</ix:nonFraction><ix:nonNumeric contextRef="c-40" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-424">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="c-42" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-430">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="c-44" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-432">P5Y</ix:nonNumeric><ix:nonNumeric contextRef="c-46" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" id="f-434">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-49" name="cgnx:ProductWarrantyPeriod" id="f-438">P1Y</ix:nonNumeric><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-462">1,271,000</ix:nonFraction><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-463">1,271,000</ix:nonFraction><ix:nonNumeric contextRef="c-51" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-464">2</ix:nonNumeric><ix:nonNumeric contextRef="c-40" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" id="f-465">P2Y</ix:nonNumeric><ix:nonNumeric contextRef="c-52" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-466">5</ix:nonNumeric><ix:nonNumeric contextRef="c-53" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-467">2</ix:nonNumeric><ix:nonNumeric contextRef="c-54" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-468">5</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:MaximumInvestmentOfCompanyInPartnership" scale="-2" id="f-469">5</ix:nonFraction><ix:nonNumeric contextRef="c-55" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-470">11</ix:nonNumeric><ix:nonNumeric contextRef="c-42" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-471">5</ix:nonNumeric><ix:nonNumeric contextRef="c-44" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-472">5</ix:nonNumeric><ix:nonNumeric contextRef="c-46" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:duryear" id="f-473">3</ix:nonNumeric><ix:nonNumeric contextRef="c-49" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:duryear" id="f-474">1</ix:nonNumeric><ix:nonNumeric contextRef="c-49" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-475">30</ix:nonNumeric><ix:nonNumeric contextRef="c-7" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="f-963">http://fasb.org/us-gaap/2023#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-8" name="us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" id="f-964">http://fasb.org/us-gaap/2023#OtherAssetsNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-8" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="f-965">http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-7" name="us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" id="f-966">http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent</ix:nonNumeric><ix:nonNumeric contextRef="c-192" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1065">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="c-195" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1068">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-197" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1070">P3Y</ix:nonNumeric><ix:nonNumeric contextRef="c-196" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1071">P4Y</ix:nonNumeric><ix:nonNumeric contextRef="c-198" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" id="f-1072">P3Y</ix:nonNumeric><ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="f-1205">50</ix:nonFraction><ix:nonFraction unitRef="segment" contextRef="c-4" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1424">one</ix:nonFraction><ix:nonNumeric contextRef="c-303" name="ecd:TrdArrDuration" format="ixt-sec:durday" id="f-1559">360</ix:nonNumeric></ix:hidden><ix:references xml:lang="en-US"><link:schemaRef xlink:type="simple" xlink:href="cgnx-20231231.xsd"/></ix:references><ix:resources><xbrli:context id="c-1"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-2"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-07-02</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="usd"><xbrli:measure>iso4217:USD</xbrli:measure></xbrli:unit><xbrli:context id="c-3"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2024-01-28</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="shares"><xbrli:measure>xbrli:shares</xbrli:measure></xbrli:unit><xbrli:context id="c-4"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-5"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="usdPerShare"><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:context id="c-6"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-7"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-8"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-9"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-10"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-11"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-12"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-13"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-14"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-15"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-16"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-17"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-18"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-19"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-20"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-21"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-22"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-23"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-24"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-25"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-26"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-27"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-28"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-29"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-30"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-31"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-32"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-33"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-34"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-35"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-36"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-37"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-38"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-39"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-40"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-41"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-42"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-43"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-44"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-45"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-46"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-47"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-48"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-49"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-50"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-51"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-52"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-53"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-54"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="number"><xbrli:measure>xbrli:pure</xbrli:measure></xbrli:unit><xbrli:context id="c-55"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-56"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-57"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-58"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-59"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-60"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-61"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-62"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-63"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-64"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-65"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-66"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-67"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-68"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-69"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-70"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-71"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-72"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-73"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-74"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-75"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-76"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-77"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-78"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-79"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-80"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-81"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-82"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-83"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-84"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-85"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-86"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-87"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-88"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-89"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-90"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-91"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-92"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-93"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-94"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-95"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-96"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-97"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-98"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-99"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-100"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-101"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-102"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:LiabilityForCatastropheClaimsByCatastrophicEventAxis">us-gaap:DamageFromFireExplosionOrOtherHazardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-103"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:BacNinhVietnamMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="sqft"><xbrli:measure>utr:sqft</xbrli:measure></xbrli:unit><xbrli:context id="c-104"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="lease_component"><xbrli:measure>cgnx:lease_component</xbrli:measure></xbrli:unit><xbrli:context id="c-105"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-106"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-107"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-06-30</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-108"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-06-01</xbrli:startDate><xbrli:endDate>2023-06-30</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-109"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-110"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-111"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-12-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-112"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SACSiriusAdvancedCyberneticsGmbHMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-113"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-114"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-115"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-116"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-117"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-118"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-119"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-120"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-121"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-122"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-123"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-124"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-10-18</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-125"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-126"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2022-12-07</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-127"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-12-07</xbrli:startDate><xbrli:endDate>2022-12-07</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-128"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionNetworksAndCustomerRelationshipsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-05-26</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-129"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-130"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="jpy"><xbrli:measure>iso4217:JPY</xbrli:measure></xbrli:unit><xbrli:context id="c-131"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-132"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="eur"><xbrli:measure>iso4217:EUR</xbrli:measure></xbrli:unit><xbrli:context id="c-133"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-134"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="sgd"><xbrli:measure>iso4217:SGD</xbrli:measure></xbrli:unit><xbrli:context id="c-135"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-136"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="mxn"><xbrli:measure>iso4217:MXN</xbrli:measure></xbrli:unit><xbrli:context id="c-137"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-138"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="cny"><xbrli:measure>iso4217:CNY</xbrli:measure></xbrli:unit><xbrli:context id="c-139"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-140"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="huf"><xbrli:measure>iso4217:HUF</xbrli:measure></xbrli:unit><xbrli:context id="c-141"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-142"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="gbp"><xbrli:measure>iso4217:GBP</xbrli:measure></xbrli:unit><xbrli:context id="c-143"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-144"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-145"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-146"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="cad"><xbrli:measure>iso4217:CAD</xbrli:measure></xbrli:unit><xbrli:context id="c-147"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-148"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="chf"><xbrli:measure>iso4217:CHF</xbrli:measure></xbrli:unit><xbrli:context id="c-149"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-150"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-151"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-152"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-153"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-154"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-155"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-156"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-157"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-158"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-159"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-160"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-161"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-162"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-163"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-164"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-165"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-166"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-167"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-168"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-169"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-170"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-171"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-172"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2016-04-27</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-173"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2018-04-25</xbrli:instant></xbrli:period></xbrli:context><xbrli:unit id="vote"><xbrli:measure>cgnx:Vote</xbrli:measure></xbrli:unit><xbrli:context id="c-174"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2018-10-29</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-175"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-176"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-03-12</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-177"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-178"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-179"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-03-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-180"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-181"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-182"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-183"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-10-03</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-184"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2021-10-04</xbrli:startDate><xbrli:endDate>2022-10-02</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-185"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2022-10-03</xbrli:startDate><xbrli:endDate>2023-10-01</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-186"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-187"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-05-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-188"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2021And2007StockOptionAndIncentivePlansMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-05-03</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-189"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-05-04</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-190"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-191"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-192"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-193"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-194"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-195"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-196"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-197"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-198"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-199"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-200"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-201"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-202"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-203"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-204"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-205"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-206"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-207"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-208"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-209"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-210"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-211"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="group"><xbrli:measure>cgnx:group</xbrli:measure></xbrli:unit><xbrli:context id="c-212"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-213"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-214"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-215"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-216"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-217"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-218"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-219"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-220"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-221"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-222"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:StateAdministrationOfTaxationChinaMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-223"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:JP</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-224"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:KP</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-225"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-226"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier></xbrli:entity><xbrli:period><xbrli:instant>2019-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-227"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-228"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-229"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-230"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-231"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-232"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-233"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-234"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-235"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-236"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-237"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-238"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="segment"><xbrli:measure>cgnx:Segment</xbrli:measure></xbrli:unit><xbrli:context id="c-239"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-240"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-241"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-242"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-243"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-244"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-245"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-246"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-247"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-248"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-249"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-250"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-251"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-252"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-253"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-254"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-255"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-256"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-257"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-258"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-259"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-260"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-18</xbrli:startDate><xbrli:endDate>2023-10-18</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-261"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2024-01-01</xbrli:startDate><xbrli:endDate>2024-03-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-262"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-263"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:unit id="employees"><xbrli:measure>cgnx:Employees</xbrli:measure></xbrli:unit><xbrli:context id="c-264"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-265"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-266"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-267"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-268"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-269"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-270"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-271"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-272"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-273"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-274"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-275"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-276"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-277"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-278"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-279"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-280"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember><xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-281"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2024-02-15</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-282"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-283"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-284"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-285"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-286"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-287"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-288"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-289"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-290"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-291"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-292"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-293"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-294"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-295"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-296"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2022-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-297"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-01-01</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-298"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-299"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2021-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-300"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2022-01-01</xbrli:startDate><xbrli:endDate>2022-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-301"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2020-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-302"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2021-01-01</xbrli:startDate><xbrli:endDate>2021-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-303"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:startDate>2023-10-02</xbrli:startDate><xbrli:endDate>2023-12-31</xbrli:endDate></xbrli:period></xbrli:context><xbrli:context id="c-304"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><xbrli:context id="c-305"><xbrli:entity><xbrli:identifier scheme="http://www.sec.gov/CIK">0000851205</xbrli:identifier><xbrli:segment><xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember><xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockSaleMember</xbrldi:explicitMember></xbrli:segment></xbrli:entity><xbrli:period><xbrli:instant>2023-12-31</xbrli:instant></xbrli:period></xbrli:context><ix:relationship arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote" fromRefs="f-94 f-93 f-92" linkRole="http://www.xbrl.org/2003/role/link" toRefs="fn-1" order="1"></ix:relationship></ix:resources></ix:header></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_1"></div><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:3pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">UNITED STATES</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">SECURITIES AND EXCHANGE COMMISSION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:11pt;font-weight:700;line-height:120%">Washington, D.C. 20549</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:22pt;font-weight:700;line-height:120%">FORM <ix:nonNumeric contextRef="c-1" name="dei:DocumentType" id="f-1">10-K</ix:nonNumeric> </span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:120%">(Mark One)</span></div><div style="text-indent:24.75pt"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentAnnualReport" format="ixt-sec:boolballotbox" id="f-2">&#9746;</ix:nonNumeric></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">   Annual report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the fiscal year ended <ix:nonNumeric contextRef="c-1" name="dei:DocumentPeriodEndDate" format="ixt:date-monthname-day-year-en" id="f-3">December 31, 2023</ix:nonNumeric> or</span></div><div style="text-indent:24.75pt"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentTransitionReport" format="ixt-sec:boolballotbox" id="f-4">&#9744;</ix:nonNumeric> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"> Transition report pursuant to Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 for the transition period from </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:underline">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">to</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;text-decoration:underline">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">.</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%">Commission File Number </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityFileNumber" id="f-5">001-34218</ix:nonNumeric></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%"> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:17pt;font-weight:700;line-height:120%;text-decoration:underline"><ix:nonNumeric contextRef="c-1" name="dei:EntityRegistrantName" id="f-6">COGNEX CORP</ix:nonNumeric>ORATION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:120%">(Exact name of registrant as specified in its charter)</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:511.50pt"><tr><td style="width:1.0pt"/><td style="width:13.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:136.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:252.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:13.75pt"/><td style="width:1.0pt"/></tr><tr style="height:12pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityIncorporationStateCountryCode" format="ixt-sec:stateprovnameen" id="f-7">Massachusetts</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityTaxIdentificationNumber" id="f-8">04-2713778</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:20pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(State or other jurisdiction of<br/>incorporation or organization)</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(I.R.S. Employer<br/>Identification No.)</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressAddressLine1" id="f-9">One Vision Drive</ix:nonNumeric> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:EntityAddressCityOrTown" id="f-10">Natick</ix:nonNumeric>,&#160;<ix:nonNumeric contextRef="c-1" name="dei:EntityAddressStateOrProvince" format="ixt-sec:stateprovnameen" id="f-11">Massachusetts</ix:nonNumeric>&#160;<ix:nonNumeric contextRef="c-1" name="dei:EntityAddressPostalZipCode" id="f-12">01760</ix:nonNumeric>-2059</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">(<ix:nonNumeric contextRef="c-1" name="dei:CityAreaCode" id="f-13">508</ix:nonNumeric>) <ix:nonNumeric contextRef="c-1" name="dei:LocalPhoneNumber" id="f-14">650-3000</ix:nonNumeric> </span></div><div style="text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:512.25pt"><tr><td style="width:1.0pt"/><td style="width:78.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:174.25pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:85.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:78.25pt"/><td style="width:1.0pt"/></tr><tr style="height:21pt"><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:400;line-height:100%">(Address, including zip code, and telephone number,<br/>including area code, of principal executive offices)</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Securities registered pursuant to Section&#160;12(b) of the Act:</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:37.609%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.574%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:39.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Title of Each Class</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Trading Symbol(s)</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">Name of Exchange on Which Registered</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:Security12bTitle" id="f-15">Common Stock, par value $.002 per share</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:TradingSymbol" id="f-16">CGNX</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:SecurityExchangeName" format="ixt-sec:exchnameen" id="f-17">The NASDAQ Stock Market LLC</ix:nonNumeric></span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Securities registered pursuant to Section&#160;12(g) of the Act: None</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityWellKnownSeasonedIssuer" id="f-18">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark if the registrant is not required to file reports pursuant to Section&#160;13 or Section&#160;15(d) of the Act.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityVoluntaryFilers" id="f-19">No</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant (1)&#160;has filed all reports required to be filed by Section&#160;13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that the registrant was required to file such reports), and (2)&#160;has been subject to such filing requirements for the past 90 days.</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityCurrentReportingStatus" id="f-20">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityInteractiveDataCurrent" id="f-21">Yes</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant is a large accelerated filer, an accelerated filer, a non-accelerated filer, a smaller reporting company, or emerging growth company. See the definitions of &#8220;large accelerated filer,&#8221; &#8220;accelerated filer,&#8221; &#8220;smaller reporting company&#8221; and "emerging growth company" in Rule 12b-2 of the Exchange Act. (Check one):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:0.1%"/><td style="width:2.732%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:45.967%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.272%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:44.796%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityFilerCategory" format="ixt-sec:entityfilercategoryen" id="f-22">Large accelerated filer</ix:nonNumeric></span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Accelerated filer</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Non-accelerated filer</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntitySmallBusiness" format="ixt:fixed-false" id="f-23">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Smaller&#160;reporting&#160;company</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityEmergingGrowthCompany" format="ixt:fixed-false" id="f-24">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Emerging growth company</span></td></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">If an emerging growth company, indicate by check mark if the registrant has elected not to use the extended transition period for complying with any new or revised financial accounting standards provided pursuant to Section 13(a) of the Exchange Act. </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%">o</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether the registrant has filed a report on and attestation to its management&#8217;s assessment of the effectiveness of its internal control over financial reporting under Section 404(b) of the Sarbanes-Oxley Act (15 U.S.C. 7262(b)) by the registered public accounting firm that prepared or issued its audit report. </span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:IcfrAuditorAttestationFlag" format="ixt:fixed-true" id="f-25">&#9746;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:11pt;font-weight:400;line-height:100%">&#9744;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">If securities are registered pursuant to Section 12(b) of the Act, indicate by check mark whether the financial statements of the registrant included in the filing reflect the correction of an error to previously issued financial statements. </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:DocumentFinStmtErrorCorrectionFlag" format="ixt:fixed-false" id="f-26">o</ix:nonNumeric></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Indicate by check mark whether any of those error corrections are restatements that required a recovery analysis of incentive-based compensation received by any of the registrant&#8217;s executive officers during the relevant recovery period pursuant to &#167;240.10D-1(b). </span><span style="color:#000000;font-family:'Wingdings',sans-serif;font-size:8pt;font-weight:400;line-height:120%">o</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:112%">Indicate by check mark whether the registrant is a shell company (as defined in Rule 12b-2 of the Exchange Act).</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:22.507%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.536%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:3.738%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.791%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.146%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.047%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Yes</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-1" name="dei:EntityShellCompany" format="ixt:fixed-false" id="f-27">&#9744;</ix:nonNumeric></span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">No</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial Unicode MS',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#9746;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;&#160;</span></td><td colspan="3" style="padding:0 1pt"/></tr></table></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Aggregate market value of voting stock held by non-affiliates of the registrant as of July&#160;2, 2023: $<ix:nonFraction unitRef="usd" contextRef="c-2" decimals="0" name="dei:EntityPublicFloat" format="ixt:num-dot-decimal" scale="0" id="f-28">9,631,957,405</ix:nonFraction> </span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">Common stock, par value $.002 per share, outstanding as of January&#160;28, 2024: <ix:nonFraction unitRef="shares" contextRef="c-3" decimals="0" name="dei:EntityCommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="0" id="f-29">171,633,726</ix:nonFraction> shares</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">DOCUMENTS INCORPORATED BY REFERENCE:</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">The registrant intends to file a Definitive Proxy Statement pursuant to Regulation 14A within 120&#160;days of the end of the fiscal year ended December&#160;31, 2023. Portions of such Proxy Statement are incorporated by reference in Part&#160;III of this report.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_7"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ANNUAL REPORT ON FORM 10-K</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FOR THE YEAR ENDED DECEMBER 31, 2023 </span></div><div style="margin-top:18pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:14.104%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:72.584%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.012%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_10">PART I</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_10">1</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_13">BUSINESS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_13">1</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_16">RISK FACTORS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_16">6</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;1B.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_19">UNRESOLVED STAFF COMMENTS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_19">16</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 1C.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_2050">CYBERSECURITY</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_2050">16</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 2.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_22">PROPERTIES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_22">16</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 3.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_25">LEGAL PROCEEDINGS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_25">17</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 4.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_28">MINE SAFETY DISCLOSURES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_28">17</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_31">PART II</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_31">18</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 5.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_34">MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_34">18</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 6.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_37">[RESERVED]</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_37">20</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 7.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_40">MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_40">20</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;7A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_55">QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_55">30</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 8.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_58">FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_58">33</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_211">CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_211">72</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9A.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_214">CONTROLS AND PROCEDURES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_214">72</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9B.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_217">OTHER INFORMATION</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_217">74</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 9C.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_220">DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_220">74</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_223">PART&#160;III</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_223">74</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;10.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_226">DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_226">74</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;11.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_229">EXECUTIVE COMPENSATION</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_229">74</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;12.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_232">SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_232">74</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;13.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_235">CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_235">75</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;14.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_238">PRINCIPAL ACCOUNTING FEES AND SERVICES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_238">75</a></span></div></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_241">PART&#160;IV</a></span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_241">75</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM&#160;15.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_244">EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_244">75</a></span></div></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">ITEM 16.</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_247">FORM 10-K SUMMARY</a></span></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_247">75</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><span><br/></span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_10"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART I</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This Annual Report on Form 10-K contains forward-looking statements within the meaning of the federal securities laws. Readers can identify these forward-looking statements by our use of the words &#8220;expects,&#8221; &#8220;anticipates,&#8221; &#8220;estimates,&#8221; &#8220;believes,&#8221; &#8220;projects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;shall,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; and similar words and other statements of a similar sense. Our future results may differ materially from current results and from those projected in the forward-looking statements as a result of known and unknown risks and uncertainties. Readers should pay particular attention to considerations described in the section captioned &#8220;Risk Factors,&#8221; appearing in Part&#160;I&#160;- Item&#160;1A of this Annual Report on Form 10-K. We caution readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. We disclaim any obligation to subsequently revise forward-looking statements to reflect the occurrence of anticipated or unanticipated events or circumstances after the date such statements are made.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Unless the context otherwise requires, the words &#8220;Cognex</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline">&#174;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">,&#8221; the &#8220;Company,&#8221; &#8220;we,&#8221; &#8220;our,&#8221; &#8220;us,&#8221; and &#8220;our company&#8221; refer to Cognex Corporation and its consolidated subsidiaries.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_13"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1: BUSINESS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Company</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (&#8220;the Company&#8221; or &#8220;Cognex&#8221;) invents and commercializes technologies that address some of the most critical manufacturing and distribution challenges. We are a leading global provider of machine vision products and solutions that improve efficiency and quality in a wide range of businesses across attractive industrial end markets. Our solutions blend physical products and software to capture and analyze visual information, allowing for the automation of manufacturing and distribution tasks for customers worldwide. Machine vision products are used to automate the manufacturing or distribution and tracking of discrete items, such as mobile phones, electric vehicle batteries, and e-commerce packages, by locating, identifying, inspecting, and measuring them. Machine vision is particularly valuable for applications in which human vision is inadequate to meet requirements for size, accuracy, or speed, or in instances where substantial cost savings are obtained through the reduction of labor or improved product quality.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex operates in one segment. We offer a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers. Cognex sells to customers in nearly all industries in which discrete items are manufactured on an assembly line or moved through a distribution center. Our largest industries by revenue are the automotive, logistics, and consumer electronics industries, which combined represented approximately 65% of our total revenue in 2023. Cognex was incorporated in Massachusetts in 1981.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Industry </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machine vision is used in a variety of industries where technology is widely recognized as an important component of automated production, distribution, and quality assurance. Virtually every manufacturer or logistics provider can achieve better quality and efficiency by using machine vision. This results in a broad base of customers across a variety of industries, including automotive, logistics, consumer electronics, medical-related, semiconductor, consumer products, and food and beverage.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex is one of the leading machine vision companies in the world. Our competitors include other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators. We also compete with internal engineering departments of current or prospective customers, as well as open-source tools available for free from various companies.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s ability to compete depends on our ability to design new products and functionality that meet evolving customer requirements, and then to manufacture and sell those high-quality products in a timely manner. The primary competitive factors affecting the choice of a machine vision system include product functionality and performance, ease of use, vendor reputation, price, and post-sales support. The importance of each of these factors varies depending on the specific needs of the customer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our Business Strategies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Expansion of market position</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our goal is to expand our position as a leading worldwide machine vision provider by growing in our core markets, as well as expanding into new markets and with new customers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We continue to invest in our core markets, such as automotive, logistics, and consumer electronics where we are a leading provider of vision and ID products for factory and warehouse automation. Within these markets, we are </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">1</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">making significant investments to focus on what we believe to be the fastest-growing applications and use cases. In the logistics market, we are moving beyond barcode reading into more complex applications in distribution centers and parcel and post warehouses. In the automotive market, we are developing new solutions for fast-growing electric vehicle and battery manufacturers and suppliers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We reach a broad base of customers through our worldwide direct sales force that sells primarily to large, strategic customers, as well as through our network of distributors and integrators that sell primarily to smaller customers who may be more geographically remote or may require supplemental technical support or integration assistance. Our &#8220;Emerging Customer&#8221; sales initiative is expanding our sales force to reach customers new to factory automation or new to Cognex, who have yet to fully benefit from all that machine vision can offer. We believe these potential customers are increasingly looking for automation solutions that are easy to implement, easy to use, and provide the best technology. We expect our Emerging Customer strategy to broaden our reach, increase penetration, and further diversify our customer base.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Growth through innovation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We invest heavily in research and development to maintain our position as a technology leader in machine vision. We invest in technology that addresses the most challenging vision applications, such as our deep learning vision software that solves complex applications with unpredictable defects and deviations. We also invest in technology that makes vision easier to use and more affordable, and therefore, available to a broader base of customers, such as our vision sensor products that enable customers with less technical capabilities to use machine vision while minimizing installation and applications support.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inorganic growth</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We plan to drive inorganic growth through expansion in adjacent markets. We are focusing specifically on markets in which we expect our products and solutions, application expertise, and customer and industry relationships to enable us to provide significant value to end-users.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We seek out selective opportunities in new applications and markets through the acquisition of businesses and technologies that are synergistic with our core markets. We are selective in choosing businesses and technologies that we believe will enhance long-term growth and profitability. In the fourth quarter of 2023, we acquired Moritex Corporation, a global provider of premium optical components based in Japan. With an enterprise value of approximately $270 million, this was Cognex's largest acquisition to-date. We plan to continue to seek acquisition opportunities to expand our product lines, customer base, distribution network, and technical talent.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Sustainable profitability</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We prioritize choosing growth opportunities that we believe will maintain our gross margin percentages, which have averaged in the low to mid-70 percent range in the past several years and reflect the value that we believe our customers place on our innovative products. Our relatively high gross margins have the potential to provide us with strong incremental profit margins, leading to high operating leverage in our financial model.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Culture</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our strong and unique corporate culture reinforces our values of customer first and innovation, and enables us to attract and retain smart, enthusiastic, and creative talent who are motivated to solve the most challenging vision tasks for customers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Our End Markets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Automotive</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The automotive market has been one of our largest markets for the past twenty years. Machine vision is used in almost every step of vehicle manufacturing, from measuring inbound parts, to guiding robot assembly, to inspecting the stitching on leather seats. We currently expect the proliferation of electronics in automobiles to be a significant growth driver in both electric vehicles and internal combustion engine vehicles. For example, innovations in safety, driver assist, and entertainment features increase the number of items to be placed, tracked, measured, and inspected by machine vision.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also anticipate a multi-year wave of investment in Electric Vehicle (&#8220;EV&#8221;) manufacturing equipment, particularly related to battery manufacturing and inspection. Cognex works closely with the major EV battery manufacturers who we believe produce the majority of the world&#8217;s automotive batteries. We believe that these manufacturers are positioned to grow within Asia, and to expand both independently and through partnerships in the Americas and Europe. We expect our existing relationships and proven offerings to position us to capture a significant share of this growth. These anticipated trends may offset expected reductions in traditional powertrain investments on internal combustion engine vehicles, leading to growth in the automotive market.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">2</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Consumer Electronics</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We anticipate major investments in new generations of consumer electronics. A significant amount of visual inspection in consumer electronics is still done manually by humans. As labor becomes more costly and increasingly scarcer, these customers are looking for productivity initiatives to automate these processes. We also expect leading companies in this space to continue to grow based on new technologies that we expect to succeed and build on the smartphone. We believe new devices will be difficult to manufacture on a large scale, and therefore will require more innovative vision products in that process. Cognex has close relationships with the largest and most sophisticated companies in the consumer electronics market, and we expect to be a partner of choice as they bring new technologies to market.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Logistics</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe our e-commerce logistics business is differentiated by the high performance of our bar-code reading and that potential growth will be driven by retailers investing in online fulfillment. From an automation perspective, the logistics industry is still in its early stages with a large reliance on human labor and a low rate of robotic automation. Beyond barcode reading, we expect vision applications in logistics to grow quickly and become a more substantial business for us. Vision applications include tasks such as inspecting packages for damage, object and symbol recognition, and dimensioning. Geographically, our current logistics business is primarily within the United States, but, over the long term, we expect to realize the highest rates of growth in Europe and Asia, where we believe customers are beginning to catch up with the United States in logistics automation technology and are moving away from local incumbent suppliers. Leading e-commerce players have taken a post-pandemic &#8220;time out&#8221; to absorb excess capacity since early 2022, but we currently continue to expect logistics to be our highest-growth end market over the mid to long-term.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Medical-Related</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex has an established customer base of life science equipment suppliers. Our products are specified in over 100 different machine designs, many of which are in the process of obtaining regulatory approval. As they launch, we believe they will provide the opportunity to deliver many years of recurring revenue.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Applications in this market include lab automation and medical device inspection applications. During the COVID pandemic, we saw demand for machine vision grow from manufacturers of diagnostic tests, vaccines, and protective equipment.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Other</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The number of end markets that can benefit from machine vision applications is expanding. Other end market uses of Cognex machine vision include semiconductor manufacturers identifying defects, regulated manufacturers reducing counterfeiting, food producers improving food safety, and manufacturers using 3D measurement for robotic guidance.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Products and Technology </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex offers a full range of machine vision systems and sensors, vision software, and industrial image-based barcode readers designed to meet customer needs at different performance and price points. Our products range from deep learning solutions that solve complex applications with unpredictable defects and deviations, to lower-cost vision sensors that conduct simple presence/absence inspections. Our products have a variety of physical forms, depending on the user's needs. For example, customers can purchase vision software to use with their own camera and processor, or they can purchase a standalone unit that combines camera, processor, and software into a single package.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Systems and Sensors</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Vision systems combine smart cameras and software to perform a wide range of tasks including part location, identification, measurement, assembly verification, and robotic guidance. Vision sensors can deliver an easy-to-use, low-cost, reliable solution for simple pass/fail inspections, such as checking the presence and size of parts. In-Sight&#174; vision systems and sensors include our 2D and 3D vision systems, as well as our In-Sight SnAPP&#8482; sensor. These products leverage various forms of artificial intelligence, including rule-based coding, as well as deep learning and edge learning technology leveraging pre-trained models powered by neural networks. Our product portfolio meets the varying price and performance requirements of our broad base of industrial customers. Our deep learning-based systems automate and solve complex inline inspections that typically require human judgment for defect detection, optical character recognition (OCR), assembly verification, or classification. Similar to our deep learning-based systems, our edge learning-based systems use pre-trained models, but on simpler applications that prioritize ease of use and have a broader appeal with easier and faster implementation and training.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">3</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Software</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Vision software offers customers the flexibility of the Cognex&#174; vision tools library to use with the cameras, frame grabbers, and peripheral equipment of their choice. Cognex VisionPro&#174; software offers an extensive suite of patented vision tools, including both traditional rule-based tools and deep learning-enabled tools, for advanced programming. Its QuickBuild&#8482; prototyping environment allows customers to build complete vision applications with the simplicity of a graphical flowchart-based programming interface.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Industrial Image-Based Barcode Readers</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex industrial image-based barcode readers quickly and reliably read 1D, 2D, label-based, and direct part mark (DPM) codes found in nearly every industry including automotive, logistics, consumer products, and medical-related. The DataMan&#174; product line, which includes fixed-mount and handheld models, as well as barcode verifiers, help organizations optimize performance, increase throughput, and control traceability.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Vision Accessories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex vision accessories are designed for easy integration with Cognex products and applications. Cameras are available in both area scan and line scan formats to address a wide variety of applications. Lenses and lighting are also available in both embedded and component formats to provide high-quality image acquisition, including a portfolio of premium optical components that were added to the Company's vision accessory portfolio with the acquisition of Moritex Corporation in the fourth quarter of 2023. From value solutions to high-performance hardware, Cognex offers industrial cameras, lenses, lighting, vision controllers, frame grabbers, and I/O cards to meet any requirement. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Research, Development, and Engineering</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex engages in research, development, and engineering (RD&amp;E) to enhance our existing products and to develop new products and functionality to address market opportunities. We believe that a continued commitment to RD&amp;E activities is essential to maintain or achieve product leadership with our existing products and to provide innovative new product offerings, as well as to provide engineering support for large customers. In addition, we consider our ability to accelerate time to market for new products to be critical to our revenue growth</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%">.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> We incurred RD&amp;E costs of approximately $139 million (17% of revenue), $141 million (14% of revenue), and $135 million (13% of revenue) for the years ended December 31, 2023, 2022 and 2021, respectively. We expect to continue our commitment to RD&amp;E, even during periods of lower revenue levels, to introduce new platforms, products, and solutions throughout economic cycles.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Intellectual Property </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on the technical expertise, creativity, and knowledge of our personnel, and therefore, we utilize patent, trademark, copyright, and trade secret protection to maintain our competitive position and protect our proprietary rights in our products and technology. While our intellectual property rights are important to our success, we believe that our business as a whole is not materially dependent on any particular patent, trademark, copyright, or other intellectual property right.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Operations </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Most of Cognex&#8217;s hardware products are manufactured utilizing third-party contractors, whereby the majority of component procurement, system assembly, and initial testing are performed by electronics manufacturing services suppliers. With the acquisition of Moritex Corporation in the fourth quarter of 2023, Cognex began in-house manufacturing of optical components, such as lenses and lighting. Cognex&#8217;s primary contract manufacturer is located in Indonesia. Our contract manufacturers use specified components sourced from vendor lists approved by Cognex and assembly/test processes created and controlled by Cognex. After the completion of initial testing, assembled products from our contract manufacturers are routed to our distribution centers where trained Cognex personnel load Cognex software onto the products, provide additional assembly and image alignment as needed, and perform quality control procedures. Cognex ships finished products for customers located in the Americas from our Southborough, Massachusetts distribution center, for customers located in Europe from our Cork, Ireland distribution center, and for customers located in Asia from our Singapore distribution center that became operational during the fourth quarter of 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Sales Channels and Support Services</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex sells its products through a worldwide direct sales force that primarily focuses on the development of strategic accounts which generate or are expected to generate significant sales volume, as well as through a global network of distribution and integration partners. Our distribution partners provide sales and local support to help Cognex reach the many prospects for our products in factories around the world, and our integration partners are </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">4</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">experts in vision and complementary technologies that can provide turnkey solutions for complex automation projects using vision. Through each of these channels, sales engineers call directly on targeted accounts, with the assistance of application engineers, and manage the activities of our distribution and integration partners within their territories in order to provide an advantageous sales model for our products. In 2023, we began ramping up an Emerging Customer sales force that primarily focuses on selling into accounts which are new to machine vision or Cognex.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales to customers based outside of the United States represented approximately 66% of our total revenue in 2023, with approximately 26% from customers based in Europe, approximately 20% from customers based in Greater China, and approximately 20% from customers based in other regions outside the United States. Sales to customers based in Europe are denominated in Euros and U.S. Dollars, sales to customers based in Greater China are denominated in Renminbi for sales within Mainland China and U.S. Dollars in other territories, and sales to customers based in other regions are denominated in U.S. Dollars, Korean Won, Japanese Yen, Mexican Pesos, and Indian Rupee.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s service offerings represent less than 10% of our total revenue and include maintenance and support, consulting, and training services. Maintenance and support programs include hardware support programs that entitle customers to have products repaired, as well as software support programs that provide customers with application support and software updates to the latest software releases. Application support is provided by technical support personnel located at Cognex regional offices, as well as by field service engineers that provide support at the customer&#8217;s production site. We provide consulting services that range from a specific area of functionality to a completely integrated installed application. Training services include a variety of product courses that are available at our offices worldwide, at customer facilities, and online.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Human Capital</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our employees are our most valuable asset and are critical to our success. We create and maintain an environment where &#8220;Cognoids,&#8221; a unique name for our employees, can engage with each other, perform their best work, develop their careers, and be creative. As of December&#160;31, 2023, Cognex employed 2,992 Cognoids globally, including 1,590 in sales, marketing, and service activities; 690 in research, development, and engineering; 445 in manufacturing and quality assurance; and 267 in information technology, finance, and administration. Of our 2,992 Cognoids, 1,996 are based outside of the United States.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;text-decoration:underline">Culture and Values</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We pride ourselves on having a unique culture that exemplifies our motto of </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Work Hard, Play Hard, Move Fast</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. Our culture guides the actions and behaviors of our Cognoids and is defined by our ten values - </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Customer First, Excellence, Perseverance, Enthusiasm, Creativity, Pride, Integrity, Recognition, Sharing, and Fun</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">. We are committed to finding the very best talent to be part of our growing technology company. We believe our culture enables us to attract and retain smart, energetic, and creative talent, and is central to our ability to execute our operating plans and strategic initiatives. To preserve and enhance our corporate culture, while recognizing differences across and within regions, we have a global team of Cognoids who serve as Ministers of Culture, led by our Chief Culture Officer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe in investing in tools and resources that support employees&#8217; learning and development and setting a compensation structure that reflects the Company&#8217;s commitment to a pay-for-performance philosophy. We believe these efforts align with our stockholders&#8217; long-term interests and better position Cognex to continue to operate as a leader in the machine vision industry.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Diversity, Equity, Inclusion, and Belonging</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we are incredibly proud of our culture, we continue to listen, learn, and grow. We are excited about the opportunities to continue to build an organization that reflects the best of the world around us. As a multi-national company where over half our Cognoids live outside the United States, diversity means different things to different groups. We are building strategies and plans to continue to enhance our diversity, equity, inclusion, and belonging (DEIB) initiatives. One specific place where this evolution is visible is through the launch of our DEIB Council. The Council is led by our Chief Culture Officer and is comprised of over thirty volunteer Cognoids representing a broad cross-section of functions, geographies, and backgrounds.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Regulatory Compliance</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex&#8217;s capital expenditures, earnings, and competitive position are not materially affected by compliance with federal, state, and local environmental provisions which have been enacted or adopted to regulate the distribution of materials into the environment.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">5</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Available Information</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex maintains a website at www.cognex.com. We make available, free of charge, on our website in the &#8220;Company&#8221; section under the caption &#8220;Investor Information&#8221; followed by &#8220;Financial Reports&#8221; and then &#8220;SEC FiIings,&#8221; our Annual Report on Form 10-K, Quarterly Reports on Form 10-Q, and Current Reports on Form 8-K, including exhibits, and amendments to those reports filed or furnished pursuant to Section 13(a) or 15(d) of the Securities Exchange Act of 1934, as amended (the "Exchange Act"), as soon as reasonably practicable after such reports are electronically filed with, or furnished to, the SEC. Cognex&#8217;s reports filed with, or furnished to, the SEC are also available at the SEC&#8217;s website at www.sec.gov. Cognex has used, and intends to continue to use, its investor relations website as means of disclosing material non-public information and for complying with our disclosure obligations under Regulation FD. Information contained on our website is not a part of, or incorporated by reference into, this Annual Report on Form 10-K or in any other document or report that Cognex files with the SEC, and any references to Cognex's website are intended to be inactive textual references only.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_16"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;1A: RISK FACTORS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risks and uncertainties described below are not the only ones that we face. Additional risks and uncertainties that we are unaware of, or that we currently deem immaterial, also may become important factors that affect our company in the future. If any of these risks were to occur, our business, financial condition, or results of operations could be materially and adversely affected. This section includes or refers to certain forward-looking statements. We refer you to the explanation of the qualifications and limitations of such forward-looking statements, appearing under the heading "Forward-Looking Statements" in Part II - Item 7 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Execution of our Business Strategy</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our failure to introduce new products in a successful and timely manner could result in the loss of our market share and a decrease in our revenues and profits.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The market for our products is characterized by rapidly changing technology and increasingly capable competitors. Accordingly, we believe that our future success will depend on our ability to accelerate time-to-market for new products with improved functionality, ease-of-use, performance, and price. This includes continuing to introduce products embedded with artificial intelligence technology that augments rule-based machine vision with image-based analysis. There can be no assurance that we will be able to introduce new products in accordance with scheduled release dates or that new products will achieve market acceptance. Our inability to keep pace with the rapid rate of technological change and customer demands in the high-technology marketplace could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Product development is often a complex, time-consuming, and costly process involving significant investment in research and development with no assurance of return on investment. Our strong balance sheet allows us to continue to make significant investments in research, development, and marketing for new products and technologies. Research is by its nature speculative, and the ultimate commercial success of a product depends on various factors, many of which are not under our control. We may not achieve significant revenue from new product investments for several years, if at all. Moreover, new products, if introduced, may not generate the gross margins that we have experienced historically.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Increased competition may result in decreased demand or prices for our products and services and may harm our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The machine vision market continues to be fragmented and competitive. Our competitors include primarily other vendors of machine vision systems, controllers, and components; manufacturers of image processing systems, sensors, and components; and system integrators. We also compete with internal engineering departments of current or prospective customers, as well as open-source tools available for free from various companies, including tools using artificial intelligence. In recent years, we have encountered increased competition from low-cost vision providers in China, as well as from large technology companies that may offer free open-source solutions. Any of these competitors may have greater financial or other resources than we do or may develop more compelling technologies. We may not be able to compete successfully in the future and our investments in research and development, sales and marketing, and support activities may be insufficient to enable us to maintain our competitive advantage. In addition, competitive pressures could lead to price erosion that could have a material adverse effect on our gross margins and operating results.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">6</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Further, in recent years, we have seen some examples of industry consolidation in our markets. This trend may continue as companies attempt to strengthen or hold their market positions in an evolving industry and as companies are acquired or are unable to continue operations. We believe that industry consolidation may result in stronger competition and may be accompanied by pressure from customers for lower prices. This could lead to more variability in our operating results and could have a material adverse effect on our business, operating results, and financial condition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we fail to attract and retain key talent and maintain our unique corporate culture, our business and operating results could suffer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To support our growth and execute our operating plans and strategic initiatives, we must effectively attract, train, develop, motivate, and retain skilled employees, while maintaining our unique corporate culture. Technical personnel with experience in machine vision, and more recently artificial intelligence and transformer-based models, are in high demand and competition for their talents is intense. We rely on attracting and retaining talent with these skills to execute our product development plans. We use time-based and performance-based equity awards, including stock options and restricted stock units ("RSUs") as a key component of compensation for our more senior employees to align employee interests with the interests of our shareholders, provide competitive compensation packages, and encourage employee retention. Our stock price volatility may cause periods of time during which option exercise prices might be less than the sale price of our common stock or the value of RSUs might be less competitive, which may lessen the retentive attributes of these awards. We are limited as to the number of stock options and RSUs that we may grant under our stock plans, and we are unsure how effective different stock-based awards with different vesting schedules will be to retain key talent. Accordingly, we may find it difficult to attract and retain employees, and any such difficulty could materially adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our failure to properly manage the distribution of our products and services could result in the loss of revenues and profits.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We utilize a direct sales force, as well as a network of distribution and integration partners, to sell our products and services. We are continually reviewing our go-to-market strategy to help ensure that we are reaching the most customers that we can and with the highest level of service. At times, this may require strategic changes to our sales organization or enlisting or dropping various partners in certain regions, which could result in additional costs or operational challenges. In connection with our &#8220;Emerging Customer&#8221; sales initiative, we are expanding our sales force to reach customers who may be newer to factory automation and have yet to fully benefit from all that machine vision can offer, which has resulted, and is expected to continue to result, in increased sales and marketing expenses. In addition, successfully managing the interaction of our direct and indirect sales channels, including the newly-added Emerging Customer sales force, to reach various potential customers for our products and services is a complex process. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many of our indirect selling arrangements are non-exclusive, and our distributors are not obligated to buy our products. Thus, they may be unwilling or unable to dedicate the resources necessary to promote our products or remain sufficiently trained to provide integration support. In addition, failure of our distributors to adhere to our policies designed to promote compliance with global anti-corruption laws, export controls, and local laws, could subject us to criminal or civil penalties and stockholder litigation. In addition, when we use indirect selling methods, it may reduce visibility to demand and pricing.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To support the expansion of our business internationally, we may decide to make changes to our operating structure in other countries when we believe these changes will make us more competitive by reaching additional customers, offering faster delivery, importation services, and/or local currency sales. These new operating models may require changes in legal structures, business systems, and business processes that may result in significant business disruption and negatively impact our customers&#8217; experience, resulting in loss of sales. Furthermore, as we assume more responsibility for the importation of our products into other countries, we face higher compliance risk to adhere to local regulatory and trade requirements. Finally, the local stocking of finished products in countries outside of our primary distribution centers may result in higher costs and increased risk of excess or obsolete inventory associated with maintaining the appropriate level and mix of products in multiple inventory locations, resulting in lower gross margins.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our go-to-market strategy has distinct risks and costs, and therefore, our failure to implement the most advantageous balance in the sales and operating model for our products and services could have a material adverse effect on our revenue and profitability.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">7</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Economic, political, and other risks associated with international sales and operations could adversely affect our business and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2023, approximately 66% of our revenue was derived from customers located outside of the United States. We anticipate that international sales will represent a more significant portion of our revenue in 2024 due to the acquisition of Japan-based Moritex Corporation in the fourth quarter of 2023. In addition, we source components from suppliers located outside of the United States, including China, utilize third-party contract manufacturers, primarily located in Indonesia and Malaysia, to assemble certain of our products, and beginning in the fourth quarter of 2023 with the acquisition of Moritex Corporation, manufacture optical components at production plans located in Vietnam and China. We intend to continue to expand our sales and operations outside of the United States and expand our presence in international emerging markets. As a result, our business is subject to the risks inherent in international sales and operations, including, among other things:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">various regulatory and statutory requirements,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties in injecting and repatriating cash,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">export and import restrictions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">trade tariffs,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">transportation delays,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">product certification requirements,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">employment regulations and local labor conditions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties in staffing and managing foreign operations, particularly as we expand our presence globally </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">corruption,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">instability in economic or political conditions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">political or trade sanctions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties protecting intellectual property,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">uncertainties surrounding the interpretation and application of regulatory and statutory requirements,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">varying data protection and privacy laws,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">business systems connectivity issues, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potentially adverse tax consequences.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any of these factors could have a material adverse effect on our business, operating results or financial condition. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face several risks related to conducting business in China. In recent years, trade tariffs imposed by the United States on certain components imported from Chinese suppliers resulted in higher costs for our products, which, to date, have not been material to our total cost of goods. In addition to trade tariffs, U.S. export controls that place restrictions on the exportation of our products or a subset of our products, including applicable regulations promulgated by the U.S. Commerce Department&#8217;s Bureau of Industry and Security, have had a negative impact on our revenue from customers based in China. Trade tariffs and export controls also have had an indirect impact on the economic climate in China, which in turn, has had a negative impact on the Company's revenue from customers based in China who see risk in doing business with a U.S. company. The imposition of additional tariffs or other trade barriers could increase our costs in certain markets and may cause our customers to find alternative providers of machine vision products and services. To date, the impact of these restrictions has been immaterial to our total revenue and costs; however, if disputes and conflicts continue or further escalate, actions by governments in response could be significantly more severe and restrictive and could materially adversely affect our operating results. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">An escalation of the China-Taiwan conflict could lead to challenges procuring integrated circuit chips from Taiwan-based vendors that are fundamental to the design of our products. Although we are taking steps to mitigate this risk, including purchasing chips in advance of demand, there can be no assurance that these steps will be successful in securing an adequate supply of chips at our current cost structure. Geopolitical tensions, trade disputes, and concerns about supply chain resilience have prompted some multinational companies to reassess their operations in China. Rising labor costs, intellectual property concerns, and uncertainties around regulatory environments have contributed to a trend where certain industries, particularly in manufacturing, are exploring diversification of their production bases to other countries or reshoring to their home country. These trends may adversely affect our revenue in China and operating results.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">8</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">To date, the Russia-Ukraine war that has been ongoing since the first quarter of 2022 and the Israel-Hamas war that began in the fourth quarter of 2023 have not had a material adverse effect on our business. Economic sanctions and export controls imposed by the United States and other countries targeting specific industries, entities, and individuals in Russia, as well as the impact on the supply of energy resources in Europe, have not materially adversely affected our business to date.  Further escalation of these geopolitical tensions, however, could have a broader impact which could adversely affect our business and/or our supply chain, distribution and integration partners, or customers in the broader region, including the European Union. Furthermore, instability may lead to increased market volatility, negatively impacting customer confidence and spending.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also are subject to applicable anti-corruption laws, such as the U.S. Foreign Corrupt Practices Act and the U.K. Bribery Act, and similar anti-corruption and anti-kickback laws in the jurisdictions in which we operate. These laws generally prohibit offering, promising, giving, or authorizing others to provide anything of value, either directly or indirectly, to a government official or private party in order to influence official action or otherwise gain an unfair business advantage, such as to obtain or retain business. Particularly as a result of our global operations, including in developing countries, and our growing international sales force, our relationships with our customers and resellers could expose us to liability under these laws. Violations of anti-corruption laws may result in severe civil and criminal penalties for noncompliance. Even an unsuccessful challenge or investigation into our practices is costly to defend, and could cause adverse publicity, and thus could have a material adverse effect on our business, financial condition, or operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Implementation of our acquisition strategy may not be successful, which could affect our ability to increase our revenue or profitability and may otherwise adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have acquired, and may continue to acquire, new businesses and technologies. During the fourth quarter of 2023, we completed our largest acquisition to date by acquiring Moritex Corporation, a global provider of premium optical components based in Japan, for an enterprise value of approximately $270 million. The Moritex acquisition, and acquisitions in general, may involve significant risks and uncertainties, which could include, among others:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the diversion of management's attention from other operational matters,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the inability to realize expected synergies or other benefits resulting from the acquisition, including the failure to achieve projected sales of acquired products,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties or delays integrating personnel, operations, technologies, products, processes, and systems of the acquired business, particularly in locations far from the Company's headquarters,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the failure to retain key talent and difficulties integrating corporate cultures,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">entry into markets in which we may have limited prior experience and where competitors have stronger market positions,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the inability to protect and secure acquired intellectual property or confidential information,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties or delays completing the development of acquired in-process technology,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the failure to retain key customers,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the impairment of acquired intangible assets resulting from lower-than-expected cash flows from the acquired assets,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">acquisition-related charges, which could adversely impact operating results and cash flows in any given period and could be substantially different from period to period, </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties with implementing internal controls and accounting systems necessary to be compliant with requirements applicable to public companies subject to SEC reporting, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">difficulties with closing a transaction due to regulatory approvals, employment matters, required consents, litigation, or other challenges, which could increase costs and prevent the acquisition from being completed within the expected timeframe, or from being completed at all.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Acquisitions are inherently risky and the inability to effectively manage these risks could have a material adverse effect on our operating results.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">9</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Information Technology and Intellectual Property</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Information security breaches may adversely affect our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on our information technology systems, including third-party services, to effectively run our business. We may be subject to information security failures or breaches caused by hacking, malicious software, acts of vandalism or terrorism, or other events. The risk of a cyberattack continues to increase given rapid advancements in technologies, as well as the proliferation of diplomatic and armed conflict throughout the world. Our security measures or those of our third-party service providers may not detect or prevent such breaches. Any such compromise to our information security could result in the distraction of management and diversion of information technology resources, theft of our intellectual property, including software source code, a misappropriation of our cash or other assets, an interruption in our operations, the unauthorized publication of our confidential business or proprietary information, the unauthorized release of customer, vendor, or employee data, and the exposure to litigation or regulatory penalties, any of which could harm our business and operating results. We have experienced cybersecurity incidents in the past, however, to date, these incidents have not had a material impact on our operations or financial results. Future cybersecurity incidents could have a material adverse effect on our business, reputation, financial condition, or operating results. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Changes in laws or regulations relating to data privacy or data protection, or any actual or perceived failure by us to comply with such laws and regulations, could harm our business. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We are subject to a variety of United States and international laws, rules, policies and other obligations regarding data protection and security breaches. Privacy and data security have become significant issues in the United States, Europe, and in many other jurisdictions where we conduct or may in the future conduct our operations. For instance, the European Union's General Data Protection Regulation ("GDPR"), many state and federal privacy laws within the United States, and other similar global laws in locations in which we do business govern our global data privacy practices. The regulatory framework for the collection, use, safeguarding, sharing, and transfer of information worldwide is rapidly evolving and is likely to remain uncertain for the foreseeable future. </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For example, the California Privacy Rights Act (CPRA), which took effect on January 1, 2023 (with certain provisions of the CPRA having retroactive effect to January 1, 2022), as well as obligations from new privacy laws in Colorado, Connecticut, Delaware, Florida, Indiana, Iowa, Montana, New Jersey, Oregon, Tennessee, Texas, Utah and Virginia that have taken or will take effect between 2023 and 2026, may require us to further modify certain of our information practices and could subject us to additional compliance costs and expenses. </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These laws continue to develop and may be inconsistent from jurisdiction to jurisdiction. Complying with emerging and changing requirements may be costly and require us to change certain business practices. Noncompliance could result in significant fines, penalties, claims, or legal liability. Any inability to adequately address privacy and data security concerns or comply with applicable privacy or data security laws, regulations, and policies could result in additional cost and liability to us, damage our reputation, inhibit sales, and harm our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">If we fail to successfully protect our intellectual property, our competitive position and operating results could suffer.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We rely on our proprietary software technology and hardware designs, as well as the technical expertise, creativity, and knowledge of our personnel to maintain our position as a leading provider of machine vision products. Software piracy and reverse engineering may result in counterfeit products that are misrepresented in the market as Cognex products or pirated products that contain stolen technology, such as software. Although we use a variety of methods to protect our intellectual property, we rely most heavily on patent, trademark, copyright, and trade secret protection, as well as non-disclosure agreements with customers, suppliers, employees, and consultants. We also attempt to protect our intellectual property by restricting access to our proprietary information by a combination of technical and internal security measures. These measures, however, may not be adequate to:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">protect our proprietary technology,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">protect our patents from challenge, invalidation, or circumvention, or</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">ensure that our intellectual property will provide us with competitive advantages.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">10</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our pending and future patent applications may not issue as patents or, if issued, may not issue in a form that will provide us with any meaningful protection or any competitive advantage. Even if issued, existing or future patents may be challenged, narrowed, invalidated, or circumvented, which could limit our ability to stop competitors from developing and marketing similar products, increase costs, or limit the length of patent protection we may have for our products. Furthermore, other companies may design around technologies we have patented, licensed, or developed. Moreover, changes in patent laws or their interpretation in the United States and other countries could also diminish the value of our intellectual property or narrow the scope of our patent protection. In addition, the legal systems of certain countries do not favor the aggressive enforcement of patents, and the laws of foreign countries may not protect our rights to the same extent as the laws of the United States. As a result, our patent portfolio may not provide us with sufficient rights to exclude others from commercializing products similar to ours. Any of these adverse circumstances could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to our Supply Chain</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The failure to manufacture and deliver products in a timely manner could negatively affect customer satisfaction and our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of our products is presently manufactured by a third-party contractor located in Indonesia. Since 2022, we have been scaling up an additional contract manufacturer located in Malaysia, which is expected to further mitigate risk, diversify supply chain, and expand production capacity. With the acquisition of Moritex Corporation in the fourth quarter of 2023, we began in-house manufacturing of optical components, such as lenses and lighting, in production plants located in Vietnam and China. In-house manufacturing exposes us to various risks that could adversely impact our business operations and financial condition, including, but not limited to, (i) the health and safety of our employees engaged in manufacturing; (ii) the storage, use, and transportation of hazardous materials utilized in the manufacturing process; and (iii) legal risks related to environmental protection and health and safety laws in all applicable jurisdictions. Although our third-party and in-house manufacturers have the ability to shift production to plants in other regions when operations in their primary plant are disrupted, production and test equipment located at the plant that is unique to the manufacture of Cognex products creates practical challenges to doing so in a timely manner. Furthermore, the loss of a key supplier, or failure of a key supplier to access necessary credit to operate its business or otherwise remain in business, could have a material adverse impact on our operating results. Changes and additions to our supply chain require considerable time and resources and involve significant risks and uncertainties, and we can provide no assurance of return on, or success of, such investments.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also rely on our third-party and in-house manufacturers to meet delivery schedules. We have experienced, and may continue to experience, delays in the delivery of our products from our suppliers due to the impact of global supply chain challenges or other factors. For example, on June 7, 2022, our primary contract manufacturer experienced a fire at its plant in Indonesia which destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. The fire resulted in delayed shipments, loss of sales, and higher-than-normal purchase costs to replenish component inventories which adversely impacted our business, financial condition, and results of operations primarily during the second half of 2022, with the gross margin impact of higher purchase costs continuing into the first half of 2023. Challenges in obtaining components and maintaining production have resulted in delays, and may continue to result in delays, in meeting our delivery schedules that, as a result, delay deliveries to our customers past their requested delivery date. Delays in customer orders also can result in delayed revenue recognition or loss of business which can impact our operating results in a particular reporting period.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our inability to obtain components for our products could adversely affect our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges and other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, higher delivery costs, and manufacturing delays. An escalation of the China-Taiwan conflict could result in challenges procuring integrated circuit chips from Taiwan-based vendors. Although we are taking steps to mitigate this risk, including purchasing chips in advance of demand, there can be no assurance that these steps will be successful in securing an adequate supply of chips at our current cost structure.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We source components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components typically may be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source. Certain Cognex products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">11</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we are taking certain actions to mitigate supply risk and have entered into agreements, including in broker markets, for the supply of many components, there can be no assurance that Cognex will be able to extend or renew these agreements on similar terms, such as purchase prices, or at all. Component suppliers may suffer from poor financial conditions, which can lead to business failure for the supplier, further limiting our ability to obtain sufficient quantities of components on reasonable terms, or at all. Therefore, Cognex remains subject to risks of supply shortages and price increases that can adversely affect our business and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our failure to effectively manage product transitions or accurately forecast customer demand could result in excess or obsolete inventory and resulting charges.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Because the market for our products is characterized by rapid technological changes, we frequently introduce new products with improved functionality, ease-of-use, and performance, or lower cost that may replace existing products. Among the risks associated with the introduction of new products are difficulty predicting customer demand and effectively managing inventory levels to ensure adequate supply of the new product and avoid excess supply of the legacy product. Our failure to effectively manage product transitions or accurately forecast customer demand, in terms of both volume and configuration, may lead to an increased risk of excess or obsolete inventory and resulting charges.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We strategically may enter into non-cancelable and/or non-refundable commitments with vendors to purchase inventory in advance of demand to address concerns about the availability of future supplies, build safety stock to help ensure customer shipments are not delayed should we experience higher than anticipated demand for inventory with long lead times, or take advantage of favorable pricing. Supply chain disruptions and unanticipated changes in demand have resulted, and may continue to result, in the Company purchasing a significant amount of inventory in advance of demand. These measures to purchase inventory may expose us to an increased risk of excess or obsolete inventory and resulting charges if actual demand is lower than anticipated.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If components purchased by our primary contract manufacturer have not been consumed in the production of our finished goods within a certain period of time, we have been required, and may continue to be required, to purchase these components from our primary contract manufacturer and later sell them back when they are needed to meet our demand. While we typically expect these components to be consumed in the production of our finished goods, this arrangement may expose us to an increased risk of excess or obsolete inventory and resulting charges.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Disruptions to one of our distribution centers could adversely affect our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We ship finished products for customers located in the Americas from our Southborough, Massachusetts distribution center, for customers located in Europe from our Cork, Ireland distribution center, and for customers located in Asia from our Singapore distribution center that became operational during the fourth quarter of 2023. Following the COVID pandemic, we experienced, and may experience again, labor shortages or working restrictions due to factors such as health and safety concerns or governmental regulations. Although we have the ability to shift operations from one distribution center to another, there are practical challenges to doing so in a timely, cost-effective manner, and we may experience delays in shipping customer orders. These delays could negatively impact customer satisfaction and, in turn, cause loss of sales, which could adversely affect our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our products may contain design or manufacturing defects, which could result in reduced demand, significant delays, substantial costs, or customer dissatisfaction and/or loss of sales.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If flaws in either the design or manufacture of our products were to occur, we could experience a rate of failure in our products that could result in significant delays in shipment and material repair or replacement costs. Due, in part, to our focus on releasing new products as quickly as possible to satisfy customer demands, our release-to-market process may not be robust enough to detect significant design flaws or software bugs. While we engage in product quality programs and processes, including actively monitoring and evaluating the quality of our component suppliers and contract manufacturers, these actions may not be sufficient to avoid a product failure rate that results in:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">substantial delays in shipment,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">significant repair or replacement costs,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">product liability claims or lawsuits, particularly in connection with life sciences customers, electric vehicle battery manufacturers, or other high-risk end-user industries,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">customer dissatisfaction and/or loss of sales, or</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">potential damage to our reputation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Any of these results could have a material adverse effect on our operating results.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">12</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Revenue Concentrations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The loss of, or significant curtailment of purchases by, large customers could have an adverse effect on our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2023, no single customer represented more than 10% of our total revenue. However, we have had customers of this size in the past, particularly in the logistics and consumer electronics industries. Large customers may divert management&#8217;s attention from other operational matters and pull resources from other areas of the business, resulting in potential loss of sales from other customers. In addition, large customers may receive preferred pricing and a higher level of support, which may lower our gross margin percentage. Furthermore, in certain instances, due to long supplier lead times, we may purchase inventory in advance of receipt of a large customer purchase order, which exposes us to an increased risk of excess or obsolete inventory and resulting charges. The loss of, or curtailment of purchases by, any one or more of our large customers, has had, and could in the future have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Risks Related to Financial Matters</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We are at risk for impairment charges with respect to our investments or acquired intangible assets, which could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, we had approximately $374 million of debt securities in our investment portfolio. These debt securities are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as other comprehensive income (loss) since these securities are designated as available-for-sale securities. As of December 31, 2023, our portfolio of debt securities had a net unrealized loss of $9,967,000. Included in this net loss, were gross unrealized losses totaling $10,555,000, of which $1,561,000 were in a loss position for less than twelve months and $8,994,000 were in a loss position for greater than twelve months. Management monitors its debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer that would be reported in current operations. While management currently intends to hold these securities to full value recovery at maturity, we may determine to sell these securities prior to maturity to fund our operations, make acquisitions, or for other purposes, which may result in a loss. It is our policy to invest in investment-grade debt securities that minimize our exposure to credit losses; however, no assurances can be made that we will not incur credit losses with respect to our securities portfolio. No credit losses were recorded in 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, we had approximately $113 million in acquired intangible assets, consisting primarily of acquired technologies and customer relationships. The majority of these intangible assets were recorded in the fourth quarter of 2023 when Cognex acquired Moritex Corporation. These assets are susceptible to changes in fair value due to a decrease in the historical or projected cash flows from the use of these assets, which may be negatively impacted by economic trends. We evaluate long-lived assets for impairment annually each fourth quarter and whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. If we determine that any of these investments or intangible assets are impaired, we will be required to take a related charge to earnings that could have a material adverse effect on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">We may have additional tax liabilities and our effective tax rate may increase or fluctuate, which could adversely affect our operating results and financial condition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a multinational corporation, we are subject to income taxes, as well as non-income based taxes, in the United States and numerous foreign jurisdictions. Our effective income tax rate is dependent on the geographic distribution of our worldwide earnings or losses and the tax laws and regulations in each geographic region in which we operate. Significant judgment is required in determining our worldwide provision for income and other taxes. The application of tax laws and regulations is subject to legal and factual interpretation, judgment, and uncertainty, and tax laws themselves are subject to change. For example, many countries have recently adopted, or are considering the adoption of, revisions to their respective tax laws based on the Organization for Economic Co-operation and Development&#8217;s (&#8220;OECD&#8221;) Inclusive Framework, which could impact our tax liability due to our organizational structure and significant operations outside of the United States. Furthermore, we are subject to regular review and audit by both domestic and foreign tax authorities and may be assessed additional taxes, penalties, fees, or interest, which could have a material adverse effect on our financial position, liquidity, or results of operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Although we believe our tax positions are reasonable, the final determination of tax audits or any related litigation could be different from what is reflected in our financial statements and could have a material adverse effect on our income tax provision, net income, or cash flows in the period in which the determination is made.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">13</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Fluctuations in foreign currency exchange rates and the use of derivative instruments to hedge these exposures could adversely affect our reported results, liquidity, and competitive position.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We face exposure to foreign currency exchange rate fluctuations, as a significant portion of our revenues, expenses, assets, and liabilities are denominated in currencies other than the functional currencies of our subsidiaries or the reporting currency of our company, which is the U.S. Dollar. In certain instances, we utilize forward contracts to hedge against foreign currency fluctuations. These contracts are used to minimize foreign currency gains or losses, as the gains or losses on the derivative are intended to offset the losses or gains on the underlying exposure. We do not engage in foreign currency speculation. If the counterparty to any of our hedging arrangements experiences financial difficulties, or is otherwise unable to honor the terms of the contract, we may experience material losses.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The success of our foreign currency risk management program depends on forecasts of transaction activity denominated in various currencies. To the extent that these forecasts are overstated or understated during periods of currency volatility, we could experience unanticipated foreign currency gains or losses that could have a material impact on our results of operations. In addition, our failure to identify new exposures and hedge them in an effective manner may result in material foreign currency gains or losses.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In addition to the U.S. Dollar, a significant portion of our revenues and expenses are denominated in the Euro and Chinese Renminbi, and to a lesser extent the Korean Won, Japanese Yen, Mexican Peso, and Indian Rupee. We estimate that approximately 52% of our sales in 2023 were invoiced in currencies other than the U.S. Dollar, and we expect sales denominated in foreign currencies to represent a more significant portion of our total revenue in 2024 due to the acquisition of Japan-based Moritex Corporation in the fourth quarter of 2023. While we also have expenses denominated in these same foreign currencies, the impact on revenues has historically been, and is expected to continue to be, greater than the offsetting impact on expenses. Therefore, in times when the U.S. Dollar strengthens in relation to these foreign currencies, we would expect to report a net decrease in operating income. Conversely, in times when the U.S. Dollar weakens in relation to these foreign currencies, we would expect to report a net increase in operating income. Thus, changes in the relative strength of the U.S. Dollar may have a material impact on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">General Risk Factors</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Unfavorable global economic conditions may negatively impact our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our revenue levels are impacted by global economic conditions, as we have a significant business presence in many countries throughout the world. Unfavorable economic conditions, such as inflation, slower growth or recession, higher interest rates, tighter credit, and labor shortages, may cause companies to delay or reduce spending for automation projects, including those with machine vision, amid weaker general manufacturing confidence and heightened uncertainty around global trade. Furthermore, customer confidence and capital investment can be materially adversely impacted as a result of financial market volatility, negative financial news, declines in income or asset values, energy shortages and cost increases, labor and healthcare costs, and other global economic conditions. When global economic conditions are unfavorable, our revenue and our ability to generate operating profits could be materially adversely affected.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of global economic conditions, our business is subject to the following risks, among others:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers may not have sufficient cash flow or access to financing to purchase our products and services,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our customers may not pay us within agreed upon terms or may default on their payments altogether,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">our suppliers may be unable to fulfill their delivery obligations to us in a timely manner,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">lower demand for our products may result in charges for excess and obsolete inventory if we are unable to sell inventory that is either already on hand or that we are committed to purchase,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">lower cash flows may result in impairment charges for acquired intangible assets or goodwill,</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">a decline in our stock price may make stock-based awards a less attractive form of compensation and a less effective incentive for retention for our employees, and</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">the trading price of our common stock may be volatile.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">14</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, we had approximately $576 million in cash and investments. In addition, we have no long-term debt. We believe that our strong cash position puts us in a relatively good position to weather economic downturns. Nevertheless, our operating results have been materially adversely affected in the past, and could be materially adversely affected in the future, as a result of unfavorable economic conditions and reduced capital spending by manufacturers and logistics companies worldwide.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Natural disasters, fires, energy shortages, widespread public health issues, or man-made disasters could result in business disruptions that may adversely affect our business and operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our business, and the businesses of our customers, suppliers, and third-party service providers, could be disrupted by natural disasters, fires, energy shortages, public health crises, such as pandemics and epidemics, man-made disasters, such as cyberattacks, terrorism or industrial accidents, or other events outside of our control. Certain of our business operations, such as our third-party primary contractor manufacturers in Indonesia and Malaysia, are in locations that may be more prone to earthquakes and other natural disasters, and global climate change may result in certain types of natural disasters occurring more frequently or with more intense effects. Following a business disruption, the Company could be subject to production downtimes, operational delays, substantial recovery time, customer claims, significant expenditures to resume operations, the diversion of management&#8217;s attention and resources, or loss of business, any of which could have a material adverse effect on our competitive position, operating results, or financial condition. Because we rely on single or limited sources for the supply of certain components and manufacture of our products, a business disruption affecting such sources would worsen any adverse consequences to our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While we maintain insurance coverage for certain types of losses, such insurance coverage may be insufficient to cover all losses that may arise. The impact of any such business disruption is difficult to predict.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Expectations relating to environmental, social, and governance considerations expose the Company to potential liabilities, increased costs, reputational harm, and other adverse effects on our business.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Many governments, regulators, investors, employees, customers, and other stakeholders are increasingly focused on environmental, social, and governance considerations relating to businesses, including climate change and greenhouse gas emissions, human and civil rights, and diversity, equity, and inclusion. In addition, we make statements about our environmental, social, and governance goals and initiatives through our Sustainability Reports, information provided on our website, and other communications. In addition, future environmental laws and regulations have the potential to affect our operations, increase our costs, decrease our revenue, or change the way we design or manufacture our products. Responding to these environmental, social, and governance considerations and implementation of these goals and initiatives involves risks and uncertainties, requires investments, and depends in part on third-party performance or data that is outside of our control. We cannot guarantee that we will achieve our environmental, social, and governance goals and initiatives. In addition, some stakeholders may disagree with our goals and initiatives. Any failure, or perceived failure, to achieve our goals, further our initiatives, adhere to our public statements, comply with federal, state, or international environmental, social, and governance laws and regulations, or meet evolving and varied stakeholder expectations and standards could result in legal and regulatory proceedings against the Company and adversely affect our business, reputation, results of operations, financial condition, and stock price.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">The price of the Company&#8217;s stock is subject to volatility.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have experienced substantial stock price volatility in the past and may continue to do so in the future. The price of our stock may be affected by factors such as our financial performance, announcements of technological innovations or new products by us or our competitors, market conditions, and other factors. Additionally, the Company, the technology industry, and the overall stock market have, from time to time, experienced extreme stock price and volume fluctuations that have affected stock prices in ways that may have been unrelated to these companies&#8217; operating performance. Price volatility may cause the average price at which we repurchase our stock in a given period to exceed the stock&#8217;s price at a given point in time. We believe the price of our stock should reflect expectations of future growth and profitability. If we fail to meet expectations related to future growth, profitability, dividends, share repurchases, or other market expectations, the price of our stock may decline significantly, which could have a material adverse impact on investor confidence and employee retention.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">15</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%">Our Company may be subject to time-consuming and costly litigation or activist shareholder activities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">From time to time, we may be subject to various claims, demands, and lawsuits by competitors, shareholders, customers, distributors, patent trolls, former employees, or other parties arising in the ordinary course of business, including lawsuits charging patent infringement, or claims and lawsuits instituted by us to protect our intellectual property and confidential information, or for other reasons. These matters can be time consuming, divert management&#8217;s attention and resources, and cause us to incur significant expenses. Furthermore, the results of any of these actions may have a material adverse effect on our operating results.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_19"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1B: UNRESOLVED STAFF COMMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">None</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_2050"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 1C: CYBERSECURITY</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cybersecurity Risk Management</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our overall &#8220;Enterprise Risk Management&#8221; program, the Company has implemented a cybersecurity risk management program that is informed by recognized industry standards and frameworks. The cybersecurity risk management program includes a number of components, including information security program assessments, penetration testing, and threat simulation exercises that are conducted periodically by both internal and external resources, as well as continuous monitoring of critical risks from cybersecurity threats using automated tools. During onboarding and periodically thereafter, we conduct trainings for the Company&#8217;s employees, contractors, and temporary workers about cybersecurity risks, including sending test phishing emails for training purposes to all users of the Company&#8217;s email system. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of our cybersecurity risk management program, we maintain processes to assess and review the cybersecurity practices of third-party vendors and service providers, including utilization of software to evaluate, assess, and monitor cybersecurity risks posed by third parties that provide critical services or handle confidential information. Additionally, prior to engaging a critical third-party vendor or service provider, and periodically thereafter, we conduct security audits of such third parties, and, as appropriate, include security requirements in contracts. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We, like other companies in our industry, face a number of cybersecurity risks in connection with our business. Although such risks have not materially affected us, including our business strategy, results of operations, or financial condition, to date, we have, from time to time, experienced threats to and security incidents related to our data and systems, including denial of service and phishing attacks. For more information about the cybersecurity risks we face, see the risk factor entitled &#8220;Information security breaches may adversely affect our business&#8221; in Item 1A- Risk Factors.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Governance</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our cybersecurity risk management program and related operations and processes are managed by our Information Security team (the &#8220;IS Team&#8221;), which is led by the Senior Director of Information Security. The Senior Director of Information Security role is currently held by an individual who has approximately fifteen years of experience managing information security programs. The IS Team is responsible for assessing risks from cybersecurity threats, including their potential business impact and likelihood of occurrence, as well as implementing risk remediations and mitigations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on cybersecurity risk management processes to the Chief Financial Officer and other leaders of the Company on a quarterly basis, or as potentially critical risks from cybersecurity threats or incidents arise. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The IS Team provides reports on an annual basis to the Audit Committee, which oversees cybersecurity risks pursuant to the Audit Committee Charter. The Audit Committee periodically reports on cybersecurity risk management to the full Board of Directors. The Board of Directors, as a whole and through its committees, has responsibility for the oversight of risk management. </span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_22"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 2: PROPERTIES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1994, Cognex purchased and renovated a 100,000 square-foot building located in Natick, Massachusetts that serves as our corporate headquarters and is occupied by employees primarily in research, development, and engineering, manufacturing and quality assurance, and administration functions. In 1997, Cognex completed construction of a 50,000 square-foot addition to this building. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">16</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1995, Cognex purchased an 83,000 square-foot office building adjacent to our corporate headquarters that is occupied by employees primarily in marketing, service, information technology, and finance functions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 1997, Cognex purchased a three and one-half acre parcel of land adjacent to our corporate headquarters. This land is being held for future expansion and is currently used as an Ultimate Frisbee Field for our Cognoids.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2007, Cognex purchased a 19,000 square-foot building adjacent to our corporate headquarters that is currently used as a training center as part of our Emerging Customer sales initiative. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2014, Cognex purchased a 50,000 square-foot building in Cork, Ireland that serves as the distribution center for customers located in Europe.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2021, Cognex entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of 10 years that serves as the distribution center for customers located in the Americas.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2023, Cognex entered into a lease for a 115,000 square-foot building in Singapore for a term of 10 years and 6 months to serve as a new distribution center for customers located in Asia that became operational during the fourth quarter of 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023, the Company acquired a 162,000 square-foot building in Shenzhen, China and assumed a lease agreement for a 22,000 square-foot building in Bac Ninh, Vietnam, both of which serve as production plants for optical components.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex conducts certain of its operations in other leased facilities, predominantly research, development, and engineering, sales, and administration functions. These lease agreements expire at various dates through 2033. Certain of these leases contain renewal options, leasehold improvement incentives, retirement obligations, escalation clauses, rent holidays, and variable payments tied to a consumer price index.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_25"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 3: LEGAL PROCEEDINGS</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_28"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 4: MINE SAFETY DISCLOSURES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">17</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_31"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-bottom:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART II</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_34"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;5: MARKET FOR REGISTRANT&#8217;S COMMON EQUITY, RELATED STOCKHOLDER MATTERS, AND ISSUER PURCHASES OF EQUITY SECURITIES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s common stock is traded on The NASDAQ Stock Market LLC, under the symbol CGNX. As of January&#160;28, 2024, there were approximately 625 shareholders of record of the Company&#8217;s common stock. The Company believes the number of beneficial owners of the Company&#8217;s common stock on that date was substantially greater.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 program. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022 and 1,723,000 shares at a cost of $79,794,000 in 2023, including $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022, leaving a remaining balance of $332,892,000. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth information with respect to purchases by the Company of shares of its common stock during each fiscal month of the fourth quarter of 2023:</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:32.525%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.987%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.970%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.859%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.005%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.975%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total Number of<br/>Shares&#160;Purchased</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Average<br/>Price&#160;Paid<br/>per Share</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total Number of<br/>Shares&#160;Purchased&#160;as<br/>Part of Publicly<br/>Announced Plans or<br/>Programs</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Approximate Dollar<br/>Value of Shares that<br/>May Yet Be<br/>Purchased&#160;Under&#160;the<br/>Plans or Programs</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">October 2 - October 29, 2023</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34.98&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">74,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">350,436,000&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">October 30 - November 26, 2023</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">492,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35.66&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">492,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">332,892,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">November 27 - December 31, 2023</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">332,892,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">566,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35.57&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">566,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">332,892,000&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) Includes $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The information required by Item 5 of Form 10-K regarding equity compensation plans is incorporated herein by reference to Item 12 of Part III of this Annual Report.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.060 per share in the first, second, and third quarters of 2021, $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022, and $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023. The dividend was increased to $0.075 per share in the fourth quarter of 2023. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total dividends paid were $49,079,000 in 2023, $45,921,000 in 2022, and $43,263,000 in 2021. Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Set forth below is a line graph comparing the annual percentage change in the cumulative total shareholder return on the Company&#8217;s common stock, based on the market price of the Company&#8217;s common stock, with the total return on companies within the Nasdaq Composite Index and the Research Data Group, Inc. Nasdaq Lab Apparatus&#160;&amp; Analytical, Optical, Measuring&#160;&amp; Controlling Instrument (SIC 3820-3829 US Companies) Index (the &#8220;Nasdaq Lab Apparatus Index&#8221;). The performance graph assumes an investment of $100 in each of the Company and the two indices, and the reinvestment of any dividends. The historical information set forth below is not necessarily indicative of future performance. Data for the Nasdaq Composite Index and the Nasdaq Lab Apparatus Index was provided to the Company by Research Data Group, Inc.</span></div><div style="text-align:center"><img src="cgnx-20231231_g1.jpg" alt="4065" style="height:530px;margin-bottom:5pt;vertical-align:text-bottom;width:633px"/></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.660%"><tr><td style="width:1.0%"/><td style="width:43.959%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.432%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.548%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.441%"/><td style="width:0.1%"/></tr><tr><td colspan="36" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*$100 invested on 12/31/2018 in stock or index, including reinvestment of dividends.  Fiscal year ended December 31.</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/18</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/19</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/20</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/21</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/22</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">12/23</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Cognex Corporation</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">145.56</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">220.61</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">214.32</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">130.52</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">116.38</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NASDAQ Composite</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">136.69</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">198.10</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">242.03</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">163.28</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">236.17</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NASDAQ Stocks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">100.00</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">140.44</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">190.18</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">225.09</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">144.46</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:100%">172.72</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="30" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-style:italic;font-weight:700;line-height:100%">(SIC 3820-3829 U.S. Companies) Lab Apparatus &amp; Analyt,Opt, Measuring, and Controlling Instrument)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">19</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_37"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;6:&#160;[RESERVED]</span><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.122%"><tr><td style="width:1.0%"/><td style="width:45.065%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.076%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.537%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.083%"/><td style="width:0.1%"/></tr><tr style="height:11pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_40"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7:&#160;MANAGEMENT&#8217;S DISCUSSION AND ANALYSIS OF FINANCIAL CONDITION AND RESULTS OF OPERATIONS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">FORWARD-LOOKING STATEMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain statements made in this report, as well as oral statements made by the Company from time to time, constitute forward-looking statements within the meaning of Section 27A of the Securities Act of 1933, as amended, and Section 21E of the Exchange Act. Readers can identify these forward-looking statements by our use of the words &#8220;expects,&#8221; &#8220;anticipates,&#8221; &#8220;estimates,&#8221; "potential," &#8220;believes,&#8221; &#8220;projects,&#8221; &#8220;intends,&#8221; &#8220;plans,&#8221; &#8220;will,&#8221; &#8220;may,&#8221; &#8220;shall,&#8221; &#8220;could,&#8221; &#8220;should,&#8221; "opportunity," "goal" and similar words and other statements of a similar sense. These statements are based on our current estimates and expectations as to prospective events and circumstances, which may or may not be in our control and as to which there can be no firm assurances given. These forward-looking statements, which include statements regarding business and market growth opportunities and trends, future financial performance and financial targets, customer demand and order rates and timing of related revenue, managing supply shortages, delivery lead times, future product mix, research and development activities, sales and marketing activities (including our Emerging Customer Program), new product offerings and product development activities, customer acceptance of our products, the potential effects of emerging technologies, capital expenditures, cost management activities, investments, liquidity, dividends and stock repurchases, strategic and growth plans, our ability to maintain and grow key relationships, acquisitions, the expected impact of the fire at our primary contract manufacturer's plant on our assets, business and results of operations and related insurance recoveries, and estimated tax benefits and expenses and other tax matters, involve known and unknown risks and uncertainties that could cause actual results to differ materially from those projected. Such risks and uncertainties include: (1) the technological obsolescence of current products and the inability to develop new products; (2) the impact of competitive pressures; (3) the inability to attract and retain skilled employees and maintain our unique corporate culture; (4) the failure to properly manage the distribution of products and services; (5) economic, political, and other risks associated with international sales and operations, including the impact of trade disputes on the economic climate in China and the wars in Ukraine and Israel; (6) the challenges in integrating and achieving expected results from acquired businesses; (7) information security breaches; (8) the failure to comply with laws or regulations relating to data privacy or data protection;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(9) the inability to protect our proprietary technology and intellectual property; (10) the failure to manufacture and deliver products in a timely manner; (11) the inability to obtain, or the delay in obtaining, components for our products at reasonable prices; (12) the failure to effectively manage product transitions or accurately forecast customer demand; (13) the inability to manage disruptions to our distribution centers or to our key suppliers; (14) the inability to design and manufacture high-quality products; (15) the loss of, or curtailment of purchases by, large customers in the logistics, consumer electronics, or automotive industries; (16) potential impairment charges with respect to our investments or acquired intangible assets; (17) exposure to additional tax liabilities, increases and fluctuations in our effective tax rate, and other tax matters; (18) fluctuations in foreign currency exchange rates and the use of derivative instruments; (19) unfavorable global economic conditions, including increases in interest rates and high inflation rates; (20) business disruptions from natural or man-made disasters, such as fire, or public health issues;  (21) exposure to potential liabilities, increased costs, reputational harm, and other adverse effects associated with expectations relating to environmental, social, and governance considerations; (22) stock price volatility; and (23) our involvement in time-consuming and costly litigation or activist shareholder activities. The foregoing list should not be construed as exhaustive and we encourage readers to refer to the detailed discussion of risk factors included in Part I - Item 1A of this Annual Report on Form 10-K. The Company cautions readers not to place undue reliance upon any such forward-looking statements, which speak only as of the date made. The Company disclaims any obligation to subsequently revise forward-looking statements to reflect the occurrence of anticipated or unanticipated events or circumstances after the date such statements are made.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXECUTIVE OVERVIEW</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation (&#8220;the Company&#8221;) invents and commercializes technologies that address some of the most critical manufacturing and distribution challenges. We are a leading global provider of machine vision products and solutions that seek to improve efficiency and quality in a wide range of businesses across attractive industrial end markets. In addition to product revenue derived from the sale of machine vision products, the Company also generates revenue by providing maintenance and support, consulting, and training services to its customers; however, service revenue accounted for less than 10% of total revenue for all periods presented.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">20</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Machine vision is used in a variety of industries where technology is widely recognized as an important component of automated production, distribution, and quality assurance. Virtually every manufacturer or distributor can achieve better quality and efficiency by using machine vision. This results in a broad base of potential customers across a variety of industries, including automotive, logistics, consumer electronics, medical-related, semiconductor, consumer products, and food and beverage.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for the year ended December 31, 2023 totaled $837,547,000, representing a decrease of 17% from the prior year due primarily to lower spending trends across our factory automation business, most notably in the consumer electronics and semiconductor industries, and the continued pause in investments by a few large e-commerce logistics customers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross margin as a percentage of revenue remained consistent with the prior year at 72%, as the deleveraging impact of lower sales volume, less favorable revenue mix, and charges related to the acquisition of Moritex Corporation in the fourth quarter of 2023 were offset by lower inventory costs due to a reduction in premiums paid to brokers for the purchase of components.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating expenses were relatively flat with the prior year, as the favorable year-over-year impact of losses from the fire at our contract manufacturer in 2022 compared to recoveries from the fire in 2023, lower incentive compensation, and cost management activities were offset by investments in our &#8220;Emerging Customer&#8221; sales initiative and costs related to the acquisition of Moritex Corporation in the fourth quarter of 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating income decreased to 16% of revenue in 2023 compared to 24% of revenue in 2022 driven by the operating deleveraging resulting from the lower revenue levels. This lower level of operating income resulted in net income of 14% of revenue in 2023 compared to 21% of revenue in 2022, and net income per diluted share of $0.65 in 2023 compared to $1.23 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth certain consolidated financial data as a percentage of revenue:</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:54.847%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.996%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.143%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.146%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">2023</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"> (1)</span></div></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">2022 (1)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%;text-decoration:underline">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">100</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross margin</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">72</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">72&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-operating income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">25&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">14</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(1) Amounts may not total properly due to rounding.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_43"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">RESULTS OF OPERATIONS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As foreign currency exchange rates are a factor in understanding period-to-period comparisons, we believe the presentation of results on a constant-currency basis in addition to reported results helps improve investors&#8217; ability to understand our operating results and evaluate our performance in comparison to prior periods. We also use results on a constant-currency basis as one measure to evaluate our performance. Constant-currency information compares results between periods as if exchange rates had remained constant period-over-period. We generally refer to such amounts calculated on a constant-currency basis as excluding the impact of foreign currency exchange rate changes. Results on a constant-currency basis are not in accordance with accounting principles generally accepted in the United States of America (U.S. GAAP) and should be considered in addition to, and not as a substitute for, results prepared in accordance with U.S. GAAP.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Year Ended December 31, 2023 Compared to Year Ended December 31, 2022</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for the year ended December 31, 2023 was $837,547,000 compared to $1,006,090,000 for the prior year, representing a decrease of 17%. Changes in foreign exchange rates resulted in a lower level of reported revenue in 2023 as compared to 2022. Excluding the impact of foreign currency exchange rate changes, revenue decreased </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">21</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">by 16% compared to 2022. On October 18, 2023, Cognex acquired Moritex Corporation, a global provider of premium optical components based in Japan. During the integration period, Cognex is consolidating Moritex results one month in arrears, and therefore, revenue for the fourth quarter of 2023 included six weeks of Moritex revenue totaling approximately $7,000,000. The majority of this revenue was from customers based in Asia in similar industries as Cognex&#8217;s historical revenue.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The decrease in revenue was due primarily to lower spending trends across our factory automation business, most notably in the consumer electronics and semiconductor industries, and the continued pause in investments by a few large e-commerce logistics customers. Revenue from the automotive industry, our largest market in both 2023 and 2022, decreased approximately 6% from the prior year. Although automotive revenue related to investment in electric vehicle battery applications grew year-over-year, this increase was more than offset by lower automotive revenue outside of electric vehicle battery applications. Revenue from the logistics industry decreased approximately 21% from the prior year. Excluding the decreases in revenue from a few large e-commerce customers, revenue from the remainder of the logistics industry grew, as the broader base of logistics customers continued to invest in automation. Revenue from the consumer electronics industry decreased approximately 31% from the prior year, with a large portion of the decrease coming from lower large-customer demand. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our disaggregated revenue information by geographic area based on the customers' country of domicile (in thousands) for the years ended December 31, 2023 and 2022.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:42.321%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.595%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">330,415</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">390,573&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(60,158)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(15)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">39</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">220,665</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,978)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">26</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">164,115</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(63,332)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(28)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">20</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">23&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">122,352</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">153,427&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(31,075)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(20)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">15</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">15&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total revenue</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(168,543)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in revenue from a geographic perspective were as follows:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in the Americas decreased by 15% from the prior year driven by lower revenue in the logistics industry due to the continued pause in investments by a few large e-commerce customers. Revenue from industries outside of logistics also declined from the prior year, most notably in medical-related industries that had benefited from COVID-related applications in prior years. </span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Europe decreased by 6% from the prior year. Changes in foreign currency exchange rates resulted in a higher level of reported revenue in 2023, as the U.S. Dollar weakened versus the Euro and sales denominated in Euros were translated into U.S. Dollars at a higher rate. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Europe decreased by 8% from the prior year. The decrease came from customers in a variety of industries, most notably the logistics and consumer electronics industries.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Greater China decreased by 28% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2023, due to the impact of sales denominated in Chinese Renminbi. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Greater China decreased by 23% from the prior year. The decrease was driven by lower revenue in the consumer electronics industry, particularly due to lower large-customer demand. Challenging business conditions in China also resulted in broad-based declines in revenue from customers in a variety of industries, most notably the automotive and semiconductor industries.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from other countries in Asia decreased by 20% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2023, primarily from sales denominated in Japanese Yen and Korean Won. Excluding the impact of foreign currency exchange rate changes, revenue from other countries in Asia decreased by 17% from the prior year. The decrease was driven by lower </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">22</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">revenue in the semiconductor and consumer electronics industries, and, to a lesser extent, the automotive industry. Revenue from Moritex customers based in Japan in the fourth quarter of 2023 was not material to the overall trend in the other countries in Asia region that includes Japan.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Gross Margin</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our gross margin (in thousands) for the years ended December 31, 2023 and 2022.</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:43.052%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Gross margin</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">601,241</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">721,905&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(120,664)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(17)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">72</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">72&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross margin as a percentage of revenue remained consistent at 72% in both 2023 and 2022. The deleveraging impact of lower sales volume, as well as less favorable revenue mix and charges related to the acquisition of Moritex Corporation in the fourth quarter of 2023, had an unfavorable impact on the gross margin percentage as compared to the prior year. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, the Company recorded Moritex inventories at fair market value, resulting in a $4,000,000 increase to acquired inventories above cost. Of this $4,000,000 increase to inventories, approximately $2,800,000 was recorded as cost of revenue in the fourth quarter as the majority of the acquired inventories were sold, with the remaining $1,200,000 expected to be recorded as cost of revenue in the first quarter of 2024. Moritex charges for the fourth quarter of 2023 also included approximately $600,000 of amortization related to acquired technologies. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These decreases were offset by lower inventory costs driven by a reduction in premiums paid to brokers for the purchase of components in response to global supply chain constraints and the expedited replenishment of inventories lost in the fire at our primary contract manufacturer in the second quarter of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Operating Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our operating expenses (in thousands) for the years ended December 31, 2023 and 2022.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:42.321%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.847%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">139,400</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">141,133&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,733)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">17</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">339,139</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">312,107&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">27,032&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">40</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">31&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,657)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(100)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (recovery) from fire</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(8,000)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">20,779&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(28,779)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(139)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total operating expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">470,539</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">475,676&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(5,137)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">Percentage of total revenue</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">56</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">47&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-style:italic;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research, Development, and Engineering Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research, development, and engineering (RD&amp;E) expenses in 2023 decreased by $1,733,000, or 1%, from the prior year. The decrease in RD&amp;E expenses was due primarily to lower incentive compensation expenses resulting from weaker business performance, as well as cost management activities that included the realignment of headcount to the lower business levels. These decreases were partially offset by the additional costs associated with a new team of optical engineers that joined Cognex with the acquisition of Moritex Corporation on October 18, 2023. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RD&amp;E expenses as a percentage of revenue was 17% in 2023 compared to 14% in 2022. We believe that a continued commitment to RD&amp;E activities is essential to maintain or achieve product leadership with our existing products and to provide innovative new product offerings, as well as to provide engineering support for large </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">23</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">customers. In addition, we consider our ability to accelerate the time to market for new products to be critical to our revenue growth and competitive position. This annual percentage is impacted by revenue levels and investing cycles.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Selling, General, and Administrative Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general, and administrative (SG&amp;A) expenses in 2023 increased by $27,032,000, or 9%, from the prior year. The increase in SG&amp;A expenses was due primarily to increased costs related to our &#8220;Emerging Customer&#8221; sales initiative, including additional headcount, travel expenses, sales demonstration equipment, and marketing costs. We launched this initiative in 2023 to broaden the reach of our sales force to customers who are relatively new to factory automation and have not fully realized the advantages of machine vision. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs related to the acquisition of Moritex Corporation on October 18, 2023 also contributed to the higher SG&amp;A expenses. These costs included additional sales and support personnel, sales demonstration equipment distributed to the Cognex sales force, transaction costs totaling approximately $5,800,000, and approximately $800,000 of amortization related to acquired customer relationships and trademarks. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These increases were partially offset by lower incentive compensation expenses, which included sales commissions and incentive bonuses, resulting from weaker business performance. Cost management also helped to offset the increases, including the realignment of headcount to support the Emerging Customer sales initiative.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Loss (Recovery) from Fire</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. Since 2022, the Company has also been scaling up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses of inventories and other assets of $48,339,000, partially offset by insurance proceeds received from the Company's insurance carrier of $27,560,000. In 2023, the Company recorded recoveries related to the fire of $8,000,000, consisting of $2,500,000 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $5,500,000 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire. Management does not anticipate additional recoveries.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restructuring Charges</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 7, 2022, the Company acquired SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. In December 2022, following its acquisition of SAC, the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities resulted in charges of $1,657,000 in 2022. No additional charges are expected to be incurred in future periods in relation to this restructuring plan.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-operating Income (Expense)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth our non-operating income (expense) (in thousands) for the years ended December 31, 2023 and 2022.</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:41.590%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.847%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(10,039)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(1,837)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(8,202)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">446&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">14,093</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">6,715&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">7,378&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">110&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">592</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(412)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">1,004&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(244)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total non-operating income (expense)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">4,646</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4,466&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">180&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">4&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded foreign currency losses of $10,039,000 in 2023 and $1,837,000 in 2022. In the third quarter of 2023, the Company recorded a foreign currency loss of $8,456,000 on the settlement of a foreign currency forward contract entered into to hedge the Japanese Yen purchase price of the acquisition of Moritex Corporation. Remaining foreign currency gains and losses in each year resulted primarily from the revaluation and settlement of assets and liabilities that are denominated in currencies other than the functional currency of the Company, which is the U.S. Dollar, or its subsidiaries.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">24</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investment income increased by $7,378,000, or 110%, from the prior year. The increase was due primarily to higher yields on the Company's portfolio of debt securities, partially offset by lower average investment balances and changes in realized gains and losses. During the fourth quarter of 2023, net cash payments related to the acquisition of Moritex Corporation reduced cash available to invest by approximately $257 million, which resulted in lower investment income for the fourth quarter of 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded other income of $592,000 in 2023 and other expense of $412,000 in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Income Tax Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table sets forth income tax information (in thousands) for the twelve-month periods ended December 31, 2023 and December 31, 2022.</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:40.566%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.677%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.420%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.619%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.116%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Twelve-months Ended</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$ Change</span></td><td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">% Change</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">135,348</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">250,695&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(115,347)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(46)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">22,114</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(13,056)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(37)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effective income tax rate</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">16</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s effective tax rate was 16% in 2023 and 14% in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The increase in the effective tax rate from 14% to 16% primarily resulted from the impact of discrete tax items, most notably an increase in tax reserves and an increase in tax expense due to a tax rate revaluation on state tax assets. These impacts were partially offset by discrete tax benefits related to the release of a valuation allowance.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Excluding the impact of all discrete tax items, the Company's effective tax rate was 15% in 2023 and 16% in 2022 due to an increase in tax credits available in the year, partially offset by an increase in disallowed executive compensation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Year Ended December 31, 2022 Compared to Year Ended December 31, 2021</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for the year ended December 31, 2022 was $1,006,090,000 compared to $1,037,098,000 for the prior year, representing a decrease of 3%. Changes in foreign exchange rates resulted in a lower level of reported revenue in 2022 as compared to 2021. Excluding the impact of foreign currency exchange rate changes, revenue increased by 1% compared to 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fire on June 7, 2022 at our primary contract manufacturer&#8217;s plant in Indonesia, which destroyed a large amount of component inventory, limited our ability to fulfill certain orders in the year ended December 31, 2022, which resulted in lower revenue. Revenue from the logistics industry, our largest market in 2021, decreased by approximately 25% as a result of the slowing of large e-commerce customer projects as such customers absorbed excess capacity built up during the pandemic. Excluding these decreases in revenue from a few large logistics customers, revenue from the remainder of the logistics industry grew, as the broader base of logistics customers continued to invest in automation. The decline in overall revenue from the logistics industry was partially offset by growth in the broader factory automation market, most notably in the consumer electronics, automotive, and semiconductor industries. Consumer electronics revenue increased by approximately 8%, and 14% on a constant-currency basis, primarily as a result of increased large-customer demand. Revenue from our largest industry in 2022, automotive, increased by 7%, and 13% on a constant-currency basis, primarily as a result of continued investment in electric vehicles.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Changes in revenue from a geographic perspective were as follows:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in the Americas decreased by 10% from the prior year driven primarily by a decrease in revenue from customers in the logistics industry. This decrease was partially offset by an increase in revenue from other industries, led by growth in the automotive and consumer electronics industries.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Europe decreased by 5% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, as sales denominated in Euros were translated into U.S. Dollars at a lower rate. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Europe increased by 5% from the prior year. The increase came from customers in a variety of industries, most notably the automotive and consumer electronics industries, partially offset by a decrease in revenue from customers in the logistics industry.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">25</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from customers based in Greater China increased by 14% from the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, primarily from sales denominated in Chinese Renminbi. Excluding the impact of foreign currency exchange rate changes, revenue from customers based in Greater China increased by 17% from the prior year. The increase was driven primarily by higher revenue in the consumer electronics industry, particularly due to increased large-customer demand, and to a lesser extent, growth in the semiconductor and automotive industries.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">Revenue from other countries in Asia remained flat with the prior year. Changes in foreign currency exchange rates resulted in a lower level of reported revenue in 2022, primarily from sales denominated in Japanese Yen and Korean Won. Excluding the impact of foreign currency exchange rate changes, revenue from these customers in other countries in Asia increased by 8% from the prior year, led by higher revenue in semiconductor and automotive industries, and, to a lesser extent, the logistics industry. These increases were partially offset by a decrease in revenue from the consumer electronic industry.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Gross Margin</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross margin as a percentage of revenue decreased to 72% in 2022 compared to 73% in 2021. The decrease resulted primarily from higher inventory costs, due largely to global supply chain constraints and the expedited replenishment of inventories lost in the fire at our primary contract manufacturer's plant on June 7, 2022. These circumstances have resulted in broker-buy purchases for components at higher-than-normal costs. The decrease in gross margin was also due to an unfavorable impact of foreign currency exchange rate changes.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A more favorable revenue mix partially offset this decrease in gross margin. A lesser percentage of revenue came from the logistics industry, which has relatively lower gross margins, and a greater percentage of revenue came from the consumer electronics industry, which has relatively higher gross margins. Further, the Company has increased prices, which has offset the impact of component cost inflation (not including broker-buy purchases) on our gross margin.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Operating Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Research, Development, and Engineering Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research, development, and engineering (RD&amp;E) expenses in 2022 increased by $5,761,000, or 4%, from the prior year as detailed in the table below (in thousands).</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:80.891%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.909%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RD&amp;E expenses in 2021</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">135,372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Personnel-related costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,060&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,761&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,348)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(4,453)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,741&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">RD&amp;E expenses in 2022</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">141,133</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RD&amp;E expenses increased primarily due to higher personnel-related costs resulting from headcount additions to support new product initiatives and salary increases provided to employees as part of our merit and promotion process. Stock-based compensation expense also increased from the prior year due to a higher level of stock-based grants at a higher average economic value, as well as the impact of a forfeiture rate true-up that resulted in higher expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These increases were partially offset by lower incentive compensation expense compared to the prior year due to weaker business performance. Relevant performance goals for incentive compensation plans are set at the beginning of each year, with the ability to earn upside if the goals are exceeded. In contrast to 2022, performance goals set for 2021 incentive bonuses were exceeded, resulting in a higher level of bonus expense recorded in 2021. The impact of foreign currency exchange rate changes further offset the increase to RD&amp;E expenses, as costs denominated in foreign currencies were translated into U.S. Dollars at a lower rate.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">RD&amp;E expenses as a percentage of revenue was 14% in 2022 compared to 13% in 2021. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Selling, General, and Administrative Expenses</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Selling, general, and administrative (SG&amp;A) expenses increased in 2022 by $2,753,000, or 1%, from the prior year as detailed in the table below (in thousands). </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">26</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:80.891%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.909%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SG&amp;A expenses in 2021</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">309,354&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Personnel-related costs</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,112&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,436&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Travel expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,666&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(24,476)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,613)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,628&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">SG&amp;A expenses in 2022</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">312,107</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SG&amp;A expenses increased primarily due to higher personnel-related costs resulting from headcount additions, primarily for sales personnel to support the Company's anticipated revenue growth, and salary increases provided to employees as part of our merit and promotion process. In addition to salaries and fringe benefits, these personnel-related costs included sales commissions and travel expenses related to the additional headcount. Stock-based compensation expense also increased from the prior year due to a higher level of stock-based grants at a higher average economic value, as well as the impact of a forfeiture rate true-up that resulted in higher expense. While travel expenses increased due to the number of sales personnel added, expenses also increased due to a higher level of travel activity as restrictions related to COVID-19 continued to ease.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These increases were partially offset by lower incentive compensation expenses than the prior year, which included sales commissions and incentive bonuses, primarily due to weaker business performance. Relevant performance goals for these plans are set at the beginning of each year, with the ability to earn upside if the goals are exceeded. In contrast to 2022, performance goals set for 2021 sales commissions and incentive bonuses were exceeded, resulting in a higher level of incentive compensation expenses recorded in 2021. The impact of foreign currency exchange rate changes further offset the increase to SG&amp;A expenses, as costs denominated in foreign currencies were translated into U.S. Dollars at a lower rate.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Loss from Fire</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to assess the damage, resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been scaling up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a result of the fire, the Company recorded $48,339,000 in gross losses in 2022, related to $37,663,000 of Cognex-owned inventories, $8,709,000 of primarily prepayments related to Cognex-designated components that were owned by the contract manufacturer and other assets, and $1,967,000 related to deleveraging of costs related to our distribution centers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Gross losses have been reduced by insurance proceeds received from the Company&#8217;s insurance carrier of $27,560,000 in the fourth quarter of 2022. Gross losses net of insurance recovery of $20,779,000 are presented in the caption &#8220;Loss from fire&#8221; on the Consolidated Statements of Operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Restructuring Charges</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate our growth trajectory with electric vehicle battery manufacturers. In December 2022, following its acquisition of SAC, the Company performed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities resulted in charges of $1,657,000 in 2022. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-operating Income (Expense)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded foreign currency losses of $1,837,000 in 2022 and $2,270,000 in 2021. Foreign currency gains and losses result primarily from the revaluation and settlement of assets and liabilities that are denominated in currencies other than the functional currencies of our subsidiaries or the reporting currency of our company, which is the U.S. Dollar.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">27</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Investment income increased by $55,000, or 1%, from the prior year. The slight increase was due primarily t</span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">o higher yields on investments, partially offset by lower average investment balances and changes in realized gains and losses</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded other expense of $412,000 in 2022 and $591,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Income Tax Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s effective tax rate was 14% of pre-tax income in 2022, compared to 12% in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The increase in effective tax rate in 2022 primarily resulted from the impact of discrete tax items, including a decrease in tax benefits related to stock-based compensation, an increase in certain international tax reserves, and a net expense related to return-to-provision adjustments. These impacts were partially offset by discrete tax benefits related to audit settlements, a release in the valuation allowance, Global Intangible Low-Taxed Income ("GILTI") adjustments, and a rate revaluation on deferred state tax assets.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Excluding the impact of all discrete tax items, the Company&#8217;s effective tax rate was 16% of pre-tax income for both 2022 and 2021.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_46"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">LIQUIDITY AND CAPITAL RESOURCES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has historically been able to generate positive cash flow from operations, which has funded its operating activities and other cash requirements and resulted in an accumulated cash and investment balance of $576,277,000 as of December&#160;31, 2023. The Company has established guidelines relative to credit ratings, diversification, and maturities of its investments to maintain liquidity and safety of the investment portfolio.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Operating Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash provided by operating activities totaled $112,916,000 in 2023. Significant uses of cash consisted of aggregate payments of $24,040,000 related to the 2019 acquisition of Sualab Co, Ltd. that were contingent upon the continued employment of key talent, payments made to build up inventory levels, and incentive compensation payments made in the first quarter of 2023 that were earned and accrued in 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Investing Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash provided by investing activities totaled $32,273,000 in 2023. Investing activities included the acquisition of Moritex Corporation in the fourth quarter of 2023 that resulted in a payment, net of cash acquired, of $257,056,000 that was largely funded from the maturities and sales of investments. Investing activities also included capital expenditures, which totaled $23,077,000 in 2023 and consisted primarily of continued investments in business systems related to the Company's sales process, manufacturing test equipment related to new product introductions, and leasehold improvements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financing Activities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Net cash used in financing activities totaled $125,605,000 in 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 program. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022 and 1,723,000 shares at a cost of $79,794,000 in 2023, including $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022, leaving a remaining balance of $332,892,000. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.060 per share in the first, second, and third quarters of 2021, $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022, and $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023. The dividend was increased to $0.075 per share in the fourth quarter of 2023. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">28</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Total dividends paid were $49,079,000 in 2023, $45,921,000 in 2022, and $43,263,000 in 2021. Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Future Cash Requirements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's material cash requirements include contractual obligations related to inventory purchase commitments and leases. As of December&#160;31, 2023, the Company had inventory purchase commitments of $61,459,000, with the majority payable within twelve months, and lease payment obligations of $105,697,000, with $13,612,000 payable within twelve months.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other significant and/or expected cash outlays for 2024 include:</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We expect to continue to make significant cash outlays related to our Emerging Customer sales initiative as we continue to grow our sales force in order to reach customers who are new to machine vision or Cognex.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">The Tax Cuts and Jobs Act of 2017 subjected unrepatriated foreign earnings to a one-time transition tax. As of December 31, 2023, the Company had a remaining balance payable of $33,006,000 through 2025.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We believe that the Company's existing cash and investment balances, together with cash flow from operations, will be sufficient to meet its operating, investing, and financing activities for the next twelve months. In addition, the Company has no long-term debt. We believe that our strong cash position has put us in a relatively good position with respect to anticipated longer-term liquidity needs.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_49"></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CRITICAL ACCOUNTING ESTIMATES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our discussion and analysis of the Company&#8217;s financial condition and results of operations are based on the consolidated financial statements included in this Annual Report on Form 10-K, which have been prepared in accordance with accounting principles generally accepted in the United States. The preparation of these financial statements requires management to make estimates and judgments that affect the reported amounts of assets, liabilities, revenue, and expenses, and related disclosure of contingent assets and liabilities. We base our estimates on historical experience and various other assumptions believed to be reasonable under the circumstances, 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. Changes in accounting estimates are reasonably likely to occur from period to period. Accordingly, actual results could differ from these estimates under different assumptions or circumstances resulting in charges that could be material in future reporting periods. We believe the following critical accounting policies require the use of significant estimates and judgments in the preparation of our consolidated financial statements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Revenue Recognition</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the Company expects to be entitled in exchange for those goods or services.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management uses significant judgment when determining the amount of revenue to be recognized each period for application-specific customer solutions. Accounting for application-specific customer solutions requires management to monitor and evaluate customer contracts to determine the point in time at which the solution is validated. The Company&#8217;s application-specific customer solutions are comprised of a combination of products and services which are accounted for as one performance obligation to deliver a total solution to the customer. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">29</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Income Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Significant judgment is required in determining worldwide income tax expense based on tax laws in the various jurisdictions in which the Company operates. The Company has established reserves for income taxes by applying the &#8220;more likely than not&#8221; criteria, under which the recognition threshold is met when an entity concludes that a tax position, based solely on its technical merits, is more likely than not to be sustained upon examination by the relevant tax authority. All tax positions are analyzed periodically and adjustments are made as events occur that warrant modification, such as the completion of audits or the expiration of statutes of limitations, which may result in future charges or credits to income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As part of the process of preparing consolidated financial statements, management is required to estimate income taxes in each of the jurisdictions in which the Company operates. These estimates occur in the calculation of income tax credits, benefits, and deductions, and in the calculation of certain tax assets and liabilities, which arise from differences in the timing of the recognition of certain expenses for tax and financial statement purposes. We assess the likelihood of the realization of deferred tax assets and record a corresponding valuation allowance as necessary if we determine those deferred tax assets may not be realized due to the uncertainty of the timing and amount to be realized of certain federal, state, and international tax credit carryovers.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has made an election to account for the impact of the Global Intangible Low-Taxed Income (GILTI) minimum tax in deferred taxes. Management has determined that this change is considered preferable, based on the conclusion that it appropriately matches the Company&#8217;s current and deferred income tax implications to its tax structure.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Business Combinations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Allocating the purchase price for a business combination requires the Company to identify and estimate the fair values of various assets acquired and liabilities assumed. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_52"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NEW PRONOUNCEMENTS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Refer to Part II, Item 8 - Note 2 within this Form 10-K, for a full description of recently issued accounting pronouncements including the expected dates of adoption and expected impact on the financial position and results of operations of the Company. </span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_55"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;7A:&#160;QUANTITATIVE AND QUALITATIVE DISCLOSURES ABOUT MARKET RISK</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company is exposed to certain risks relating to its ongoing business operations, including foreign currency exchange rate risk and interest rate risk. The Company currently mitigates certain foreign currency exchange rate risks with derivative instruments. The Company does not currently manage its interest rate risk with derivative instruments.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Foreign Currency Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company faces exposure to foreign currency exchange rate fluctuations, as a significant portion of its revenues, expenses, assets, and liabilities are denominated in currencies other than the functional currencies of the Company&#8217;s subsidiaries or the reporting currency of the Company, which is the U.S. Dollar. In certain instances, we utilize forward contracts to hedge against foreign currency fluctuations. These contracts are used to minimize foreign currency gains or losses, as the gains or losses on the derivative are intended to offset the losses or gains on the underlying exposure. We do not engage in foreign currency speculation. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company enters into economic hedges utilizing foreign currency forward contracts with maturities of up to three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">30</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts as of December 31, 2023 and 2022 (in thousands): </span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:17.228%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.603%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.844%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.844%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.656%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.964%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.968%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">High Rate</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Low Rate</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">High Rate</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Low Rate</span></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="24" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,302</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.9029</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,174&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.9350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.9350&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39,700</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,136</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">145,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,505</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17.05</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17.05</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">185,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,480&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19.51&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19.51&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.12</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7.12</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,619&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.22&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7.22&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,240,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,466</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">346.45</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">346.45</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,590,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,238&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">375.19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">375.19&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,345</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,258</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7855</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.7855</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,445&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,161&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.8279&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.8279&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">600,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,255</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">141.02</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">141.02</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">700,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,281&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">132.56&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">132.56&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,470</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,112</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1.32</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,730&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,278&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.35&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.35&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,120&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,218&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.92&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.92&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A change in foreign currency exchange rates could materially impact the fair value of these contracts; however, if this occurred, the fair value of the underlying exposures hedged by the contracts would change by a similar amount. Accordingly, management does not believe that a material change in foreign currency exchange rates used in the fair value of our derivative instruments would materially impact operations or cash flows.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The success of our foreign currency risk management program depends on forecasts of transaction activity denominated in various currencies. To the extent that these forecasts are overstated or understated during periods of currency volatility, we could experience unanticipated foreign currency gains or losses that could have a material impact on our results of operations. Furthermore, our failure to identify new exposures and hedge them in an effective manner may result in material foreign currency gains or losses.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s functional currency/reporting currency exchange rate exposures result from revenues and expenses that are denominated in currencies other than the U.S. Dollar. In addition to the U.S. Dollar, a significant portion of our revenues and expenses are denominated in the Euro and Chinese Renminbi, and to a lesser extent the Korean Won, Japanese Yen, Mexican Peso, and Indian Rupee. We estimate that approximately 52% of our sales in 2023 were invoiced in currencies other than the U.S.&#160;Dollar, and we expect sales denominated in foreign currencies to continue to represent a significant portion of our total revenue. While we also have expenses denominated in these same foreign currencies, the impact on revenues has historically been, and is expected to continue to be, greater than the offsetting impact on expenses. Therefore, in times when the U.S.&#160;Dollar strengthens in relation to these foreign currencies, we would expect to report a net decrease in operating income. Conversely, in times when the U.S.&#160;Dollar weakens in relation to these foreign currencies, we would expect to report a net increase in operating income. Thus, changes in the relative strength of the U.S.&#160;Dollar may have a material impact on our operating results.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Interest Rate Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s investment portfolio of debt securities includes corporate bonds, treasury notes, asset-backed securities, and sovereign bonds. Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value. As of December&#160;31, 2023, the fair value of the Company&#8217;s portfolio of debt securities amounted to $373,622,000, with amortized cost amounts totaling $383,589,000, maturities that do not exceed seven years, and a yield to maturity of 2.3%. Differences between</span><span style="color:#ee2724;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">the fair value and principal amounts of the Company&#8217;s portfolio of debt securities are primarily attributable to discounts and premiums arising at the acquisition date, as well as unrealized gains and losses as of the balance sheet date. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. As of December&#160;31, 2023, 68% of the investment portfolio had effective maturity dates of less than three years. Given the relatively short maturities and investment-grade quality of the Company&#8217;s portfolio of debt securities as of December&#160;31, 2023, we do not expect a sharp rise in interest rates to have a material adverse effect on the fair value of these instruments. As a result, the Company does not currently hedge these interest rate exposures.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">31</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the hypothetical change in the fair value of the Company&#8217;s portfolio of debt securities arising from selected potential changes in interest rates (in thousands). This modeling technique measures the change in fair value that would result from a parallel shift in the yield curve plus or minus 50 and 100 basis points (BP) over a twelve-month time horizon.</span></div><div style="margin-top:5pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:18.870%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.171%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.176%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Type of security</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Valuation&#160;of&#160;securities&#160;given<br/>an&#160;interest&#160;rate&#160;decrease</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">No&#160;change&#160;in<br/>interest&#160;rates</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Valuation&#160;of&#160;securities&#160;given<br/>an interest&#160;rate&#160;increase</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(100 BP)</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(50 BP)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">50 BP</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100 BP</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">314,317&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">311,567&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">308,816&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">306,066&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">303,316&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">44,298&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">43,911&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">43,135&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">42,748&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Asset-backed&#160;securities</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">19,658&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">19,486&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">19,142&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">18,970&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,986&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,969&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,951&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">1,933&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">380,276</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">376,950</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">370,294</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">366,967</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">32</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_58"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;8:&#160;FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:14pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">INDEX TO FINANCIAL STATEMENTS AND SUPPLEMENTARY DATA</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:88.782%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.018%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Consolidated Financial Statements:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_61">Report of Independent Registered Public Accounting Firm (PCAOB ID</a><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_61"> Number </a><ix:nonNumeric contextRef="c-1" name="dei:AuditorFirmId" id="f-37">248</ix:nonNumeric><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_61">)</a></span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_61">34</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">Consolidated Statements of Operations for the Years Ended December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, </a>2022<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, and </a>2021</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">36</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_70">Consolidated Statements of Comprehensive Income for the Years Ended December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, </a>2022<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, and </a>2021</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_70">37</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_76">Consolidated Balance Sheets as of December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_76"> and </a>2022</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_76">38</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_82">Consolidated Statements of Cash Flows for the Years Ended December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, </a>2022<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, and </a>2021</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_82">39</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_85">Consolidated Statements of Shareholders&#8217; Equity for the Years Ended December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, </a>2022<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, and </a>2021</span></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_85">40</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_91">Notes to the Consolidated Financial Statements</a></span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_91">41</a></span></div></td></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Financial Statement Schedule:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:6.75pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_208">Schedule II &#8211; Valuation and Qualifying Accounts for the Years Ended December&#160;31, </a>2023<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, </a>2022<a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_64">, and </a>2021</span></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="text-align:right"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_208">71</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">33</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_61"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:107%">Board of Directors and Shareholders</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:107%">Cognex Corporation</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:115%">Opinion on the financial statements </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the accompanying consolidated balance sheets of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2023 and 2022, the related consolidated statements of operations, comprehensive income, shareholders&#8217; equity, and cash flows for each of the three years in the period ended December 31, 2023, and the related notes and financial statement schedule included under Item 15(a) (collectively referred to as the &#8220;financial statements&#8221;). In our opinion, the financial statements present fairly, in all material respects, the financial position of the Company as of December 31, 2023 and 2022, and the results of its operations and its cash flows for each of the three years in the period ended December 31, 2023, in conformity with accounting principles generally accepted in the United States of America. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the Company&#8217;s internal control over financial reporting as of December 31, 2023, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;), and our report dated February 15, 2024 expressed an unqualified opinion.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:115%">Basis for opinion </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">These financial statements are the responsibility of the Company&#8217;s management. Our responsibility is to express an opinion on the Company&#8217;s 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></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 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 financial statements, whether due to error or fraud, and performing procedures that respond to those risks. Such procedures included examining, on a test basis, evidence regarding the amounts and disclosures in the financial statements. Our audits also included evaluating the accounting principles used and significant estimates made by management, as well as evaluating the overall presentation of the financial statements. We believe that our audits provide a reasonable basis for our opinion.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:107%">Critical audit matter</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The critical audit matter communicated below is a matter arising from the current period audit of the financial statements that was communicated or required to be communicated to the audit committee and that: (1) relate to accounts or disclosures that are material to the financial statements and (2) involved our especially challenging, subjective, or complex judgments. The communication of critical audit matters does not alter in any way our opinion on the financial statements, taken as a whole, and we are not, by communicating the critical audit matter below, providing a separate opinion on the critical audit matter or on the accounts or disclosures to which it relates.</span></div><div style="text-align:justify"><span><br/></span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:107%">Revenue Recognition &#8211; Application-Specific Customer Solutions </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As described further in Notes 1 and 14 to the consolidated financial statements, the Company recognizes revenue from application-specific customer solutions. For these transactions, revenue is recognized at the point in time when the solution is validated, which is when the Company can objectively determine that the agreed-upon specifications in the contract have been met and the customer will accept the performance obligation in the contract. We identified revenue recognition related to application-specific customer solutions as a critical audit matter.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The principal considerations for our determination that revenue recognition related to application-specific customer solutions is a critical audit matter are that evaluating the performance obligations and determining the timing of validation and that the agreed-upon specifications in the contract have been met relies on the use of management judgments and requires a higher degree of auditor judgment in designing, executing and evaluating the results of audit procedures. Accounting for application-specific customer solutions requires the Company to monitor and evaluate customer contracts on an ongoing basis to determine the point in time at which the solution is validated, the agreed-upon specifications in the contract have been met and revenue can be recognized. </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">34</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit procedures related to the revenue recognition of application-specific customer solutions included the following, among others. </span></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We tested the design and operating effectiveness of internal controls related to the monitoring of application-specific customer solutions contracts, determination of validation and the timing of revenue recognition.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">We evaluated management&#8217;s significant accounting policies related to these customer contracts, including the determination of the performance obligation, for appropriate revenue recognition based on key terms and provisions.</span></div><div style="margin-top:5pt;padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt">For a sample of contracts, we inspected source documents, including the customer contract or purchase order, third-party shipping information, invoice, and evidence of validation or acceptance to evaluate the identification of performance obligations and timing of revenue recognition.</span></div><div style="margin-top:18pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">/s/ GRANT THORNTON LLP</span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:174%">We have served as the Company&#8217;s auditor since 2007. </span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:174%">Boston, Massachusetts</span></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;15, 2024 </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">35</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_64"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF OPERATIONS</span></div><div><span><br/></span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:55.938%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.122%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.831%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands, except per share amounts)</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-38">837,547</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-39">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-40">1,037,098</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-41">236,306</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-42">284,185</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CostOfGoodsAndServicesSold" format="ixt:num-dot-decimal" scale="3" id="f-43">277,271</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross margin</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-44">601,241</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-45">721,905</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:GrossProfit" format="ixt:num-dot-decimal" scale="3" id="f-46">759,827</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-47">139,400</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-48">141,133</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ResearchAndDevelopmentExpense" format="ixt:num-dot-decimal" scale="3" id="f-49">135,372</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-50">339,139</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-51">312,107</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:SellingGeneralAndAdministrativeExpense" format="ixt:num-dot-decimal" scale="3" id="f-52">309,354</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Loss (recovery) from fire (Note 22)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-53">8,000</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-54">20,779</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:LossGainFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-55">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges (Note 23)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-56">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-57">1,657</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:fixed-zero" scale="3" id="f-58">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Operating income</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-59">130,702</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-60">246,229</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-61">315,101</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-62">10,039</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-63">1,837</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:ForeignCurrencyTransactionGainLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-64">2,270</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Investment income</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-65">14,093</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-66">6,715</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:InvestmentIncomeNonoperating" format="ixt:num-dot-decimal" scale="3" id="f-67">6,660</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other income (expense)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-68">592</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-69">412</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherNonoperatingIncomeExpense" scale="3" id="f-70">591</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income before income tax expense</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-71">135,348</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-72">250,695</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" format="ixt:num-dot-decimal" scale="3" id="f-73">318,900</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-74">22,114</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-75">35,170</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-76">39,019</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-77">113,234</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-78">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-79">279,881</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net Income per weighted-average common and common-equivalent share:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-80">0.66</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-81">1.24</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:EarningsPerShareBasic" scale="0" id="f-82">1.59</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-83">0.65</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-84">1.23</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:EarningsPerShareDiluted" scale="0" id="f-85">1.56</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:8pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Weighted-average common and common-equivalent shares outstanding:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-86">172,249</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-87">173,407</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-88">176,463</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted</span></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-89">173,399</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-90">174,869</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-91">179,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:11pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash dividends per common share</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-92">0.286</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-93">0.265</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="4" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-94">0.245</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/></tr></table></div><div><span><br/></span></div><div><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">36</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_70"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:59.222%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.637%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.640%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-95">113,234</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-96">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-97">279,881</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other comprehensive income (loss), net of tax:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Available-for-sale investments:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:11.25pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net unrealized gain (loss), net of tax of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-98">4,389</ix:nonFraction>, $(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-99">5,943</ix:nonFraction>), and $(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" format="ixt:num-dot-decimal" scale="3" id="f-100">2,206</ix:nonFraction>) in 2023, 2022, and 2021, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-101">10,507</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-102">17,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-103">7,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss into current operations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-104">1,954</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-105">182</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-106">236</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net change related to available-for-sale investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-107">12,461</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-108">16,970</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-109">7,388</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation adjustments:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency translation gain (loss) </span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-110">11,500</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-111">4,385</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-112">6,753</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net change related to foreign currency translation adjustments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-113">11,500</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-114">4,385</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-115">6,753</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:15pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other comprehensive income (loss), net of tax</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-116">23,961</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-117">21,355</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" format="ixt:num-dot-decimal" scale="3" id="f-118">14,141</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total comprehensive income</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-119">137,195</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-120">194,170</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ComprehensiveIncomeNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-121">265,740</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:72pt;font-weight:400;line-height:120%">&#160;</span></div><div><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="margin-top:5pt;text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">37</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_76"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED BALANCE SHEETS</span></div><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:71.560%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.204%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.206%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">ASSETS</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current assets:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-122">202,655</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-123">181,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current investments, amortized cost of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="f-124">132,799</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent" format="ixt:num-dot-decimal" scale="3" id="f-125">223,545</ix:nonFraction> in 2023 and 2022, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="f-126"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" scale="3" id="f-127">0</ix:nonFraction></ix:nonFraction> in 2023 and 2022</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-128">129,392</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-129">218,759</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-130">583</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-131">730</ix:nonFraction> in 2023 and 2022, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-132">114,164</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccountsReceivableNetCurrent" format="ixt:num-dot-decimal" scale="3" id="f-133">125,417</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-134">2,402</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:UnbilledReceivablesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-135">2,179</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-136">162,285</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-137">122,480</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-138">68,099</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:PrepaidExpenseAndOtherAssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-139">67,490</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-140">678,997</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AssetsCurrent" format="ixt:num-dot-decimal" scale="3" id="f-141">717,699</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current investments, amortized cost of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-142">250,790</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-143">476,148</ix:nonFraction> in 2023 and 2022, respectively, allowance for credit losses of $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="f-144"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" scale="3" id="f-145">0</ix:nonFraction></ix:nonFraction> in 2023 and 2022</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-146">244,230</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-147">454,117</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Property, plant, and equipment, net</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-148">105,849</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-149">79,714</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-150">75,115</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="3" id="f-151">37,682</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-152">393,181</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-153">242,630</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Intangible assets, net</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="f-154">112,952</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:IntangibleAssetsNetExcludingGoodwill" format="ixt:num-dot-decimal" scale="3" id="f-155">12,414</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-156">400,400</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredIncomeTaxAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-157">407,241</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-158">7,088</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherAssetsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-159">6,643</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total assets</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-160">2,017,812</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Assets" format="ixt:num-dot-decimal" scale="3" id="f-161">1,958,140</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Current liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-162">21,454</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccountsPayableCurrent" format="ixt:num-dot-decimal" scale="3" id="f-163">27,103</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-164">72,374</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-165">93,235</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-166">16,907</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedIncomeTaxesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-167">18,129</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue and customer deposits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-168">31,525</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-169">40,787</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Operating lease liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-170">9,624</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OperatingLeaseLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-171">8,454</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total current liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-172">151,884</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:LiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-173">187,708</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current operating lease liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-174">68,977</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OperatingLeaseLiabilityNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-175">31,298</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-176">246,877</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredIncomeTaxLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-177">249,961</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-178">26,685</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:LiabilityForUncertainTaxPositionsNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-179">15,866</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-current accrued income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-180">18,338</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedIncomeTaxesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-181">33,008</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" scale="3" id="f-182">299</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherLiabilitiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-183">1,905</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-184">513,060</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Liabilities" format="ixt:num-dot-decimal" scale="3" id="f-185">519,746</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:12pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Commitments and contingencies (Note 11)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-7" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-186"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-8" xsi:nil="true" name="us-gaap:CommitmentsAndContingencies" id="f-187"></ix:nonFraction></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Shareholders&#8217; equity:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Preferred stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-8" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-188"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-189">0.01</ix:nonFraction></ix:nonFraction> par value - Authorized: <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="f-190"><ix:nonFraction unitRef="shares" contextRef="c-8" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" scale="3" id="f-191">400</ix:nonFraction></ix:nonFraction> shares in 2023 and 2022, respectively, <ix:nonFraction unitRef="shares" contextRef="c-8" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="f-192"><ix:nonFraction unitRef="shares" contextRef="c-8" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="f-193"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesIssued" format="ixt-sec:numwordsen" scale="3" id="f-194"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesOutstanding" format="ixt-sec:numwordsen" scale="3" id="f-195">no</ix:nonFraction></ix:nonFraction></ix:nonFraction></ix:nonFraction> shares issued and outstanding</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="f-196">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:PreferredStockValueOutstanding" format="ixt:fixed-zero" scale="3" id="f-197">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="padding-left:18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Common stock, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-198"><ix:nonFraction unitRef="usdPerShare" contextRef="c-8" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-199">0.002</ix:nonFraction></ix:nonFraction> par value &#8211; Authorized: <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-200"><ix:nonFraction unitRef="shares" contextRef="c-8" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="3" id="f-201">300,000</ix:nonFraction></ix:nonFraction> shares in 2023 and 2022, respectively, issued and outstanding: <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-202"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-203">171,599</ix:nonFraction></ix:nonFraction> and <ix:nonFraction unitRef="shares" contextRef="c-8" decimals="-3" name="us-gaap:CommonStockSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-204"><ix:nonFraction unitRef="shares" contextRef="c-8" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-205">172,631</ix:nonFraction></ix:nonFraction> shares in 2023 and 2022, respectively</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="f-206">343</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CommonStockValueOutstanding" scale="3" id="f-207">345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Additional paid-in capital</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-208">1,037,202</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AdditionalPaidInCapitalCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-209">979,167</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Retained earnings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-210">512,543</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:RetainedEarningsAccumulatedDeficit" format="ixt:num-dot-decimal" scale="3" id="f-211">528,179</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accumulated other comprehensive loss, net of tax</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-212">45,336</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" sign="-" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-213">69,297</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total shareholders&#8217; equity</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-214">1,504,752</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-215">1,438,394</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 30.25pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Total liabilities and shareholders' equity</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-216">2,017,812</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:LiabilitiesAndStockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-217">1,958,140</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">38</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_82"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF CASH FLOWS</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:66.202%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.310%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.310%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.312%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from operating activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-218">113,234</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-219">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-220">279,881</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Adjustments to reconcile net income to net cash provided by operating activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-221">54,768</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-222">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockOptionPlanExpense" format="ixt:num-dot-decimal" scale="3" id="f-223">43,774</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Depreciation of property, plant, and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-224">17,270</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-225">16,347</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:Depreciation" format="ixt:num-dot-decimal" scale="3" id="f-226">16,616</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Loss (gain) on disposal of property, plant, and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span id="ib5345c5fbffb4990b9ea721c619b20dc_9-1-1-1-155622"></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-227">229</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-228">19</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfPropertyPlantEquipment" scale="3" id="f-229">33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of intangible assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-230">4,610</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-231">3,274</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AmortizationOfIntangibleAssets" format="ixt:num-dot-decimal" scale="3" id="f-232">3,667</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Non-cash impact of charges related to fire (Note 22)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-233">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:num-dot-decimal" scale="3" id="f-234">46,372</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:NonCashLossFromCatastrophes" format="ixt:fixed-zero" scale="3" id="f-235">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Excess and obsolete inventory charges</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-236">3,775</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-237">3,084</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="3" id="f-238">2,573</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Fair value adjustment on acquired inventories (Note 21)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:num-dot-decimal" scale="3" id="f-239">2,829</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:fixed-zero" scale="3" id="f-240">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:FairValueAdjustmentOnAcquiredInventories" format="ixt:fixed-zero" scale="3" id="f-241">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Amortization of discounts or premiums on investments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="f-242">1,745</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="f-243">4,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments" format="ixt:num-dot-decimal" scale="3" id="f-244">4,887</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Realized (gain) loss on sale of investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-245">1,954</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="f-246">182</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:GainLossOnSaleOfInvestments" scale="3" id="f-247">236</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Change in deferred income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-248">19,779</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-249">27,338</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInDeferredIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-250">3,118</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Changes in operating assets and liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-251">23,346</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-252">3,454</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsReceivable" format="ixt:num-dot-decimal" scale="3" id="f-253">4,503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Unbilled revenue</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" scale="3" id="f-254">255</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" format="ixt:num-dot-decimal" scale="3" id="f-255">1,806</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerAsset" format="ixt:num-dot-decimal" scale="3" id="f-256">1,637</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-257">22,591</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-258">48,934</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInInventories" format="ixt:num-dot-decimal" scale="3" id="f-259">54,920</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-260">2,469</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-261">6,998</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" format="ixt:num-dot-decimal" scale="3" id="f-262">32,342</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-263">13,744</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-264">17,277</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-265">27,828</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-266">35,309</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-267">2,056</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInAccruedLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-268">16,861</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Accrued income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="f-269">16,745</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" scale="3" id="f-270">444</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable" format="ixt:num-dot-decimal" scale="3" id="f-271">6,401</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Deferred revenue and customer deposits</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-272">9,122</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-273">4,886</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncreaseDecreaseInContractWithCustomerLiability" format="ixt:num-dot-decimal" scale="3" id="f-274">14,417</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-275">4,232</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-276">12,081</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet" format="ixt:num-dot-decimal" scale="3" id="f-277">3,411</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by operating activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-278">112,916</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-279">243,406</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetCashProvidedByUsedInOperatingActivities" format="ixt:num-dot-decimal" scale="3" id="f-280">314,065</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from investing activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Purchases of investments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-281">184,056</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-282">233,720</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquireInvestments" format="ixt:num-dot-decimal" scale="3" id="f-283">668,053</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Maturities and sales of investments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-284">496,462</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-285">253,983</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments" format="ixt:num-dot-decimal" scale="3" id="f-286">430,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Purchases of property, plant, and equipment</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-287">23,077</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-288">19,667</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquirePropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-289">15,455</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net payments related to business acquisitions</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="f-290">257,056</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="3" id="f-291">5,050</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:fixed-zero" scale="3" id="f-292">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash provided by (used in) investing activities</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-293">32,273</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-294">4,454</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInInvestingActivities" format="ixt:num-dot-decimal" scale="3" id="f-295">252,539</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash flows from financing activities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net payments from issuance of common stock under stock plans</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="f-296">3,268</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="f-297">9,861</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" format="ixt:num-dot-decimal" scale="3" id="f-298">63,292</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-299">79,794</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-300">204,314</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsForRepurchaseOfCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-301">161,652</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-302">49,079</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-303">45,921</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:PaymentsOfDividendsCommonStock" format="ixt:num-dot-decimal" scale="3" id="f-304">43,263</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net cash used in financing activities</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-305">125,605</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-306">240,374</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:NetCashProvidedByUsedInFinancingActivities" format="ixt:num-dot-decimal" scale="3" id="f-307">141,623</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Effect of foreign exchange rate changes on cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-308">1,697</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-309">3,365</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-310">2,815</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net change in cash and cash equivalents</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-311">21,281</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-312">4,787</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" format="ixt:num-dot-decimal" scale="3" id="f-313">82,912</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents at beginning of year</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-314">181,374</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-315">186,161</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-316">269,073</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Cash and cash equivalents at end of year</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-317">202,655</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-318">181,374</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-319">186,161</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">39</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_85"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Content</a></span></div></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; CONSOLIDATED STATEMENTS OF SHAREHOLDERS&#8217; EQUITY</span></div><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</span></div><div style="margin-top:5pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.593%"><tr><td style="width:1.0%"/><td style="width:48.186%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:4.278%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:5.925%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.254%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:6.035%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.767%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.348%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.567%"/><td style="width:0.1%"/></tr><tr style="height:27pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Common Stock</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Additional<br/>Paid-in<br/>Capital</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Retained<br/>Earnings</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Accumulated<br/>Other<br/>Comprehensive<br/>Loss</span></td><td colspan="3" rowspan="2" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Total<br/>Shareholders&#8217;<br/>Equity</span></td></tr><tr style="height:12pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(In thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Shares</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Par&#160;Value</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><ix:footnote id="fn-1" footnoteRole="http://www.xbrl.org/2003/role/footnote"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-11" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-320">175,790</ix:nonFraction>&#160;</span></ix:footnote></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-11" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-321">352</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-12" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-322">807,739</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-13" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-323">487,912</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-14" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-324">33,801</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-325">1,262,202</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-15" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-326">1,703</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-327">3</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-328">63,289</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-329">63,292</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-15" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-330">2,012</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-15" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-331">4</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-332">161,648</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-333">161,652</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-16" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-334">43,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-335">43,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.245 per common share)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-336">43,263</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-337">43,263</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-17" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-338">279,881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-339">279,881</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($2,206)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-340">7,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-341">7,152</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-342">236</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-343">236</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-18" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-344">6,753</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-345">6,753</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-19" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-346">175,481</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-19" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-347">351</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-20" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-348">914,802</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-21" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-349">562,882</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-22" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-350">47,942</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-351">1,430,093</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-23" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-352">514</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-353">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-354">9,860</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-355">9,861</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-23" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-356">3,364</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-23" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-357">7</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-358">204,307</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-359">204,314</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-24" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-360">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-361">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.265 per common share)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-362">45,921</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-363">45,921</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-25" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-364">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-365">215,525</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of ($5,943)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-366">17,152</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-367">17,152</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-368">182</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" scale="3" id="f-369">182</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-26" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-370">4,385</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-371">4,385</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-27" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-372">172,631</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-27" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-373">345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-28" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-374">979,167</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-29" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-375">528,179</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-30" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-376">69,297</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-377">1,438,394</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net issuance of common stock under stock plans</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-31" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-378">691</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" scale="3" id="f-379">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-380">3,267</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised" format="ixt:num-dot-decimal" scale="3" id="f-381">3,268</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Repurchase of common stock</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-31" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="3" id="f-382">1,723</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-31" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" scale="3" id="f-383">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-384">79,791</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="3" id="f-385">79,794</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-32" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-386">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" format="ixt:num-dot-decimal" scale="3" id="f-387">54,768</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Payment of dividends ($0.286 per common share)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-388">49,079</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DividendsCommonStockCash" format="ixt:num-dot-decimal" scale="3" id="f-389">49,079</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net income</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-33" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-390">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:NetIncomeLoss" format="ixt:num-dot-decimal" scale="3" id="f-391">113,234</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Net unrealized gain (loss) on available-for-sale investments, net of tax of $4,389</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-392">10,507</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-393">10,507</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-394">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-395">1,954</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">Foreign currency translation adjustment, net of tax of $0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-6" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-396">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="3" id="f-397">11,500</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-34" decimals="-3" name="us-gaap:CommonStockSharesIssued" format="ixt:num-dot-decimal" scale="3" id="f-398">171,599</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-34" decimals="-3" name="us-gaap:StockholdersEquity" scale="3" id="f-399">343</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-35" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-400">1,037,202</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-36" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-401">512,543</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-37" decimals="-3" sign="-" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-402">45,336</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:StockholdersEquity" format="ixt:num-dot-decimal" scale="3" id="f-403">1,504,752</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/></tr></table></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span><br/></span></div><div style="text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying notes are an integral part of these consolidated financial statements.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">40</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_91"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div><span><br/></span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_94"></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 1:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:SignificantAccountingPoliciesTextBlock" id="f-410" continuedAt="f-410-1" escape="true">Summary of Significant Accounting Policies</ix:nonNumeric></span></div><ix:continuation id="f-410-1" continuedAt="f-410-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><ix:nonNumeric contextRef="c-1" name="cgnx:NatureOfOperationsPolicyTextBlock" id="f-411" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:UseOfEstimates" id="f-412" escape="true"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition, income taxes, and business combinations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ConsolidationPolicyTextBlock" id="f-413" escape="true"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" id="f-414" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueOfFinancialInstrumentsPolicy" id="f-415" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentPolicyTextBlock" id="f-417" continuedAt="f-417-1" escape="true"><ix:nonNumeric contextRef="c-1" name="us-gaap:CashAndCashEquivalentsPolicyTextBlock" id="f-416" continuedAt="f-416-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to <ix:nonNumeric contextRef="c-1" name="cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" format="ixt-sec:durwordsen" id="f-418">five years</ix:nonNumeric>. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The </span></div></ix:nonNumeric></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">41</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-2" continuedAt="f-410-3"><ix:continuation id="f-417-1"><ix:continuation id="f-416-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div></ix:continuation></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:TradeAndOtherAccountsReceivablePolicy" id="f-419" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryPolicyTextBlock" id="f-420" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentPolicyTextBlock" id="f-421" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are <ix:nonNumeric contextRef="c-38" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:duryear" id="f-422">39</ix:nonNumeric> years, building improvements&#8217; useful lives are <ix:nonNumeric contextRef="c-39" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="f-423">ten years</ix:nonNumeric>, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-424">two</span> to <ix:nonNumeric contextRef="c-41" name="us-gaap:PropertyPlantAndEquipmentUsefulLife" format="ixt-sec:durwordsen" id="f-425">ten years</ix:nonNumeric>. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">42</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-3" continuedAt="f-410-4"><ix:nonNumeric contextRef="c-1" name="us-gaap:InternalUseSoftwarePolicy" id="f-426" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development, no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeLeasesPolicyTextBlock" id="f-427" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term, which, through year ended December 31, 2023, was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy" id="f-428" continuedAt="f-428-1" escape="true"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">43</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-4" continuedAt="f-410-5"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-428-1">and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company would proceed to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsFiniteLivedPolicy" id="f-429" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-430">five</span> to <ix:nonNumeric contextRef="c-43" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-431">fifteen years</ix:nonNumeric>, completed technologies from <span style="-sec-ix-hidden:f-432">five</span> to <ix:nonNumeric contextRef="c-45" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-433">nine years</ix:nonNumeric>, non-compete agreements from <span style="-sec-ix-hidden:f-434">three</span> to <ix:nonNumeric contextRef="c-47" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-435">seven years</ix:nonNumeric>, and trademarks for <ix:nonNumeric contextRef="c-48" name="us-gaap:FiniteLivedIntangibleAssetUsefulLife" format="ixt-sec:durwordsen" id="f-436">three years</ix:nonNumeric>. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:StandardProductWarrantyPolicy" id="f-437" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-438">one</span> to <ix:nonNumeric contextRef="c-50" name="cgnx:ProductWarrantyPeriod" format="ixt-sec:durwordsen" id="f-439">three years</ix:nonNumeric> from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesPolicyTextBlock" id="f-440" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:DerivativesPolicyTextBlock" id="f-441" continuedAt="f-441-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-441-1">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueRecognitionPolicyTextBlock" id="f-442" continuedAt="f-442-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">44</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-442-1" continuedAt="f-442-2"><ix:continuation id="f-410-5" continuedAt="f-410-6"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the </span></div></ix:continuation></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">45</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-6" continuedAt="f-410-7"><ix:continuation id="f-442-2"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from revenue recognition criteria, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due <ix:nonNumeric contextRef="c-49" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-443">30</ix:nonNumeric> to <ix:nonNumeric contextRef="c-50" name="cgnx:RevenuePaymentTerms" format="ixt-sec:durday" id="f-444">90</ix:nonNumeric> days from billing. The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" id="f-445" continuedAt="f-445-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-445-1">Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:AdvertisingCostsPolicyTextBlock" id="f-446" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-447">1,190,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-448">1,257,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AdvertisingExpense" format="ixt:num-dot-decimal" scale="0" id="f-449">1,965,000</ix:nonFraction> in 2021.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy" id="f-450" continuedAt="f-450-1" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">46</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-7" continuedAt="f-410-8"><ix:continuation id="f-450-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information, if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div></ix:continuation><ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxPolicyTextBlock" id="f-451" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Only the portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are not classified as current. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerSharePolicyTextBlock" id="f-452" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ComprehensiveIncomePolicyPolicyTextBlock" id="f-453" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-454">36,550,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-455">48,050,000</ix:nonFraction>, as of December 31, 2023 and December 31, 2022, respectively; net unrealized losses on available-for-sale investments of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-456">7,515,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-457">19,976,000</ix:nonFraction> as of December 31, 2023 and December 31, 2022, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax" format="ixt:num-dot-decimal" scale="0" id="f-458">1,271,000</ix:nonFraction> at each year end.</span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">47</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-410-8" continuedAt="f-410-9"><ix:nonNumeric contextRef="c-1" name="cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock" id="f-459" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationsPolicy" id="f-460" continuedAt="f-460-1" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-460-1">The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.</ix:continuation> </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" id="f-461" continuedAt="f-461-1" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restructuring Charges</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks </span></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">48</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-461-1" continuedAt="f-461-2"><ix:continuation id="f-410-9" continuedAt="f-410-10"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</span></div></ix:continuation></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-461-2"><ix:continuation id="f-410-10">Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</ix:continuation></ix:continuation> </span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_100"></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 2: <ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock" id="f-477" continuedAt="f-477-1" escape="true"><ix:nonNumeric contextRef="c-1" name="us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" id="f-476" continuedAt="f-476-1" escape="true">New Pronouncements</ix:nonNumeric></ix:nonNumeric></span></div><ix:continuation id="f-477-1"><ix:continuation id="f-476-1"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, "Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, "Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023. The amendments in the ASU should be applied on a retrospective basis. We did not early adopt ASU 2023-07. Management does not expect ASU 2023-07 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</span></div></ix:continuation></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">49</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_106"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 3:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:FairValueDisclosuresTextBlock" id="f-478" continuedAt="f-478-1" escape="true">Fair Value Measurements</ix:nonNumeric></span></div><ix:continuation id="f-478-1" continuedAt="f-478-2"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" id="f-479" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:53.578%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.524%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-480">19,413</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-481">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:MoneyMarketInstrumentsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-482">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-483">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-484">308,816</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:CorporateBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-485">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-486">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-487">43,523</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:TreasuryBillsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-488">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-489">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-490">19,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:AssetBackedSecuritiesFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-491">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-492">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:num-dot-decimal" scale="3" id="f-493">1,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="cgnx:SovereignBondsFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-494">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="0" id="f-495">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" scale="3" id="f-496">151</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="us-gaap:ForeignCurrencyContractAssetFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-497">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-56" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-498">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-57" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" scale="3" id="f-499">106</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-58" decimals="-3" name="us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure" format="ixt:fixed-zero" scale="3" id="f-500">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-478-2">Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2023, 2022, or 2021.</ix:continuation> </span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">50</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_112"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 4:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" id="f-501" continuedAt="f-501-1" escape="true">Cash, Cash Equivalents, and Investments</ix:nonNumeric></span></div><ix:continuation id="f-501-1" continuedAt="f-501-2"><ix:nonNumeric contextRef="c-1" name="cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" id="f-502" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.274%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.422%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-503">183,242</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Cash" format="ixt:num-dot-decimal" scale="3" id="f-504">180,959</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-505">19,413</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:MoneyMarketFundsAtCarryingValue" scale="3" id="f-506">415</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-507">202,655</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:CashAndCashEquivalentsAtCarryingValue" format="ixt:num-dot-decimal" scale="3" id="f-508">181,374</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-509">124,851</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-510">164,055</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-511">3,551</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-512">26,890</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="f-513">990</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:fixed-zero" scale="3" id="f-514">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-65" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:fixed-zero" scale="3" id="f-515">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-516">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:fixed-zero" scale="3" id="f-517">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-518">11,332</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-69" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:fixed-zero" scale="3" id="f-519">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" scale="3" id="f-520">624</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-521">129,392</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-522">218,759</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-523">183,965</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-524">374,440</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-67" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-525">43,523</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-68" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-526">44,214</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-527">15,763</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-528">33,539</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" scale="3" id="f-529">979</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-530">1,924</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-531">244,230</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:LongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-532">454,117</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-533">576,277</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:CashCashEquivalentsShortTermAndLongTermInvestments" format="ixt:num-dot-decimal" scale="3" id="f-534">854,250</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s cash balance included foreign bank balances totaling $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="f-535">173,614,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DueFromForeignBanks" format="ixt:num-dot-decimal" scale="0" id="f-536">160,611,000</ix:nonFraction> as of December&#160;31, 2023 and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; sovereign bonds consist of direct debt issued by foreign governments; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury notes consist of debt securities issued by the U.S. government; and municipal bonds consist of debt securities issued by state and local government entities. All of the Company's securities as of December 31, 2023 and 2022 were denominated in U.S. Dollars.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="f-537">3,169,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InterestReceivable" format="ixt:num-dot-decimal" scale="0" id="f-538">3,620,000</ix:nonFraction> as of December 31, 2023 and 2022, respectively.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" id="f-539" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:36.583%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.005%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-540">128,150</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-541">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-542">3,299</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-71" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-543">124,851</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-544">3,637</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-545">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-546">86</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-72" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-547">3,551</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-548">1,012</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-549">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-550">22</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-73" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-551">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-552">189,326</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-553">506</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-554">5,867</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-74" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-555">183,965</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-556">43,654</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-557">82</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-558">213</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-75" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-559">43,523</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-560">16,773</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-561">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-562">1,010</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-76" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-563">15,763</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-564">1,037</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-565">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-566">58</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-77" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-567">979</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-568">383,589</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-569">588</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-570">10,555</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-571">373,622</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">51</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-501-2" continuedAt="f-501-3"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2022 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:36.583%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.002%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.005%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-572">167,558</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-573">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-574">3,503</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-78" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-575">164,055</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-576">27,607</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-577">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-578">717</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-79" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-579">26,890</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-580">16,143</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-581">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-582">285</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-80" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-583">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-584">11,602</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-585">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-586">270</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-81" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-587">11,332</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" scale="3" id="f-588">635</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-589">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-590">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-82" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" scale="3" id="f-591">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-592">394,576</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-593">561</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-594">20,697</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-83" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-595">374,440</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-596">44,333</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-597">79</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-598">198</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-84" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-599">44,214</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-600">35,144</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-601">103</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-602">1,708</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-85" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-603">33,539</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-604">2,095</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" format="ixt:fixed-zero" scale="3" id="f-605">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" scale="3" id="f-606">171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-86" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-607">1,924</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis" format="ixt:num-dot-decimal" scale="3" id="f-608">699,693</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" scale="3" id="f-609">743</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" format="ixt:num-dot-decimal" scale="3" id="f-610">27,560</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-611">672,876</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" id="f-612" escape="true"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:34.289%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.328%"/><td style="width:0.1%"/></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-613">30,770</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-614">359</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-615">226,643</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-616">8,807</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-617">257,413</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-618">9,166</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-619">20,725</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-620">153</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-621">2,441</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-622">60</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-623">23,166</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-624">213</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-625">17,062</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-626">1,049</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-627">2,252</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-628">47</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-629">19,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-630">1,096</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:fixed-zero" scale="3" id="f-631">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="f-632">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-633">1,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-634">80</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-635">1,968</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-636">80</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-637">68,557</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-638">1,561</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-639">233,304</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-640">8,994</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-641">301,861</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-642">10,555</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2022 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:34.289%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.885%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.032%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.328%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-643">285,087</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-644">9,591</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-645">187,153</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-646">14,609</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-647">472,240</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-60" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-648">24,200</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-649">47,582</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-650">2,299</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-651">2,495</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-652">126</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-653">50,077</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-62" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-654">2,425</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-655">32,614</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-656">465</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="f-657">102</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-658">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-659">32,716</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-88" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-660">468</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-661">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-662">285</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:fixed-zero" scale="3" id="f-663">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="f-664">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-665">15,858</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-66" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-666">285</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="f-667">967</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-668">67</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" scale="3" id="f-669">957</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" scale="3" id="f-670">104</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-671">1,924</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-64" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-672">171</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" scale="3" id="f-673">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" scale="3" id="f-674">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:fixed-zero" scale="3" id="f-675">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:fixed-zero" scale="3" id="f-676">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" scale="3" id="f-677">624</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-70" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" scale="3" id="f-678">11</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" format="ixt:num-dot-decimal" scale="3" id="f-679">382,732</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-680">12,718</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" format="ixt:num-dot-decimal" scale="3" id="f-681">190,707</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-682">14,842</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition" format="ixt:num-dot-decimal" scale="3" id="f-683">573,439</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" format="ixt:num-dot-decimal" scale="3" id="f-684">27,560</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, <ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-685"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-686"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" format="ixt-sec:numwordsen" id="f-687">no</ix:nonFraction></ix:nonFraction></ix:nonFraction> allowance for credit losses on debt securities was recorded as of December 31, 2023, 2022, or 2021. Management currently intends to hold these securities to full value recovery at maturity.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">52</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-501-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:RealizedGainLossOnInvestmentsTableTextBlock" id="f-688" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:52.701%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.823%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.519%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.524%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-689">111</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-690">133</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedGain" scale="3" id="f-691">246</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" format="ixt:num-dot-decimal" scale="3" id="f-692">2,065</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" scale="3" id="f-693">315</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss" scale="3" id="f-694">10</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:RealizedInvestmentGainsLosses" format="ixt:num-dot-decimal" scale="3" id="f-695">1,954</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:RealizedInvestmentGainsLosses" scale="3" id="f-696">182</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RealizedInvestmentGainsLosses" scale="3" id="f-697">236</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock" id="f-698" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:25.508%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.157%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.864%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.256%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:7.818%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:9.581%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-699">124,851</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-700">62,596</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-701">44,906</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-702">44,896</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-703">31,567</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-704">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-59" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-705">308,816</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:fixed-zero" scale="3" id="f-706">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-707">2,441</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-708">6,115</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-709">22,270</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-710">12,697</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-711">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-87" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-712">43,523</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-713">3,551</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-714">5,872</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-715">3,448</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-716">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-717">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-718">6,443</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-61" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-719">19,314</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" scale="3" id="f-720">990</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" scale="3" id="f-721">979</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-722">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-723">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:fixed-zero" scale="3" id="f-724">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"><ix:nonFraction unitRef="usd" contextRef="c-63" xsi:nil="true" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" id="f-725"></ix:nonFraction></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-63" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-726">1,969</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" format="ixt:num-dot-decimal" scale="3" id="f-727">129,392</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-728">71,888</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-729">54,469</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-730">67,166</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-731">44,264</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" format="ixt:num-dot-decimal" scale="3" id="f-732">6,443</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AvailableForSaleSecuritiesDebtSecurities" format="ixt:num-dot-decimal" scale="3" id="f-733">373,622</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_118"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 5:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:InventoryDisclosureTextBlock" id="f-734" continuedAt="f-734-1" escape="true">Inventories</ix:nonNumeric></span></div><ix:continuation id="f-734-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfInventoryCurrentTableTextBlock" id="f-735" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:70.935%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-736">93,201</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InventoryRawMaterialsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-737">71,720</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-738">5,747</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InventoryWorkInProcessNetOfReserves" scale="3" id="f-739">906</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-740">63,337</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InventoryFinishedGoodsNetOfReserves" format="ixt:num-dot-decimal" scale="3" id="f-741">49,854</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-742">162,285</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:InventoryNet" format="ixt:num-dot-decimal" scale="3" id="f-743">122,480</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company recorded inventories with a fair value of $<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" format="ixt:num-dot-decimal" scale="0" id="f-744">22,788,000</ix:nonFraction> on the acquisition date.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded provisions for excess and obsolete inventories of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="0" id="f-745">3,775,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ExcessAndObsoleteInventoryCharges" format="ixt:num-dot-decimal" scale="0" id="f-746">3,084,000</ix:nonFraction> in 2023 and 2022, respectively, which reduced the carrying value of the inventories to their net realizable value.</span></div></ix:continuation><div><span><br/></span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_121"></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 6:&#160;Property, Plant, and Equipment</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:PropertyPlantAndEquipmentTextBlock" id="f-747" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:70.935%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.516%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.517%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Land</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-90" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-748">8,805</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-91" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-749">3,951</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Buildings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-38" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-750">34,117</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-92" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-751">24,533</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Building improvements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-39" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-752">44,992</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-93" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-753">45,003</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-94" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-754">19,611</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-95" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-755">14,491</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer hardware and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-96" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-756">55,154</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-97" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-757">53,663</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Manufacturing test equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-98" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-758">36,182</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-99" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-759">27,176</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-100" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-760">7,361</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-101" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-761">6,378</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-762">206,222</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentGross" format="ixt:num-dot-decimal" scale="3" id="f-763">175,195</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-764">100,373</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-765">95,481</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-766">105,849</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentNet" format="ixt:num-dot-decimal" scale="3" id="f-767">79,714</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">53</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company recorded property, plant and equipment with a fair value of $<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-768">19,876,000</ix:nonFraction> on the acquisition date.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company disposed of property, plant, and equipment with a cost basis of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="f-769">12,421,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="f-770">12,184,000</ix:nonFraction> in 2023, net of proceeds of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="0" id="f-771">8,000</ix:nonFraction>, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-772">229,000</ix:nonFraction>. The Company disposed of property, plant, and equipment with a cost basis of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:PropertyPlantAndEquipmentDisposals" format="ixt:num-dot-decimal" scale="0" id="f-773">17,358,000</ix:nonFraction> and accumulated depreciation of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" format="ixt:num-dot-decimal" scale="0" id="f-774">16,604,000</ix:nonFraction> in 2022, resulting in a loss of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-775">754,000</ix:nonFraction>. Of this loss, $<ix:nonFraction unitRef="usd" contextRef="c-102" decimals="-3" sign="-" name="us-gaap:GainLossOnDispositionOfAssets1" format="ixt:num-dot-decimal" scale="0" id="f-776">735,000</ix:nonFraction> related to production equipment destroyed as a result of the fire at the Company's primary contract manufacturer's plant in Indonesia on June 7, 2022 and is included in "Non-cash impact of charges related to fire (Note 22)" on the Consolidated Statements of Cash Flows. </span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_127"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 7:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeasesTextBlock" id="f-777" continuedAt="f-777-1" escape="true">Leases</ix:nonNumeric></span></div><ix:continuation id="f-777-1" continuedAt="f-777-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its operations. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2023, there were no options to terminate and twenty-eight options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. Lease costs associated with variable payments were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:VariableLeasePayment" format="ixt:num-dot-decimal" scale="0" id="f-778">1,175,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:VariableLeasePayment" format="ixt:num-dot-decimal" scale="0" id="f-779">1,009,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:VariableLeasePayment" format="ixt:num-dot-decimal" scale="0" id="f-780">1,253,000</ix:nonFraction> in 2021. There were no restrictions or covenants for the outstanding leases as of December 31, 2023. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total operating lease expense was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-781">11,598,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-782">8,939,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeaseExpense" format="ixt:num-dot-decimal" scale="0" id="f-783">8,180,000</ix:nonFraction> in 2021. The total operating lease cash payments were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-784">10,148,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-785">8,548,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:OperatingLeasePayments" format="ixt:num-dot-decimal" scale="0" id="f-786">8,225,000</ix:nonFraction> in 2021. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-787">427,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-788">144,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized" format="ixt:num-dot-decimal" scale="0" id="f-789">154,000</ix:nonFraction> in 2021.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock" id="f-790" escape="true"><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:82.648%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:2.728%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.224%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-791">13,612</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-792">11,836</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree" format="ixt:num-dot-decimal" scale="3" id="f-793">9,746</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour" format="ixt:num-dot-decimal" scale="3" id="f-794">8,851</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive" format="ixt:num-dot-decimal" scale="3" id="f-795">8,395</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="f-796">53,257</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="3" id="f-797">105,697</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted present value of the future lease cash payments resulted in a lease liability of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:OperatingLeaseLiabilityDiscountedPresentValue" format="ixt:num-dot-decimal" scale="0" id="f-798">78,601,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-799">39,752,000</ix:nonFraction> as of December 31, 2023 and 2022, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company assumed multiple lease agreements, the most significant of which is for a <ix:nonFraction unitRef="sqft" contextRef="c-103" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-800">22,000</ix:nonFraction> square-foot building in Vietnam that serves as a production plant for optical components.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2023, the Company entered into a lease for a <ix:nonFraction unitRef="sqft" contextRef="c-104" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-801">115,000</ix:nonFraction> square-foot building in Singapore to serve as a new distribution center for customers in Asia. The lease contains <ix:nonFraction unitRef="lease_component" contextRef="c-104" decimals="INF" name="cgnx:LesseeOperatingLeaseComponents" format="ixt-sec:numwordsen" id="f-802">two</ix:nonFraction> components, including an <ix:nonFraction unitRef="sqft" contextRef="c-105" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-803">88,000</ix:nonFraction> square-foot premises with a term of <ix:nonNumeric contextRef="c-105" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="f-804">ten years, six months</ix:nonNumeric>. The Company has the right and option to extend the term of this lease component for an additional period of <ix:nonNumeric contextRef="c-106" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="f-805">five years</ix:nonNumeric>, commencing upon the expiration of the original term. This lease component commenced during the second quarter of 2023, and therefore the Company recorded approximately $<ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-806"><ix:nonFraction unitRef="usd" contextRef="c-105" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-807">29,639,000</ix:nonFraction></ix:nonFraction>, which reflects an estimated extension period of five years, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date. The second component of this Singapore lease is for a <ix:nonFraction unitRef="sqft" contextRef="c-107" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-808">27,000</ix:nonFraction> square-foot premises with a term of <ix:nonNumeric contextRef="c-107" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="f-809">eight years</ix:nonNumeric>. The commencement date for this lease component is in the fourth quarter of 2025, and therefore it was not yet recorded on the Consolidated Balance Sheets, nor did it create any significant rights and obligations as of December 31, 2023. The Company has the right and option to extend the term of this lease component for an additional period of <ix:nonNumeric contextRef="c-108" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="f-810">five years</ix:nonNumeric>, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $<ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue" format="ixt:num-dot-decimal" scale="0" id="f-811">13,231,000</ix:nonFraction>, <ix:nonFraction unitRef="usd" contextRef="c-109" decimals="-3" name="us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" format="ixt-sec:numwordsen" id="f-812">none</ix:nonFraction> of which was payable in 2023 and which reflects an estimated extension </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">54</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-777-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">period of <ix:nonNumeric contextRef="c-108" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="f-813">five years</ix:nonNumeric>. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2021, the Company entered into a lease for a <ix:nonFraction unitRef="sqft" contextRef="c-110" decimals="-3" name="us-gaap:NetRentableArea" format="ixt:num-dot-decimal" scale="0" id="f-814">65,000</ix:nonFraction> square-foot building in Southborough, Massachusetts for a term of <ix:nonNumeric contextRef="c-110" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="f-815">ten years</ix:nonNumeric> to serve as a new distribution center for customers in the Americas. The Company has the right and option to extend the term of this lease for an additional period of <ix:nonNumeric contextRef="c-111" name="cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract" format="ixt-sec:durwordsen" id="f-816">five years</ix:nonNumeric>, commencing upon the expiration of the original <ix:nonNumeric contextRef="c-110" name="us-gaap:LesseeOperatingLeaseTermOfContract" format="ixt-sec:durwordsen" id="f-817">ten-year</ix:nonNumeric> term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $<ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-3" name="us-gaap:OperatingLeaseRightOfUseAsset" format="ixt:num-dot-decimal" scale="0" id="f-818"><ix:nonFraction unitRef="usd" contextRef="c-110" decimals="-3" name="us-gaap:OperatingLeaseLiability" format="ixt:num-dot-decimal" scale="0" id="f-819">9,271,000</ix:nonFraction></ix:nonFraction>, which does not reflect an estimated extension period, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average discount rate was <ix:nonFraction unitRef="number" contextRef="c-7" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-820">5.7</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-8" decimals="3" name="us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent" scale="-2" id="f-821">3.3</ix:nonFraction>% for the leases outstanding as of December 31, 2023 and December 31, 2022, respectively. The weighted-average remaining lease term was <ix:nonNumeric contextRef="c-7" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-822">10.5</ix:nonNumeric> years and <ix:nonNumeric contextRef="c-8" name="us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1" format="ixt-sec:duryear" id="f-823">7.8</ix:nonNumeric> years for the leases outstanding as of December 31, 2023 and 2022, respectively.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_133"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 8:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:GoodwillDisclosureTextBlock" id="f-824" continuedAt="f-824-1" escape="true">Goodwill</ix:nonNumeric></span></div><ix:continuation id="f-824-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfGoodwillTextBlock" id="f-825" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:83.380%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.688%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-826">241,713</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-112" decimals="-3" name="us-gaap:GoodwillOtherIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-827">2,359</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="f-828">1,442</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-829">242,630</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-113" decimals="-3" name="us-gaap:GoodwillOtherIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-830">145,047</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:GoodwillForeignCurrencyTranslationGainLoss" format="ixt:num-dot-decimal" scale="3" id="f-831">5,504</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-832">393,181</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2023 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2023, 2022, or 2021.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_136"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 9:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:IntangibleAssetsDisclosureTextBlock" id="f-833" continuedAt="f-833-1" escape="true">Intangible Assets</ix:nonNumeric></span></div><ix:continuation id="f-833-1" continuedAt="f-833-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" id="f-834" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:51.176%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.320%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-114" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-835">75,965</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-114" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-836">5,352</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-114" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-837">70,613</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-115" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-838">62,123</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-115" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-839">20,745</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-115" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-840">41,378</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-48" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-841">903</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-48" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-842">50</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-48" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-843">853</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-844">340</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-116" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-845">232</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-116" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-846">108</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-847">139,331</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-848">26,379</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-849">112,952</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-850">28,017</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-851">17,744</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-117" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-852">10,273</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-853">5,838</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-854">3,860</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-118" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-855">1,978</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" scale="3" id="f-856">340</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" scale="3" id="f-857">177</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-119" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" scale="3" id="f-858">163</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsGross" format="ixt:num-dot-decimal" scale="3" id="f-859">34,195</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" sign="-" name="us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization" format="ixt:num-dot-decimal" scale="3" id="f-860">21,781</ix:nonFraction>)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-861">12,414</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company acquired customer relationships valued at $<ix:nonFraction unitRef="usd" contextRef="c-120" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="0" id="f-862">66,900,000</ix:nonFraction> with an estimated useful life of <ix:nonNumeric contextRef="c-121" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" format="ixt-sec:durwordsen" id="f-863">fifteen years</ix:nonNumeric>, completed technologies valued at $<ix:nonFraction unitRef="usd" contextRef="c-122" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="0" id="f-864">32,300,000</ix:nonFraction> with an estimated useful life of <ix:nonNumeric contextRef="c-123" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" format="ixt-sec:durwordsen" id="f-865">nine years</ix:nonNumeric>, and trademarks valued at $<ix:nonFraction unitRef="usd" contextRef="c-124" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="0" id="f-866">850,000</ix:nonFraction> with an estimated useful life of <ix:nonNumeric contextRef="c-125" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" format="ixt-sec:durwordsen" id="f-867">three years</ix:nonNumeric>.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">55</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-833-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022, (refer to Note 21), the Company acquired completed technologies valued at $<ix:nonFraction unitRef="usd" contextRef="c-126" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="0" id="f-868">3,800,000</ix:nonFraction> with an estimated useful life of <ix:nonNumeric contextRef="c-127" name="us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" format="ixt-sec:duryear" id="f-869">7</ix:nonNumeric> years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2022, the Company retired approximately $<ix:nonFraction unitRef="usd" contextRef="c-128" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" format="ixt:num-dot-decimal" scale="0" id="f-870">43,280,000</ix:nonFraction> of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company did not record impairment charges related to intangible assets in 2023, 2022 or 2021.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" id="f-871" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:81.623%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.445%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" format="ixt:num-dot-decimal" scale="3" id="f-872">11,389</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" format="ixt:num-dot-decimal" scale="3" id="f-873">11,066</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" format="ixt:num-dot-decimal" scale="3" id="f-874">10,711</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" format="ixt:num-dot-decimal" scale="3" id="f-875">9,737</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" format="ixt:num-dot-decimal" scale="3" id="f-876">9,008</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" format="ixt:num-dot-decimal" scale="3" id="f-877">61,041</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:FiniteLivedIntangibleAssetsNet" format="ixt:num-dot-decimal" scale="3" id="f-878">112,952</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_139"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 10:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" id="f-879" continuedAt="f-879-1" escape="true">Accrued Expenses</ix:nonNumeric></span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock" id="f-880" escape="true"><ix:continuation id="f-879-1"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:64.002%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.908%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.057%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="f-881">12,835</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:RetirementAllowance" format="ixt:num-dot-decimal" scale="3" id="f-882">7,191</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-883">10,645</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedBonusesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-884">18,554</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-885">8,774</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedSalariesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-886">8,121</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="f-887">5,827</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedVacationCurrent" format="ixt:num-dot-decimal" scale="3" id="f-888">5,847</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="f-889">4,244</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ProductWarrantyAccrualClassifiedCurrent" format="ixt:num-dot-decimal" scale="3" id="f-890">4,375</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent" format="ixt:fixed-zero" scale="3" id="f-891">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-892">19,282</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-893">30,049</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherAccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-894">29,865</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-895">72,374</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AccruedLiabilitiesCurrent" format="ixt:num-dot-decimal" scale="3" id="f-896">93,235</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments, contingent upon the continued employment of key talent, of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities" format="ixt:num-dot-decimal" scale="0" id="f-897">24,040,000</ix:nonFraction> that was paid fully in October 2023. The deferred payments were recorded as compensation expense over the four-year period.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock" id="f-898" escape="true"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:81.209%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.591%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-899">5,406</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-900">3,256</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-901">3,235</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-902">5,427</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-903">1,876</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-904">2,928</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-905">4,375</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProductWarrantyAccrualWarrantiesIssued" format="ixt:num-dot-decimal" scale="3" id="f-906">2,940</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProductWarrantyAccrualPayments" format="ixt:num-dot-decimal" scale="3" id="f-907">3,078</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" scale="3" id="f-908">7</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ProductWarrantyAccrual" format="ixt:num-dot-decimal" scale="3" id="f-909">4,244</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation></ix:nonNumeric><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">56</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_142"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 11:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:CommitmentsAndContingenciesDisclosureTextBlock" id="f-910" continuedAt="f-910-1" escape="true">Commitments and Contingencies</ix:nonNumeric></span></div><ix:continuation id="f-910-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the Company had outstanding purchase orders totaling $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted" format="ixt:num-dot-decimal" scale="0" id="f-911">61,459,000</ix:nonFraction> to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2023, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-912">10,616,000</ix:nonFraction>, $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-913">5,269,000</ix:nonFraction>, and $<ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:OtherInventoryPurchasedGoods" format="ixt:num-dot-decimal" scale="0" id="f-914">547,000</ix:nonFraction> in 2023, 2022, and 2021, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_148"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 12:&#160;<ix:nonNumeric contextRef="c-1" name="cgnx:IndemnificationProvisionsTextBlock" id="f-915" continuedAt="f-915-1" escape="true">Indemnification Provisions</ix:nonNumeric></span></div><ix:continuation id="f-915-1" continuedAt="f-915-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#8217;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div></ix:continuation><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:continuation id="f-915-2">In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#8217;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#8217;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.</ix:continuation> </span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_151"></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 13:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" id="f-916" continuedAt="f-916-1" escape="true">Derivative Instruments</ix:nonNumeric></span></div><ix:continuation id="f-916-1" continuedAt="f-916-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s foreign currency risk management strategy is principally designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately <ix:nonNumeric contextRef="c-129" name="us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1" format="ixt-sec:durwordsen" id="f-917">three months</ix:nonNumeric> to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">57</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-916-2" continuedAt="f-916-3"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, during 2023, the Company entered into a foreign currency forward contract to exchange U.S. Dollars for &#165;<ix:nonFraction unitRef="jpy" contextRef="c-130" decimals="INF" name="us-gaap:DerivativeNotionalAmount" format="ixt:num-dot-decimal" scale="0" id="f-918">40,000,000,000</ix:nonFraction> to hedge the Japanese Yen purchase price of the acquisition of Moritex Corporation (refer to Note 21). Upon the settlement of this contract, the Company recorded a foreign currency loss of $<ix:nonFraction unitRef="usd" contextRef="c-131" decimals="INF" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="0" id="f-919">8,456,000</ix:nonFraction>, which was recorded in "Foreign currency gain (loss)" on the Consolidated Statements of Operations.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" id="f-920" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:47.291%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.765%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.180%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:11.180%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.354%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="eur" contextRef="c-132" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-921">40,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-132" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-922">44,302</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="eur" contextRef="c-133" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-923">60,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-133" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-924">64,174</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="sgd" contextRef="c-134" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-925">39,700</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-134" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-926">30,136</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="sgd" contextRef="c-135" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-927">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-135" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-928">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="mxn" contextRef="c-136" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-929">145,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-136" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-930">8,505</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="mxn" contextRef="c-137" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-931">185,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-137" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-932">9,480</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="cny" contextRef="c-138" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-933">50,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-138" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-934">7,025</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="cny" contextRef="c-139" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-935">55,000</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-139" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-936">7,619</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="huf" contextRef="c-140" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-937">2,240,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-140" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-938">6,466</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="huf" contextRef="c-141" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-939">1,590,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-141" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-940">4,238</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="gbp" contextRef="c-142" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-941">3,345</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-142" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-942">4,258</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="gbp" contextRef="c-143" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-943">3,445</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-143" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-944">4,161</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="jpy" contextRef="c-144" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-945">600,000</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-144" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-946">4,255</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="jpy" contextRef="c-145" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-947">700,000</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-145" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-948">5,281</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="cad" contextRef="c-146" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-949">1,470</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-146" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-950">1,112</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="cad" contextRef="c-147" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-951">1,730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-147" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-952">1,278</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="chf" contextRef="c-148" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-953">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-148" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:fixed-zero" scale="3" id="f-954">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="chf" contextRef="c-149" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-955">1,120</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-149" decimals="-3" name="us-gaap:DerivativeAssetNotionalAmount" format="ixt:num-dot-decimal" scale="3" id="f-956">1,218</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" id="f-957" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:15.274%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.204%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.788%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.350%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.888%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.788%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.358%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-958">151</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-151" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-959">27</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-150" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-960">106</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-151" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-961">479</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:OffsettingAssetsTableTextBlock" id="f-962" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:18.108%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.562%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.709%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.814%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.562%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.394%"/><td style="width:0.1%"/></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-963"><span style="-sec-ix-hidden:f-964">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-965"><span style="-sec-ix-hidden:f-966">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="f-967">151</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeAsset" scale="3" id="f-968">27</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="f-969">106</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeFairValueOfDerivativeLiability" scale="3" id="f-970">479</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="f-971">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset" format="ixt:fixed-zero" scale="3" id="f-972">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="f-973">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset" format="ixt:fixed-zero" scale="3" id="f-974">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-975">151</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeAssets" scale="3" id="f-976">27</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-977">106</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DerivativeLiabilities" scale="3" id="f-978">479</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">58</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" id="f-979" escape="true"><ix:continuation id="f-916-3"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:21.920%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:22.800%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.762%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.908%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.911%"/><td style="width:0.1%"/></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"/><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-129" decimals="-3" sign="-" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-980">10,023</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-152" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-981">9,823</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-153" decimals="-3" name="us-gaap:DerivativeGainLossOnDerivativeNet" format="ixt:num-dot-decimal" scale="3" id="f-982">4,262</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div style="text-align:justify"><span><br/></span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_154"></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 14: <ix:nonNumeric contextRef="c-1" name="us-gaap:RevenueFromContractWithCustomerTextBlock" id="f-983" continuedAt="f-983-1" escape="true">Revenue Recognition</ix:nonNumeric></span></div><ix:continuation id="f-983-1" continuedAt="f-983-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:DisaggregationOfRevenueTableTextBlock" id="f-984" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:61.216%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.826%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.630%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.632%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-154" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-985">330,415</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-155" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-986">390,573</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-156" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-987">435,220</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-157" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-988">220,665</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-158" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-989">234,643</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-990">247,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-160" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-991">164,115</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-161" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-992">227,447</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-162" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-993">200,135</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-163" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-994">122,352</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-164" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-995">153,427</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-165" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-996">153,999</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-997">837,547</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-998">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-999">1,037,098</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:61.125%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.466%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.824%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.824%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.616%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-166" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1000">734,140</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-167" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1001">848,153</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-168" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1002">889,253</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-169" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1003">103,407</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-170" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1004">157,937</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-171" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1005">147,845</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1006">837,547</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1007">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1008">1,037,098</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Costs to Fulfill a Contract</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="f-1009">13,265,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:CapitalizedContractCostGross" format="ixt:num-dot-decimal" scale="0" id="f-1010">14,578,000</ix:nonFraction> as of December 31, 2023 and 2022, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">59</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-983-2"><ix:nonNumeric contextRef="c-1" name="us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" id="f-1011" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"/><td style="width:79.341%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.459%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-1012">776</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-1013">191</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="f-1014">237</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" format="ixt:fixed-zero" scale="3" id="f-1015">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-1016">730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProvisionForDoubtfulAccounts" scale="3" id="f-1017">500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs" scale="3" id="f-1018">645</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" scale="3" id="f-1019">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:AllowanceForDoubtfulAccountsReceivable" scale="3" id="f-1020">583</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock" id="f-1021" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:79.398%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.402%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-1022">35,743</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-1023">39,076</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-1024">31,520</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" format="ixt:num-dot-decimal" scale="3" id="f-1025">2,512</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-1026">40,787</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease" format="ixt:num-dot-decimal" scale="3" id="f-1027">21,538</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" format="ixt:num-dot-decimal" scale="3" id="f-1028">20,987</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DeferredRevenueRefundPayments1" format="ixt:num-dot-decimal" scale="3" id="f-1029">9,205</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="cgnx:ContractLiabilityForeignExchangeRateChanges" scale="3" id="f-1030">608</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ContractWithCustomerLiabilityCurrent" format="ixt:num-dot-decimal" scale="3" id="f-1031">31,525</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for our contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for our contracts that have an original expected duration of more than one year, primarily related to extended warranties, is not material.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_157"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 15:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock" id="f-1032" continuedAt="f-1032-1" escape="true">Shareholders&#8217; Equity</ix:nonNumeric></span></div><ix:continuation id="f-1032-1" continuedAt="f-1032-2"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Preferred Stock</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has <ix:nonFraction unitRef="shares" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1033">400,000</ix:nonFraction> shares of authorized but unissued $<ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:PreferredStockParOrStatedValuePerShare" scale="0" id="f-1034">.01</ix:nonFraction> par value preferred stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Common Stock</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="INF" name="us-gaap:CommonStockParOrStatedValuePerShare" scale="0" id="f-1035">.002</ix:nonFraction> par value common stock from <ix:nonFraction unitRef="shares" contextRef="c-172" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1036">200,000,000</ix:nonFraction> to <ix:nonFraction unitRef="shares" contextRef="c-173" decimals="INF" name="us-gaap:CommonStockSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1037">300,000,000</ix:nonFraction>.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each outstanding share of common stock entitles the record holder to <ix:nonFraction unitRef="vote" contextRef="c-7" decimals="INF" name="cgnx:VoteEntitledForEachCommonShareOutstanding" format="ixt-sec:numwordsen" scale="0" id="f-1038">one</ix:nonFraction> vote on all matters submitted to a vote of the Company&#8217;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#8217;s Board of Directors.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Repurchases</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, the Company's Board of Directors authorized the repurchase of $<ix:nonFraction unitRef="usd" contextRef="c-174" decimals="-3" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1039">200,000,000</ix:nonFraction> of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="c-175" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1040">957,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-175" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1041">78,652,000</ix:nonFraction> in 2021, which completed purchases under the October 2018 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="c-176" decimals="-3" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1042">200,000,000</ix:nonFraction> of the Company's common stock. Under this March 2020 program, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="c-177" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1043">1,060,000</ix:nonFraction> shares, including <ix:nonFraction unitRef="shares" contextRef="c-177" decimals="-3" name="cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled" format="ixt:num-dot-decimal" scale="0" id="f-1044">5,000</ix:nonFraction> shares that were repurchased in 2021 and settled in 2022, at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-177" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1045">83,000,000</ix:nonFraction> in 2021, and <ix:nonFraction unitRef="shares" contextRef="c-178" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1046">1,677,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-178" decimals="-3" name="us-gaap:StockRepurchasedDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1047">117,000,000</ix:nonFraction> in 2022, which completed purchases under the March 2020 program.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">60</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1032-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $<ix:nonFraction unitRef="usd" contextRef="c-179" decimals="INF" name="us-gaap:StockRepurchaseProgramAuthorizedAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1048">500,000,000</ix:nonFraction> of the Company's common stock. Under this March 2022 program, the Company repurchased <ix:nonFraction unitRef="shares" contextRef="c-180" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1049">1,682,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-180" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1050">87,314,000</ix:nonFraction> in 2022 and <ix:nonFraction unitRef="shares" contextRef="c-181" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodShares" format="ixt:num-dot-decimal" scale="0" id="f-1051">1,723,000</ix:nonFraction> shares at a cost of $<ix:nonFraction unitRef="usd" contextRef="c-181" decimals="-3" name="us-gaap:StockRedeemedOrCalledDuringPeriodValue" format="ixt:num-dot-decimal" scale="0" id="f-1052">79,794,000</ix:nonFraction> in 2023, leaving a remaining balance of $<ix:nonFraction unitRef="usd" contextRef="c-182" decimals="INF" name="us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" format="ixt:num-dot-decimal" scale="0" id="f-1053">332,892,000</ix:nonFraction>. The 2023 repurchase included $<ix:nonFraction unitRef="usd" contextRef="c-181" decimals="-3" name="cgnx:StockRepurchaseProgramBuybackExciseTax" format="ixt:num-dot-decimal" scale="0" id="f-1054">446,000</ix:nonFraction> of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Dividends</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-183" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1055">0.060</ix:nonFraction> per share in the first, second, and third quarters of 2021, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-184" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1056">0.065</ix:nonFraction> per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-185" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1057">0.070</ix:nonFraction> per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023. The dividend was increased to $<ix:nonFraction unitRef="usdPerShare" contextRef="c-186" decimals="3" name="us-gaap:CommonStockDividendsPerShareCashPaid" scale="0" id="f-1058">0.075</ix:nonFraction> per share in the fourth quarter of 2023. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_163"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 16:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" id="f-1059" continuedAt="f-1059-1" escape="true">Stock-Based Compensation</ix:nonNumeric></span></div><ix:continuation id="f-1059-1" continuedAt="f-1059-2"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Plans</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#8220;2023 Plan&#8221;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to <ix:nonFraction unitRef="shares" contextRef="c-187" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1060">8,100,000</ix:nonFraction> shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#8220;2001 Plan&#8221;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#8220;2007 Plan&#8221;). With the approval of the 2023 Plan, the <ix:nonFraction unitRef="shares" contextRef="c-188" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-1061">10,610,800</ix:nonFraction> shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#8220;Carryover Shares&#8221;). As of December 31, 2023, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in <ix:nonFraction unitRef="shares" contextRef="c-189" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1062">343,492</ix:nonFraction> Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to <ix:nonFraction unitRef="shares" contextRef="c-190" decimals="INF" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" format="ixt:num-dot-decimal" scale="0" id="f-1063">8,443,492</ix:nonFraction>.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the Company had <ix:nonFraction unitRef="shares" contextRef="c-191" decimals="0" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" format="ixt:num-dot-decimal" scale="0" id="f-1064">7,978,000</ix:nonFraction> shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#8217;s common stock at the grant date and generally vest over <span style="-sec-ix-hidden:f-1065">four</span> or <ix:nonNumeric contextRef="c-193" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-1066">five years</ix:nonNumeric> based on continuous employment and expire <ix:nonNumeric contextRef="c-194" name="cgnx:ExpirationPeriodOfStockOptionPlan" format="ixt-sec:durwordsen" id="f-1067">ten years</ix:nonNumeric> from the grant date. RSUs generally vest upon <span style="-sec-ix-hidden:f-1068">three</span> or <ix:nonNumeric contextRef="c-196" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" format="ixt-sec:durwordsen" id="f-1069">four years</ix:nonNumeric> of continuous employment or incrementally over such <span style="-sec-ix-hidden:f-1070">three</span> or <span style="-sec-ix-hidden:f-1071">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:f-1072">three</span> years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">61</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1059-2" continuedAt="f-1059-3"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Options</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" id="f-1073" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:43.409%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.223%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.226%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-8" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-1074">8,467</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-8" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-1075">51.56</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" format="ixt:num-dot-decimal" scale="3" id="f-1076">1,541</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" scale="0" id="f-1077">46.33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised" scale="3" id="f-1078">330</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" scale="0" id="f-1079">33.64</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" scale="3" id="f-1080">670</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" scale="0" id="f-1081">57.65</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" format="ixt:num-dot-decimal" scale="3" id="f-1082">9,008</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" scale="0" id="f-1083">50.87</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" format="ixt-sec:duryear" id="f-1084">5.92</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1085">17,164</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-1086">5,207</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" scale="0" id="f-1087">47.78</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1088">4.42</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1089">16,212</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2023 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" format="ixt:num-dot-decimal" scale="3" id="f-1090">8,548</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-7" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" scale="0" id="f-1091">50.79</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-1" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" format="ixt-sec:duryear" id="f-1092">5.78</ix:nonNumeric></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" format="ixt:num-dot-decimal" scale="3" id="f-1093">16,896</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1094">11,104,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1095">12,267,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:ProceedsFromStockOptionsExercised" format="ixt:num-dot-decimal" scale="0" id="f-1096">63,860,000</ix:nonFraction> in 2021. In connection with these exercises, the tax benefit (expense) realized by the Company was $(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1097">4,691,000</ix:nonFraction>) in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1098">2,548,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1099">46,529,000</ix:nonFraction> in 2021.</span></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" id="f-1100" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:54.847%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.996%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.143%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.146%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-194" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1101">4.0</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-199" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1102">2.2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-200" decimals="3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" scale="-2" id="f-1103">1.3</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-194" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1104">0.61</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-199" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1105">0.44</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-200" decimals="4" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" scale="-2" id="f-1106">0.27</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-194" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1107">39</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-199" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1108">37</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-200" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" scale="-2" id="f-1109">39</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonNumeric contextRef="c-194" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1110">5.0</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-199" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1111">5.5</ix:nonNumeric></span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonNumeric contextRef="c-200" name="us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" format="ixt-sec:duryear" id="f-1112">6.0</ix:nonNumeric></span></td></tr></table></div></ix:nonNumeric><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk-free rate</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected dividend yield</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#8217;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected volatility</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected volatility was based on a combination of historical volatility of&#160;the Company&#8217;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#8217;s stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected term</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average grant-date fair value of stock options granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-1" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1113">17.76</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-4" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1114">21.39</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-5" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1115">33.79</ix:nonFraction> in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total intrinsic value of stock options exercised was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1116">6,227,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1117">8,424,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" format="ixt:num-dot-decimal" scale="0" id="f-1118">80,369,000</ix:nonFraction> in 2021. The total fair value of stock options vested was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1119">34,751,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1120">41,497,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" format="ixt:num-dot-decimal" scale="0" id="f-1121">45,328,000</ix:nonFraction> in 2021.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">62</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1059-3" continuedAt="f-1059-4"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restricted Stock Units (RSUs)</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock" id="f-1122" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:62.496%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.666%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:19.808%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-201" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1123">1,269</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-201" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1124">61.74</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-202" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1125">791</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-202" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1126">46.14</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-202" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" scale="3" id="f-1127">521</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-202" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1128">59.22</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="shares" contextRef="c-202" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" scale="3" id="f-1129">110</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-202" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" scale="0" id="f-1130">59.20</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-203" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" format="ixt:num-dot-decimal" scale="3" id="f-1131">1,429</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-203" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1132">54.22</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-202" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1133">46.14</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usdPerShare" contextRef="c-204" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1134">58.06</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-205" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1135">87.03</ix:nonFraction> in 2021. There were <ix:nonFraction unitRef="shares" contextRef="c-206" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1136">521,000</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-204" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1137">192,000</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-205" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:num-dot-decimal" scale="0" id="f-1138">16,000</ix:nonFraction> RSUs that vested in 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="0" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1139">7,836,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-204" decimals="0" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1140">2,406,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-205" decimals="0" name="us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation" format="ixt:num-dot-decimal" scale="0" id="f-1141">568,000</ix:nonFraction> in 2021. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(<ix:nonFraction unitRef="usd" contextRef="c-206" decimals="0" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1142">3,229,000</ix:nonFraction>) in 2023, $(<ix:nonFraction unitRef="usd" contextRef="c-204" decimals="0" sign="-" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1143">1,049,000</ix:nonFraction>) in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-205" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1144">126,000</ix:nonFraction> in 2021.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" id="f-1145" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:65.420%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.712%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.838%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-207" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1146">33</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-207" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1147">62.49</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-208" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" scale="3" id="f-1148">46</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-208" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1149">44.86</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-208" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt:fixed-zero" scale="3" id="f-1150">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-208" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-1151">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-208" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" format="ixt:fixed-zero" scale="3" id="f-1152">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-208" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" format="ixt:fixed-zero" scale="0" id="f-1153">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-209" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" scale="3" id="f-1154">79</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usdPerShare" contextRef="c-209" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" scale="0" id="f-1155">52.23</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $<ix:nonFraction unitRef="usdPerShare" contextRef="c-208" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1156">44.86</ix:nonFraction> in 2023 and $<ix:nonFraction unitRef="usdPerShare" contextRef="c-210" decimals="2" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" scale="0" id="f-1157">62.49</ix:nonFraction> in 2022. <ix:nonFraction unitRef="shares" contextRef="c-211" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" format="ixt-sec:numwordsen" id="f-1158">No</ix:nonFraction> PRSUs were granted in 2021. <ix:nonFraction unitRef="shares" contextRef="c-210" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1159"><ix:nonFraction unitRef="shares" contextRef="c-208" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1160"><ix:nonFraction unitRef="shares" contextRef="c-211" decimals="-3" name="us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" format="ixt-sec:numwordsen" id="f-1161">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs vested in 2023, 2022, and 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company stratifies its employee population into <ix:nonFraction unitRef="group" contextRef="c-7" decimals="INF" name="cgnx:NumberOfGroupsWithinEmployeePopulation" format="ixt-sec:numwordsen" scale="0" id="f-1162">three</ix:nonFraction> groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of <ix:nonFraction unitRef="number" contextRef="c-7" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO" scale="-2" id="f-1163">0</ix:nonFraction>% to all stock-based awards for the CEO, <ix:nonFraction unitRef="number" contextRef="c-7" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" scale="-2" id="f-1164">8</ix:nonFraction>% to all stock-based awards for senior management, and <ix:nonFraction unitRef="number" contextRef="c-7" decimals="2" name="cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" scale="-2" id="f-1165">13</ix:nonFraction>% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1166">234,000</ix:nonFraction> in 2023, an increase to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1167">1,536,000</ix:nonFraction> in 2022, and a decrease to compensation expense of $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" format="ixt:num-dot-decimal" scale="0" id="f-1168">255,000</ix:nonFraction> in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" format="ixt:num-dot-decimal" scale="0" id="f-1169">58,489,000</ix:nonFraction>, which is expected to be recognized over a weighted-average period of <ix:nonNumeric contextRef="c-1" name="us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" format="ixt-sec:duryear" id="f-1170">1.92</ix:nonNumeric> years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total stock-based compensation expense and the related income tax benefit recognized was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1171">54,768,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1172">8,442,000</ix:nonFraction>, respectively, in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1173">54,505,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1174">9,540,000</ix:nonFraction>, respectively, in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1175">43,774,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" format="ixt:num-dot-decimal" scale="0" id="f-1176">6,764,000</ix:nonFraction>, respectively, in 2021. <ix:nonFraction unitRef="usd" contextRef="c-7" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1177"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1178"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="INF" name="cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" format="ixt-sec:numwordsen" id="f-1179">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> compensation expense was capitalized in 2023, 2022, or 2021.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">63</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" id="f-1180" escape="true"><ix:continuation id="f-1059-4"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"/><td style="width:51.176%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.318%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.534%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.320%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-212" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1181">1,979</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-213" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1182">2,016</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-214" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1183">1,345</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-215" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1184">16,480</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-216" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1185">17,693</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-217" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1186">13,535</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-218" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1187">36,309</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-219" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1188">34,796</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-220" decimals="-3" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1189">28,894</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1190">54,768</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1191">54,505</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:AllocatedShareBasedCompensationExpense" format="ixt:num-dot-decimal" scale="3" id="f-1192">43,774</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:continuation></ix:nonNumeric><div id="i2dd498fe86504703b8f8c7a0acf0bd51_169"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 17:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock" id="f-1193" continuedAt="f-1193-1" escape="true">Employee Savings Plan</ix:nonNumeric></span></div><ix:continuation id="f-1193-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age <ix:nonNumeric contextRef="c-1" name="cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan" format="ixt-sec:duryear" id="f-1194">21</ix:nonNumeric> may contribute up to <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" scale="-2" id="f-1195">100</ix:nonFraction>% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" scale="-2" id="f-1196">50</ix:nonFraction>% of the first <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent" scale="-2" id="f-1197">6</ix:nonFraction>% of pay an employee contributes. Company contributions vest <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfOneYear" scale="-2" id="f-1198">25</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfTwoYear" scale="-2" id="f-1199">50</ix:nonFraction>%, <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfThreeYears" scale="-2" id="f-1200">75</ix:nonFraction>%, and <ix:nonFraction unitRef="number" contextRef="c-1" decimals="INF" name="cgnx:CompanyContributionsVestAtEndOfFourYears" scale="-2" id="f-1201">100</ix:nonFraction>% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1202">3,392,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1203">3,284,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:DefinedContributionPlanCostRecognized" format="ixt:num-dot-decimal" scale="0" id="f-1204">2,898,000</ix:nonFraction> in 2021. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_175"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 18:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:IncomeTaxDisclosureTextBlock" id="f-1206" continuedAt="f-1206-1" escape="true">Income Taxes</ix:nonNumeric></span></div><ix:continuation id="f-1206-1" continuedAt="f-1206-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Domestic income before taxes was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1207">16,039,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1208">48,546,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" format="ixt:num-dot-decimal" scale="0" id="f-1209">121,729,000</ix:nonFraction> in 2021. Foreign income before taxes was $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1210">119,309,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1211">202,149,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" format="ixt:num-dot-decimal" scale="0" id="f-1212">197,171,000</ix:nonFraction> in 2021. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" id="f-1213" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:48.680%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.151%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.151%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:15.154%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1214">29,084</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1215">48,355</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentFederalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1216">27,870</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1217">3,544</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1218">5,689</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentStateAndLocalTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1219">5,372</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1220">9,207</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1221">10,243</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentForeignTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1222">8,406</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1223">41,835</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1224">64,287</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:CurrentIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1225">41,648</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1226">24,731</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1227">40,772</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredFederalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1228">19,266</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1229">5,877</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1230">8,354</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit" scale="3" id="f-1231">769</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1232">10,887</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1233">20,009</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:DeferredForeignIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1234">17,406</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1235">19,721</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1236">29,117</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" sign="-" name="us-gaap:DeferredIncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1237">2,629</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1238">22,114</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1239">35,170</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:IncomeTaxExpenseBenefit" format="ixt:num-dot-decimal" scale="3" id="f-1240">39,019</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">64</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1206-2" continuedAt="f-1206-3"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" id="f-1241" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"/><td style="width:62.296%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.613%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.532%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:10.614%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1242">21</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1243">21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1244">21</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1245">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1246">2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" scale="-2" id="f-1247">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1248">6</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1249">7</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1250">5</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1251">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1252">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits" scale="-2" id="f-1253">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" scale="-2" id="f-1254">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" format="ixt:fixed-zero" scale="-2" id="f-1255">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" format="ixt:fixed-zero" scale="-2" id="f-1256">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" scale="-2" id="f-1257">3</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" scale="-2" id="f-1258">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent" format="ixt:fixed-zero" scale="-2" id="f-1259">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="f-1260">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" scale="-2" id="f-1261">1</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" format="ixt:fixed-zero" scale="-2" id="f-1262">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="f-1263">1</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" format="ixt:fixed-zero" scale="-2" id="f-1264">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" scale="-2" id="f-1265">3</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="f-1266">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="f-1267">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements" scale="-2" id="f-1268">1</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" scale="-2" id="f-1269">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" scale="-2" id="f-1270">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" format="ixt:fixed-zero" scale="-2" id="f-1271">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" scale="-2" id="f-1272">2</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" scale="-2" id="f-1273">3</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent" format="ixt:fixed-zero" scale="-2" id="f-1274">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="-2" id="f-1275">4</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" scale="-2" id="f-1276">1</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" format="ixt:fixed-zero" scale="-2" id="f-1277">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" format="ixt:fixed-zero" scale="-2" id="f-1278">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" sign="-" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" scale="-2" id="f-1279">1</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" format="ixt:fixed-zero" scale="-2" id="f-1280">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1281">2</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1282">2</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments" scale="-2" id="f-1283">1</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1284">16</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1285">14</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateContinuingOperations" scale="-2" id="f-1286">12</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Reserves</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:SummaryOfIncomeTaxContingenciesTextBlock" id="f-1287" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:81.158%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:16.642%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2020</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-10" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1288">13,952</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1289">280</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1290">100</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="f-1291">525</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="f-1292">485</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1293">13,812</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1294">119</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1295">2,850</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" scale="3" id="f-1296">505</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="f-1297">2,329</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" format="ixt:num-dot-decimal" scale="3" id="f-1298">1,072</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1299">13,647</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" scale="3" id="f-1300">242</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1301">12,556</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" format="ixt:num-dot-decimal" scale="3" id="f-1302">1,877</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" format="ixt:num-dot-decimal" scale="3" id="f-1303">1,230</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" scale="3" id="f-1304">894</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:UnrecognizedTaxBenefits" format="ixt:num-dot-decimal" scale="3" id="f-1305">25,714</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="f-1306">29,053,000</ix:nonFraction> as of December 31, 2023, of which $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability" format="ixt:num-dot-decimal" scale="0" id="f-1307">26,685,000</ix:nonFraction> was classified as a non-current liability and $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" format="ixt:num-dot-decimal" scale="0" id="f-1308">2,368,000</ix:nonFraction> was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including interest and penalties, was $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="cgnx:UnrecognizedTaxBenefitsGross" format="ixt:num-dot-decimal" scale="0" id="f-1309">15,866,000</ix:nonFraction> as of December 31, 2022, which was classified as a non-current liability. The amount of gross interest and penalties included in these balances was $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="0" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="f-1310">3,339,000</ix:nonFraction> and $<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="0" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" format="ixt:num-dot-decimal" scale="0" id="f-1311">2,219,000</ix:nonFraction> as of December&#160;31, 2023 and 2022, respectively. If the Company&#8217;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">65</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1206-3" continuedAt="f-1206-4"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="f-1312">650,000</ix:nonFraction> to $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" format="ixt:num-dot-decimal" scale="0" id="f-1313">1,000,000</ix:nonFraction> over the next twelve months.</span></div><div style="margin-bottom:8pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is <ix:nonFraction unitRef="number" contextRef="c-221" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1314">12.5</ix:nonFraction>% in Ireland, <ix:nonFraction unitRef="number" contextRef="c-222" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1315">25</ix:nonFraction>% in China, <ix:nonFraction unitRef="number" contextRef="c-223" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1316">34.6</ix:nonFraction>% in Japan, and <ix:nonFraction unitRef="number" contextRef="c-224" decimals="3" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1317">21</ix:nonFraction>% in Korea, compared to the U.S. federal statutory corporate tax rate of <ix:nonFraction unitRef="number" contextRef="c-225" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" scale="-2" id="f-1318">21</ix:nonFraction>%. These differences resulted in a favorable impact to the effective tax rate of <ix:nonFraction unitRef="number" contextRef="c-1" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1319">6</ix:nonFraction> percentage points for 2023, <ix:nonFraction unitRef="number" contextRef="c-4" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1320">7</ix:nonFraction> percentage points for 2022, and <ix:nonFraction unitRef="number" contextRef="c-5" decimals="2" name="us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" scale="-2" id="f-1321">5</ix:nonFraction> percentage points for 2021. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit, derived from the tax holiday, on basic and diluted earnings per share for 2023 was not material. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Within the United States, the tax years 2019 through 2022 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2022 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company is under audit by the Commonwealth of Massachusetts for the returns filed for tax years 2020 and 2021. In addition, the Company is under audit in Ireland for the returns filed for tax years 2019 through 2020. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and penalties included in income tax expense were $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1322">1,032,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1323">229,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" format="ixt:num-dot-decimal" scale="0" id="f-1324">281,000</ix:nonFraction> in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash paid for income taxes totaled $<ix:nonFraction unitRef="usd" contextRef="c-1" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1325">56,618,000</ix:nonFraction> in 2023, $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1326">57,016,000</ix:nonFraction> in 2022, and $<ix:nonFraction unitRef="usd" contextRef="c-5" decimals="0" name="us-gaap:IncomeTaxesPaidNet" format="ixt:num-dot-decimal" scale="0" id="f-1327">49,435,000</ix:nonFraction> in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Deferred Tax Assets and Liabilities</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" id="f-1328" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2023 and December 31, 2022 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:66.495%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.735%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.737%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="f-1329">375,360</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" format="ixt:num-dot-decimal" scale="3" id="f-1330">386,221</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1331">20,916</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" format="ixt:num-dot-decimal" scale="3" id="f-1332">21,962</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1333">7,848</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic" format="ixt:num-dot-decimal" scale="3" id="f-1334">8,284</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="f-1335">10,897</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsInventory" format="ixt:num-dot-decimal" scale="3" id="f-1336">8,117</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="f-1337">6,243</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" format="ixt:num-dot-decimal" scale="3" id="f-1338">5,116</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="f-1339">1,840</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:NoncurrentDeferredTaxAssetsDeprecation" format="ixt:num-dot-decimal" scale="3" id="f-1340">4,881</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" scale="3" id="f-1341">339</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" scale="3" id="f-1342">53</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1343">28,521</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" format="ixt:num-dot-decimal" scale="3" id="f-1344">16,889</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1345">5,514</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredTaxAssetsOtherNoncurrent" format="ixt:num-dot-decimal" scale="3" id="f-1346">15,102</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="f-1347">457,478</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross" format="ixt:num-dot-decimal" scale="3" id="f-1348">466,625</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" scale="3" id="f-1349">943</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="3" id="f-1350">7,661</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1351">456,535</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1352">458,964</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1353">28,685</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1354">2,762</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="3" id="f-1355">274,327</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="3" id="f-1356">298,922</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1357">303,012</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:DeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1358">301,684</ix:nonFraction>)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1359">153,523</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="cgnx:DeferredIncomeTaxAssetsLiabilitiesNet" format="ixt:num-dot-decimal" scale="3" id="f-1360">157,280</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric></ix:continuation><div style="margin-top:5pt;text-align:justify"><span><br/></span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">66</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1206-4"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Tax Structure and Global Intangible Low-Taxed Income Tax</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="cgnx:DeferredTaxAssetsForeignTaxStructureChange" format="ixt:num-dot-decimal" scale="0" id="f-1361">437,500,000</ix:nonFraction> in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $<ix:nonFraction unitRef="usd" contextRef="c-226" decimals="0" name="cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" format="ixt:num-dot-decimal" scale="0" id="f-1362">350,000,000</ix:nonFraction>, representing the GILTI minimum tax related to the fair value of the intellectual property.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Other Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company had foreign net operating loss carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-227" decimals="0" name="us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1363">1,720,000</ix:nonFraction>, state tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-228" decimals="0" name="cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState" format="ixt:num-dot-decimal" scale="0" id="f-1364">8,740,000</ix:nonFraction> that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $<ix:nonFraction unitRef="usd" contextRef="c-227" decimals="0" name="us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign" format="ixt:num-dot-decimal" scale="0" id="f-1365">943,000</ix:nonFraction>.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $<ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1366">943,000</ix:nonFraction> that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company released the valuation allowance for state research and development tax credits of $<ix:nonFraction unitRef="usd" contextRef="c-229" decimals="0" name="us-gaap:DeferredTaxAssetsValuationAllowance" format="ixt:num-dot-decimal" scale="0" id="f-1367">5,427,000</ix:nonFraction>, as these credits are expected to be utilized to offset future state income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#8217;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_181"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 19:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:EarningsPerShareTextBlock" id="f-1368" continuedAt="f-1368-1" escape="true">Weighted Average Shares</ix:nonNumeric></span></div><ix:continuation id="f-1368-1"><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" id="f-1369" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:55.058%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.976%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.976%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.124%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1370">172,249</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1371">173,407</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfSharesOutstandingBasic" format="ixt:num-dot-decimal" scale="3" id="f-1372">176,463</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1373">1,150</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1374">1,462</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment" format="ixt:num-dot-decimal" scale="3" id="f-1375">3,453</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-1" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1376">173,399</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-4" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1377">174,869</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="shares" contextRef="c-5" decimals="-3" name="us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding" format="ixt:num-dot-decimal" scale="3" id="f-1378">179,916</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options to purchase <ix:nonFraction unitRef="shares" contextRef="c-230" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1379">6,854,092</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-231" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1380">4,715,104</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-232" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1381">497,504</ix:nonFraction> shares of common stock, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling <ix:nonFraction unitRef="shares" contextRef="c-233" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="f-1382">365</ix:nonFraction>, <ix:nonFraction unitRef="shares" contextRef="c-234" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt:num-dot-decimal" scale="0" id="f-1383">26,079</ix:nonFraction>, and <ix:nonFraction unitRef="shares" contextRef="c-235" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" scale="0" id="f-1384">605</ix:nonFraction> that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. <ix:nonFraction unitRef="shares" contextRef="c-236" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1385"><ix:nonFraction unitRef="shares" contextRef="c-237" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1386"><ix:nonFraction unitRef="shares" contextRef="c-238" decimals="0" name="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" format="ixt-sec:numwordsen" id="f-1387">No</ix:nonFraction></ix:nonFraction></ix:nonFraction> PRSUs were excluded in the calculation of dilutive net income per share in 2023, 2022, and 2021 as PRSUs were not anti-dilutive on a weighted-average basis.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">67</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_184"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 20:&#160;<ix:nonNumeric contextRef="c-1" name="us-gaap:SegmentReportingDisclosureTextBlock" id="f-1388" continuedAt="f-1388-1" escape="true">Segment and Geographic Information</ix:nonNumeric></span></div><ix:continuation id="f-1388-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company operates in <ix:nonFraction unitRef="segment" contextRef="c-1" decimals="INF" name="us-gaap:NumberOfReportableSegments" format="ixt-sec:numwordsen" scale="0" id="f-1389">one</ix:nonFraction> segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#8217;s chief operating decision maker is the chief executive officer, who makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, product line, or end market. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" id="f-1390" escape="true"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:28.665%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.243%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.389%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:12.393%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-239" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1391">288,324</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-157" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1392">220,665</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-160" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1393">164,115</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-240" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1394">164,443</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-1" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1395">837,547</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-241" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1396">62,946</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-242" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1397">17,005</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-243" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1398">17,028</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-244" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1399">15,958</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-7" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1400">112,937</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-245" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1401">343,835</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-158" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1402">234,643</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-161" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1403">227,447</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-246" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1404">200,165</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1405">1,006,090</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-247" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1406">66,928</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-248" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1407">14,725</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-249" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1408">1,334</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-250" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1409">3,370</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-8" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1410">86,357</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-251" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1411">393,690</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-159" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1412">247,744</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-162" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1413">200,135</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-252" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1414">195,529</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-5" decimals="-3" name="us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax" format="ixt:num-dot-decimal" scale="3" id="f-1415">1,037,098</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-253" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1416">63,141</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-254" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1417">16,982</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-255" decimals="-3" name="us-gaap:NoncurrentAssets" scale="3" id="f-1418">960</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-256" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1419">3,705</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-9" decimals="-3" name="us-gaap:NoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1420">84,788</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is presented geographically based on the customer&#8217;s country of domicile. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a single customer accounted for <ix:nonFraction unitRef="number" contextRef="c-257" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1421">11</ix:nonFraction>% and <ix:nonFraction unitRef="number" contextRef="c-258" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1422">17</ix:nonFraction>% of total revenue in 2022 and 2021, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a second customer accounted for <ix:nonFraction unitRef="number" contextRef="c-259" decimals="2" name="us-gaap:ConcentrationRiskPercentage1" scale="-2" id="f-1423">11</ix:nonFraction>% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2023 or 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_190"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 21: <ix:nonNumeric contextRef="c-1" name="us-gaap:BusinessCombinationDisclosureTextBlock" id="f-1425" continuedAt="f-1425-1" escape="true">Business Combinations</ix:nonNumeric></span></div><ix:continuation id="f-1425-1" continuedAt="f-1425-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Moritex Corporation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation (Moritex), a global provider of premium optical components based in Japan, for an enterprise value of &#165;<ix:nonFraction unitRef="jpy" contextRef="c-89" decimals="-9" name="cgnx:BusinessCombinationEnterpriseValue" format="ixt:num-dot-decimal" scale="9" id="f-1426">40</ix:nonFraction>&#160;billion Japanese Yen, or approximately $<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-6" name="cgnx:BusinessCombinationEnterpriseValue" format="ixt:num-dot-decimal" scale="6" id="f-1427">270</ix:nonFraction>&#160;million U.S. Dollars based on the closing date foreign exchange rate. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#165;<ix:nonFraction unitRef="jpy" contextRef="c-260" decimals="-3" name="us-gaap:BusinessCombinationConsiderationTransferred1" format="ixt:num-dot-decimal" scale="0" id="f-1428">44,376,245,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:BusinessCombinationConsiderationTransferred1" format="ixt:num-dot-decimal" scale="0" id="f-1429">296,138,000</ix:nonFraction> based on the closing date foreign exchange rate), of which &#165;<ix:nonFraction unitRef="jpy" contextRef="c-260" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1430">44,227,414,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1431">295,144,000</ix:nonFraction>) was paid in cash on the closing date and &#165;<ix:nonFraction unitRef="jpy" contextRef="c-261" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1432">148,831,000</ix:nonFraction> ($<ix:nonFraction unitRef="usd" contextRef="c-261" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesGross" format="ixt:num-dot-decimal" scale="0" id="f-1433">994,000</ix:nonFraction>) is expected to be paid in the first quarter of 2024 as a final purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" format="ixt:num-dot-decimal" scale="0" id="f-1434">38,088,000</ix:nonFraction> as part of this transaction, to arrive at a net cash outflow of $<ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired" format="ixt:num-dot-decimal" scale="0" id="f-1435">257,056,000</ix:nonFraction> on the closing date. There was no contingent consideration as part of this transaction.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Established in 1973, Moritex develops, manufactures, and sells high-end optical components, such as lenses and lighting, for industrial use. The acquisition of Moritex is expected to increase the Company's optical technology capabilities, which include our proprietary embedded liquid lenses and, more recently, computational lighting from our 2022 acquisition of SAC Sirius Advanced Cybernetics GmbH (described below). Vision technology relies on acquiring high-quality images to optimize the performance of machine vision tools. Historically, our customers have primarily used third-party lenses and lighting for image acquisition. We anticipate the portfolio of Moritex optical components will allow us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This transaction was accounted for as a business combination. As of the date of this filing, the purchase price allocation is preliminary and may change during the one-year measurement period ending October 18, 2024 as new </span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">68</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><ix:continuation id="f-1425-2"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">information becomes available, particularly related to tax positions reflected as of the acquisition date. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values, which were valued using level 3 inputs, as of the acquisition date. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#8217;s consolidated financial statements. </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Transaction costs were approximately $<ix:nonFraction unitRef="usd" contextRef="c-260" decimals="-3" name="us-gaap:AssetAcquisitionConsiderationTransferredTransactionCost" format="ixt:num-dot-decimal" scale="0" id="f-1436">5,800,000</ix:nonFraction> and were expensed as incurred as part of SG&amp;A expenses on the Consolidated Statement of Operations. </span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" id="f-1437" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated based on provisional amounts as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:79.016%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.784%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" format="ixt:num-dot-decimal" scale="3" id="f-1438">38,088</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" format="ixt:num-dot-decimal" scale="3" id="f-1439">11,572</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" format="ixt:num-dot-decimal" scale="3" id="f-1440">22,788</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" format="ixt:num-dot-decimal" scale="3" id="f-1441">19,876</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:Goodwill" format="ixt:num-dot-decimal" scale="3" id="f-1442">145,047</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-120" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="3" id="f-1443">66,900</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-122" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" format="ixt:num-dot-decimal" scale="3" id="f-1444">32,300</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-124" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" scale="3" id="f-1445">850</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" format="ixt:num-dot-decimal" scale="3" id="f-1446">4,516</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" format="ixt:num-dot-decimal" scale="3" id="f-1447">4,935</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" format="ixt:num-dot-decimal" scale="3" id="f-1448">6,700</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1449">13,521</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" format="ixt:num-dot-decimal" scale="3" id="f-1450">22,055</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" format="ixt:num-dot-decimal" scale="3" id="f-1451">5,864</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" format="ixt:num-dot-decimal" scale="3" id="f-1452">2,594</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-89" decimals="-3" name="us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" format="ixt:num-dot-decimal" scale="3" id="f-1453">296,138</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div></ix:nonNumeric><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sheet.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships are being amortized to SG&amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SAC Sirius Advanced Cybernetics GmbH</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's consolidated financial statements.</span></div></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_196"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 22: <ix:nonNumeric contextRef="c-1" name="cgnx:CatastropheTextBlock" id="f-1454" continuedAt="f-1454-1" escape="true">Loss (Recovery) from Fire</ix:nonNumeric></span></div><ix:continuation id="f-1454-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2022, the Company recorded a net loss related to the fire of $<ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="us-gaap:LossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="f-1455">20,779,000</ix:nonFraction>, consisting primarily of losses of inventories and other assets of $<ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="cgnx:GrossLossFromCatastrophes" format="ixt:num-dot-decimal" scale="0" id="f-1456">48,339,000</ix:nonFraction>, partially offset by insurance proceeds received from the Company's insurance carrier of $<ix:nonFraction unitRef="usd" contextRef="c-262" decimals="-3" name="us-gaap:InsuranceRecoveries" format="ixt:num-dot-decimal" scale="0" id="f-1457">27,560,000</ix:nonFraction>. In 2023, the Company recorded recoveries related to the fire of $<ix:nonFraction unitRef="usd" contextRef="c-263" decimals="-3" name="us-gaap:InsuranceRecoveries" format="ixt:num-dot-decimal" scale="0" id="f-1458">8,000,000</ix:nonFraction>, consisting of $<ix:nonFraction unitRef="usd" contextRef="c-263" decimals="-3" name="cgnx:InsuranceRecoveriesBusinessInterruption" format="ixt:num-dot-decimal" scale="0" id="f-1459">2,500,000</ix:nonFraction> for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $<ix:nonFraction unitRef="usd" contextRef="c-263" decimals="-3" name="cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses" format="ixt:num-dot-decimal" scale="0" id="f-1460">5,500,000</ix:nonFraction> for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire. Management does not anticipate additional recoveries. These losses and recoveries are presented in the caption "Loss (recovery) from fire" on the Consolidated Statements of Operations.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">69</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_199"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div><div><span><br/></span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION - NOTES TO CONSOLIDATED FINANCIAL STATEMENTS</span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 23: <ix:nonNumeric contextRef="c-1" name="us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock" id="f-1461" continuedAt="f-1461-1" escape="true">Restructuring Charges</ix:nonNumeric></span></div><ix:continuation id="f-1461-1"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2022, following its acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21), the Company completed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of <ix:nonFraction unitRef="employees" contextRef="c-4" decimals="0" name="us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated" id="f-1462">18</ix:nonFraction> employees and the termination of certain operating lease contracts, and resulted in charges of $<ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="0" id="f-1463">1,657,000</ix:nonFraction> in 2022. These charges are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations.</span></div><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock" id="f-1464" escape="true"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:72.876%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td style="width:0.1%"/><td style="width:0.530%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:24.194%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">One-time termination benefits</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-264" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-1465">1,584</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract termination costs</span></td><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-265" decimals="-3" name="us-gaap:RestructuringCharges" scale="3" id="f-1466">73</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-4" decimals="-3" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-1467">1,657</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric><ix:nonNumeric contextRef="c-1" name="us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock" id="f-1468" escape="true"><div style="margin-bottom:16pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the activity in the Company&#8217;s restructuring reserve, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"/><td style="width:52.701%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:14.104%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:13.081%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.384%"/><td style="width:0.1%"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="width:1.0%"/><td style="width:14.546%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">One-time Termination Benefits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-266" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1469">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-267" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1470">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-268" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1471">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-1472">1,584</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" scale="3" id="f-1473">73</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" sign="-" name="us-gaap:RestructuringCharges" format="ixt:num-dot-decimal" scale="3" id="f-1474">1,657</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="f-1475">646</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:fixed-zero" scale="3" id="f-1476">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="f-1477">646</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-269" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="f-1478">26</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-270" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="f-1479">2</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-271" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="f-1480">28</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-272" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="f-1481">964</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-273" decimals="-3" name="us-gaap:RestructuringReserve" scale="3" id="f-1482">75</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-274" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:num-dot-decimal" scale="3" id="f-1483">1,039</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="f-1484">973</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:PaymentsForRestructuring" scale="3" id="f-1485">75</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-277" decimals="-3" name="us-gaap:PaymentsForRestructuring" format="ixt:num-dot-decimal" scale="3" id="f-1486">1,048</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-275" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="f-1487">9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-276" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" format="ixt:fixed-zero" scale="3" id="f-1488">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-277" decimals="-3" name="us-gaap:RestructuringReserveTranslationAdjustment" scale="3" id="f-1489">9</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-278" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1490">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-279" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1491">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-280" decimals="-3" name="us-gaap:RestructuringReserve" format="ixt:fixed-zero" scale="3" id="f-1492">&#8212;</ix:nonFraction></span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr><tr><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/><td colspan="3" style="display:none"/></tr></table></div></ix:nonNumeric></ix:continuation><div id="i2dd498fe86504703b8f8c7a0acf0bd51_202"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">NOTE 24: <ix:nonNumeric contextRef="c-1" name="us-gaap:SubsequentEventsTextBlock" id="f-1493" continuedAt="f-1493-1" escape="true">Subsequent Events</ix:nonNumeric></span></div><ix:continuation id="f-1493-1"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 15, 2024, the Company's Board of Directors declared a cash dividend of $<ix:nonFraction unitRef="usdPerShare" contextRef="c-281" decimals="INF" name="us-gaap:DividendsPayableAmountPerShare" scale="0" id="f-1494">0.075</ix:nonFraction> per share. The dividend is payable March 14, 2024 to all shareholders of record as of the close of business on February 29, 2024.</span></div></ix:continuation><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">70</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_208"></div><hr style="page-break-after:always"/><div style="min-height:58.5pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION &#8211; <ix:nonNumeric contextRef="c-1" name="srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" id="f-1495" continuedAt="f-1495-1" escape="true">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS</ix:nonNumeric></span></div><ix:continuation id="f-1495-1"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"/><td style="width:30.711%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.536%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.914%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.581%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.472%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:2.581%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:8.481%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Additions</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Description</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>Beginning<br/>of Period</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged&#160;to<br/>Costs and<br/>Expenses</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged<br/>to Other<br/>Accounts</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Deductions</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>End of<br/>Period</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Allowance for Credit Losses on Accounts Receivable:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-282" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1496">730</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-283" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1497">500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-283" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1498">645</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-283" decimals="-3" sign="-" name="us-gaap:ValuationAllowancesAndReservesAdjustments" scale="3" id="f-1499">2</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-284" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1500">583</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-285" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1501">776</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-286" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1502">191</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-286" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1503">237</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-286" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1504">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-282" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1505">730</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-287" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1506">831</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-288" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1507">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-288" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" scale="3" id="f-1508">55</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-288" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1509">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-285" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1510">776</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve&#160;for Sales Returns:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-289" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1511">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-290" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" scale="3" id="f-1512">500</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-290" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1513">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-290" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1514">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-290" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1515">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-291" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1516">2,018</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-292" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1517">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-293" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1518">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-293" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1519">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-293" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1520">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-293" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1521">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-289" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1522">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-294" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1523">1,291</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-295" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1524">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-295" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" scale="3" id="f-1525">227</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-295" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:fixed-zero" scale="3" id="f-1526">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-295" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1527">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-292" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1528">1,518</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred Tax Valuation Allowance:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-296" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1529">7,661</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-297" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:fixed-zero" scale="3" id="f-1530">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-297" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1531">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-297" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="f-1532">6,718</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-297" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1533">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-298" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" scale="3" id="f-1534">943</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-299" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1535">8,188</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="f-1536">2,234</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:num-dot-decimal" scale="3" id="f-1537">3,889</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="f-1538">6,650</ix:nonFraction>)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-300" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1539">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-296" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1540">7,661</ix:nonFraction>&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-301" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1541">8,568</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-302" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense" format="ixt:num-dot-decimal" scale="3" id="f-1542">1,420</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-302" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts" format="ixt:fixed-zero" scale="3" id="f-1543">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(<ix:nonFraction unitRef="usd" contextRef="c-302" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesDeductions" format="ixt:num-dot-decimal" scale="3" id="f-1544">1,800</ix:nonFraction>)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-302" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesAdjustments" format="ixt:fixed-zero" scale="3" id="f-1545">&#8212;</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"><ix:nonFraction unitRef="usd" contextRef="c-299" decimals="-3" name="us-gaap:ValuationAllowancesAndReservesBalance" format="ixt:num-dot-decimal" scale="3" id="f-1546">8,188</ix:nonFraction>&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Specific write-offs</span></div><div style="padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Foreign currency exchange rate changes</span></div></ix:continuation><div style="padding-left:36pt"><span><br/></span></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">71</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_211"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;9: CHANGES IN AND DISAGREEMENTS WITH ACCOUNTANTS ON ACCOUNTING AND FINANCIAL DISCLOSURE</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">There were no disagreements with accountants on accounting or financial disclosure during 2023 or 2022.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_214"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9A: CONTROLS AND PROCEDURES</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Disclosure Controls and Procedures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As required by Rules 13a-15 and 15d-15 of the Exchange Act, the Company has evaluated, with the participation of management, including the Chief Executive Officer and the Chief Financial Officer, the effectiveness of its disclosure controls and procedures (as defined in such rules) as of the end of the period covered by this report. Based on such evaluation, except as described below relating to the acquisition of Moritex Corporation, the Chief Executive Officer and Chief Financial Officer concluded that such disclosure controls and procedures were effective as of that date.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Management&#8217;s Report on Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management is responsible for establishing and maintaining adequate internal control over financial reporting. Management has evaluated the effectiveness of the Company&#8217;s internal control over financial reporting based on the framework in Internal Control &#8211; Integrated Framework issued in 2013 by the Committee of Sponsoring Organizations of the Treadway Commission (COSO).</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as described below relating to the acquisition of Moritex Corporation, based on our evaluation, management has concluded that the Company&#8217;s internal control over financial reporting was effective as of December&#160;31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company closed the acquisition of Moritex Corporation on October 18, 2023. The new acquisition's total assets and revenues constituted approximately 5% and 1%, respectively, of the Company&#8217;s consolidated total assets and revenues as shown on our consolidated financial statements as of and for the year ended December 31, 2023. As the acquisition occurred during the fourth quarter of 2023, the Company excluded Moritex Corporation from the scope of the assessment of the effectiveness of the Company&#8217;s internal control over financial reporting and, with respect to the portion of disclosure controls and procedures that are subsumed by internal control over financial reporting of Moritex Corporation, the Company's disclosure controls and procedures. This exclusion is in accordance with the general guidance issued by the Staff of the Securities and Exchange Commission that an assessment of a recently-acquired business may be omitted from the scope in the year of acquisition if specified conditions are satisfied.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Attestation Report of the Registered Public Accounting Firm on Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s internal control over financial reporting as of December&#160;31, 2023 has been audited by Grant Thornton LLP, an independent registered public accounting firm, as stated in their report which is included herein.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Changes in Internal Control over Financial Reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as described above, there have been no changes in the Company's internal control over financial reporting that occurred during the fourth quarter of the year ended December&#160;31, 2023 that have materially affected, or are reasonably likely to materially affect, the Company&#8217;s internal control over financial reporting. The Company continues to review its disclosure controls and procedures, including its internal control over financial reporting, and may from time to time make changes aimed at enhancing their effectiveness and to ensure that the Company&#8217;s systems evolve with its business.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">72</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">REPORT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Board of Directors and Shareholders                                                                                                                         Cognex Corporation</span></div><div style="text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Opinion on internal control over financial reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We have audited the internal control over financial reporting of Cognex Corporation (a Massachusetts corporation) and subsidiaries (the &#8220;Company&#8221;) as of December 31, 2023, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by the Committee of Sponsoring Organizations of the Treadway Commission (&#8220;COSO&#8221;). In our opinion, the Company maintained, in all material respects, effective internal control over financial reporting as of December 31, 2023, based on criteria established in the 2013 </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Internal Control&#8212;Integrated Framework</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> issued by COSO.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">We also have audited, in accordance with the standards of the Public Company Accounting Oversight Board (United States) (&#8220;PCAOB&#8221;), the consolidated financial statements of the Company as of and for the year ended December 31, 2023, and our report dated February 15, 2024 expressed an unqualified opinion on those financial statements.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Basis for opinion</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 Internal Control Over Financial Reporting ("Management's Report"). 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></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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 included obtaining an understanding of internal control over financial reporting, assessing the risk that a material weakness exists, testing and evaluating the design and operating effectiveness of internal control based on the assessed risk, and performing such other procedures as we considered necessary in the circumstances. We believe that our audit provides a reasonable basis for our opinion.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Our audit of, and opinion on, the Company&#8217;s internal control over financial reporting does not include the internal control over financial reporting of Moritex Corporation, a wholly-owned subsidiary, whose financial statements reflect total assets and revenues constituting five and one percent, respectively, of the related consolidated financial statement amounts as of and for the year ended December 31, 2023. As indicated in Management&#8217;s Report, Moritex Corporation was acquired during 2023. Management&#8217;s assertion on the effectiveness of the Company&#8217;s internal control over financial reporting excluded internal control over financial reporting of Moritex Corporation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">Definition and limitations of internal control over financial reporting</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">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></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">/s/ <ix:nonNumeric contextRef="c-1" name="dei:AuditorName" id="f-1547">GRANT THORNTON LLP</ix:nonNumeric></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"><ix:nonNumeric contextRef="c-1" name="dei:AuditorLocation" id="f-1548">Boston, Massachusetts</ix:nonNumeric></span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">February&#160;15, 2024 </span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">73</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_217"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9B: OTHER INFORMATION</span></div><ix:nonNumeric contextRef="c-303" name="ecd:MtrlTermsOfTrdArrTextBlock" id="f-1549" escape="true"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2023, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of the Exchange Act Rule 10b5-1(c):</span></div><div style="text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">On <ix:nonNumeric contextRef="c-303" name="ecd:TrdArrAdoptionDate" id="f-1550">December 12, 2023</ix:nonNumeric>, <ix:nonNumeric contextRef="c-303" name="ecd:TrdArrIndName" id="f-1551">Joerg Kuechen</ix:nonNumeric>, the <ix:nonNumeric contextRef="c-303" name="ecd:TrdArrIndTitle" id="f-1552">Chief Technology Officer</ix:nonNumeric> of the Company, <ix:nonNumeric contextRef="c-303" name="ecd:Rule10b51ArrAdoptedFlag" format="ixt:fixed-true" id="f-1553">adopted</ix:nonNumeric> a trading arrangement for the sale of shares of the Company&#8217;s common stock (a &#8220;Rule 10b5-1 Trading Plan&#8221;). Mr. Kuechen&#8217;s Rule 10b5-1 Trading Plan, which has a term ending on December 6, 2024, provides for the exercise of vested stock options to acquire up to <ix:nonFraction unitRef="shares" contextRef="c-304" decimals="INF" name="ecd:TrdArrSecuritiesAggAvailAmt" format="ixt:num-dot-decimal" scale="0" id="f-1554">202,556</ix:nonFraction> shares of common stock and the sale of up to <ix:nonFraction unitRef="shares" contextRef="c-305" decimals="INF" name="ecd:TrdArrSecuritiesAggAvailAmt" format="ixt:num-dot-decimal" scale="0" id="f-1555">215,818</ix:nonFraction> shares of common stock pursuant to the terms of the plan. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2023, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company <ix:nonNumeric contextRef="c-186" name="ecd:NonRule10b51ArrAdoptedFlag" format="ixt:fixed-false" id="f-1556">adopted</ix:nonNumeric> or <ix:nonNumeric contextRef="c-186" name="ecd:NonRule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1557"><ix:nonNumeric contextRef="c-186" name="ecd:Rule10b51ArrTrmntdFlag" format="ixt:fixed-false" id="f-1558">terminated</ix:nonNumeric></ix:nonNumeric> a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as defined in Item 408 of Regulation S-K.</span></div></ix:nonNumeric><div id="i2dd498fe86504703b8f8c7a0acf0bd51_220"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM 9C: DISCLOSURE REGARDING FOREIGN JURISDICTIONS THAT PREVENT INSPECTIONS</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Not Applicable</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_223"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART III</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_226"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;10:&#160;DIRECTORS, EXECUTIVE OFFICERS, AND CORPORATE GOVERNANCE</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to Directors and Executive Officers of the Company and the other matters required by Item&#160;10 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on May 1, 2024 and is incorporated herein by reference.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has adopted a Code of Business Conduct and Ethics covering all employees, which is available, free of charge, on the Company&#8217;s website, </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">www.cognex.com</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">under "Company-Investor Information-Governance Documents". The Company intends to disclose on its website any amendments to or waivers of the Code of Business Conduct and Ethics on behalf of the Company&#8217;s directors and executive officers that would otherwise be required to be disclosed under the rules of the SEC or The NASDAQ Stock Market LLC.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_229"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;11:&#160;EXECUTIVE COMPENSATION</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to executive compensation and the other matters required by Item&#160;11 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on May&#160;1, 2024 and is incorporated herein by reference.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_232"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;12:&#160;SECURITY OWNERSHIP OF CERTAIN BENEFICIAL OWNERS AND MANAGEMENT AND RELATED STOCKHOLDER MATTERS</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to security ownership and the other matters required by Item&#160;12 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on May&#160;1, 2024 and is incorporated herein by reference.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table provides information as of December&#160;31, 2023 regarding shares of common stock that may be issued under the Company&#8217;s existing equity compensation plans:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:27.639%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:18.694%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.979%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.187%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:21.187%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:1.981%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Plan Category</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Number&#160;of&#160;securities&#160;to&#160;be<br/>issued upon exercise of<br/>outstanding&#160;options, warrants and rights, and vesting of restricted stock units</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Weighted-average&#160;exercise<br/>price&#160;of&#160;outstanding&#160;options, restricted stock units, warrants,&#160;and&#160;rights</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Number&#160;of&#160;securities<br/>remaining&#160;available&#160;for&#160;future<br/>issuance under equity<br/>compensation plans<br/>(excluding&#160;securities&#160;reflected<br/>in column (a))</span></td><td colspan="3" style="padding:0 1pt"/></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(a)</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Equity compensation plans approved by shareholders (3)</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">10,516,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">51.22&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">7,978,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Equity compensation plans not approved by shareholders (3)</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">10,516,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">51.22</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">7,978,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:0 1pt"/></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">Includes shares to be issued upon exercise of outstanding options under the Company&#8217;s 2023 Stock Option and Incentive Plan, the 2007 Stock Option and Incentive Plan, and subsequent to shareholder approval, the 2001 General Stock Option Plan, as amended and restated.</span></div><div style="padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">Includes shares remaining available for future issuance under the Company&#8217;s 2023 Stock Option and Incentive Plan.  This amount is subject to adjustment from "Carryover Shares" as defined in Note 16: Stock-Based Compensation.</span></div><div style="padding-left:36pt;text-indent:-27pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%">(3)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:17.24pt">All references made to share or per share amounts have been adjusted to reflect the two-for-one stock split which occurred in the fourth quarter of 2017.</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">74</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The 2001 General Stock Option Plan was originally adopted by the Board of Directors in December 2001 without shareholder approval. In December 2011, this plan received shareholder approval for an amendment and restatement of the plan. This plan provided for the granting of nonqualified stock options and incentive stock options to any employee who was actively employed by the Company and was not an officer or director of the Company. The maximum number of shares of common stock that were available for grant under this plan was 38,440,000 shares. All option grants had an exercise price per share that was no less than the fair market value per share of the Company&#8217;s common stock on the grant date and had a term that was no longer than ten years from the grant date. 32,544,411 stock options were granted under the 2001 General Stock Option Plan. With shareholder approval of the 2023 Stock Option and Incentive Plan in May 2023, no further shares may be granted from the 2001 General Stock Option Plan.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_235"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;13:&#160;CERTAIN RELATIONSHIPS AND RELATED TRANSACTIONS, AND DIRECTOR INDEPENDENCE</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to certain relationships and related transactions and the other matters required by Item&#160;13 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on May&#160;1, 2024 and is incorporated herein by reference.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_238"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;14:&#160;PRINCIPAL ACCOUNTING FEES AND SERVICES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information with respect to principal accounting fees and services and the other matters required by Item&#160;14 shall be included in the Company&#8217;s definitive Proxy Statement for the Annual Meeting of Shareholders to be held on May&#160;1, 2024 and is incorporated herein by reference.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_241"></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">PART IV</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_244"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;15:&#160;EXHIBITS AND FINANCIAL STATEMENT SCHEDULES</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Financial Statements</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements are included in Part II &#8211; Item&#160;8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Financial Statement Schedule</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial Statement Schedule II is included in Part II &#8211; Item&#160;8 of this Annual Report on Form 10-K.</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Other schedules are omitted because of the absence of conditions under which they are required or because the required information is provided in the consolidated financial statements or notes thereto.</span></div><div style="margin-top:5pt;padding-left:54pt;text-indent:-54pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(3)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:41.78pt">Exhibits</span></div><div style="margin-top:5pt;padding-left:90pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Exhibits filed as part of this Annual Report on Form 10-K are listed in the Exhibit Index, immediately preceding the signature page hereto.</span></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_247"></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">ITEM&#160;16:&#160;FORM 10-K SUMMARY</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Not applicable</span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">75</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_250"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="-sec-extract:summary;margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT INDEX</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:14.149%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:82.918%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">EXHIBIT&#160;NUMBER</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3A</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit31.htm">Restated Articles of Organization of Cognex Corporation effective June&#160;27, 1989, as amended through May 5, 2016 (incorporated by reference to Exhibit 3.1 of Cognex's Quarterly Report on Form 10-Q for the quarter ended July 3, 2016 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3B</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120516000035/exhibit32.htm">Articles of Amendment to the Articles of Organization of Cognex Corporation establishing Series E Junior Participating Preferred Stock (incorporated by reference to Exhibit 3.2 to Cognex's Quarterly Report on Form 10-Q for the quarter ended July 3, 2016 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3C</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex42.htm">Articles of Amendment to Restated Articles of Organization of Cognex Corporation, effective May 2, 2018 (incorporated by reference to Exhibit 4.2 of Cognex's Registration Statement on Form S-8 [Registration No. 333-224716])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3D</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120519000006/cgnxarticlesofamendment.htm">Articles of Amendment to Restated Articles of Organization of Cognex Corporation, effective April 26, 2019 (incorporated by reference to Exhibit 3.4 of Cognex's Quarterly Report on Form 10-Q for the quarter ended March 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3E</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">Amended and Restated By-laws of Cognex Corporation, effective August 2, 2023 (incorporat</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">ed</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm"> by reference to Exhibit 3.1 of Cognex's </a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">Current</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm"> Report on Form</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm"> 8-K</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">, as filed wit</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm">h the SEC on August 3, 2023</a><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000115752323001236/a53505543_ex31.htm"> [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4A</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Specimen Certificate for Shares of Common Stock (incorporated by reference to Exhibit 4 to Cognex's Registration Statement on Form S-1 [Registration No. 33-29020])</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4B</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120520000002/cgnxexhibit4bdescription.htm">Description of Capital Stock (incorporated by reference to Exhibit 4B of Cognex's Annual Report on Form 10-K for the year ended December 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10A *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312518154489/d581899dex991.htm">Cognex Corporation 2001 General Stock Option Plan, as amended and restated (incorporated by reference to Exhibit 99.1 to Cognex's Registration Statement on Form S-8 [Registration No. 333-224716])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10B *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10h.htm">Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (incorporated by reference to Exhibit 10H of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10C *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312513048665/d434050dex10k.htm">Form of Letter Agreement between Cognex Corporation and each of Patrick A. Alias and Anthony Sun (incorporated by reference to Exhibit 10K of Cognex's Annual Report on Form 10-K for the year ended December 31, 2012 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10D *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10r.htm">Form of Indemnification Agreement with each of the Directors of Cognex Corporation (incorporated by reference to Exhibit 10R of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10E *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10s.htm">Employment Agreement, dated June 17, 2008, by and between Cognex Corporation and Robert Willett (incorporated by reference to Exhibit 10S of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10F *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10t.htm">Amendment to Employment Agreement with Robert Willett, dated November 14, 2008 (incorporated by reference to Exhibit 10T of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10G *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000119312514051054/d632893dex10u.htm">Form of Stock Option Agreement (Non-Qualified) under 2007 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10U of Cognex's Annual Report on Form 10-K for the year ended December 31, 2013 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10H *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10o.htm">Form of Stock Option Agreement under 2001 General Stock Option Plan (incorporated by reference to Exhibit 10O of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10I *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120515000003/cgnx-20141231xexhibit10s.htm">Stock Option Agreements with Robert Willett dated November 3, 2014 (incorporated by reference to Exhibit 10S of Cognex's Annual Report on Form 10-K for the year ended December 31, 2014 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10J *<br/></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="http://www.sec.gov/Archives/edgar/data/851205/000085120518000004/cgnx-20171231xexhibit10q.htm">Summary of Cognex Annual Bonus Program (incorporated by reference to Exhibit 10Q of Cognex's Annual Report on Form 10-K for the year ended December 31, 2017 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10K *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120520000002/cgnxformofrsuagreement.htm">Form of Restricted Stock Unit Agreement under the 2007 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10U of Cognex's Annual Report on Form 10-K for the year ended December 31, 2019 [File No. 1-34218])</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10L *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000085120522000008/cgnx-20211231xexhibit10l.htm">Form of Performance Restricted Stock Unit Agreement under the 2007 Stock Option and Incentive Plan ((incorporated by reference to Exhibit 10L of Cognex&#8217;s Annual Report on Form 10-K for the year ended December 31, 2021 [File No. 1-34218]))</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10M *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex101.htm">Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.1 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023)</a></span></div></td></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">76</span></div></div></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div style="-sec-extract:summary"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:14.149%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:82.918%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10N *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex102.htm">Form of Non-Qualified Stock Option Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.2 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10O *</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex103.htm">Form of Restricted Stock Unit Award Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.3 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10P *</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="https://www.sec.gov/Archives/edgar/data/851205/000119312523135029/d255047dex104.htm">Form of Performance Restricted Stock Unit Award Agreement under the Cognex Corporation 2023 Stock Option and Incentive Plan (incorporated by reference to Exhibit 10.1 of Cognex's Current Report on Form 8-K, as filed with the SEC on May 4, 2023)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit21.htm">Subsidiaries of the registrant (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23.1</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit231.htm">Consent of Grant Thornton LLP (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit311.htm">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CEO) (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31.2</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit312.htm">Certification pursuant to Section 302 of the Sarbanes-Oxley Act of 2002 (CFO) (filed herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.1</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit321.htm">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CEO) (furnished herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32.2</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit322.htm">Certification pursuant to Section 906 of the Sarbanes-Oxley Act of 2002 (CFO) (furnished herewith)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">97</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"><a style="-sec-extract:exhibit;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline" href="cgnx-20231231xexhibit97.htm">Policy Relating to Recovery of Erroneously Awarded Compensation (as required by applicable listing standards adopted pursuant to 17 CFR 240.10D-1)</a></span></div></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.SCH</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.CAL</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Calculation Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.LAB</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Label Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.PRE</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Presentation Linkbase Document (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">101.DEF</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inline XBRL Taxonomy Extension Schema Document (filed herewith)<br/></span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">104</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"/><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cover Page Interactive Data File (formatted as Inline XBRL with applicable taxonomy extension information contained in Exhibits 101*.) (filed herewith)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:0 1pt"/><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">* Indicated management contract or compensatory plan or arrangement</span></td></tr></table></div><div><span><br/></span></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="-sec-extract:summary;text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">77</span></div></div></div><div id="i2dd498fe86504703b8f8c7a0acf0bd51_253"></div><hr style="page-break-after:always"/><div style="min-height:42.75pt;width:100%"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline"><a style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;text-decoration:underline" href="#i2dd498fe86504703b8f8c7a0acf0bd51_7">Table of Contents</a></span></div></div><div style="margin-top:9pt;text-align:center"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">SIGNATURES</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of Section&#160;13 or 15(d) of the Securities Exchange Act of 1934, the registrant has duly caused this report to be signed on its behalf by the undersigned, thereunto duly authorized on the 15th day of February 2024.</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:511.50pt"><tr><td style="width:1.0pt"/><td style="width:40.00pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:1.75pt"/><td style="width:1.0pt"/><td style="width:1.0pt"/><td style="width:463.75pt"/><td style="width:1.0pt"/></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">COGNEX CORPORATION</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:14pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By:</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</span></td></tr><tr style="height:14pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer</span></td></tr></table></div><div style="text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Pursuant to the requirements of the Securities Exchange Act of 1934, this report has been signed below by the following persons on behalf of the registrant and in the capacities and on the dates indicated.</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"/><td style="width:28.078%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:49.926%"/><td style="width:0.1%"/><td style="width:0.1%"/><td style="width:0.533%"/><td style="width:0.1%"/><td style="width:1.0%"/><td style="width:17.230%"/><td style="width:0.1%"/></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Signature</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Title</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Date</span></td></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Robert J. Willett</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President, Chief Executive Officer, and Director (principal executive officer)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Paul D. Todgham</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer (principal financial&#160;and&#160;accounting&#160;officer)</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Paul D. Todgham</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Sachin Lawande</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sachin Lawande</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;John Lee</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">John Lee</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Angelos Papadimitriou</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Angelos Papadimitriou</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Dianne Parrotte</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Dianne Parrotte</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Marjorie Sennett</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Marjorie Sennett</span></div></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:15pt"><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">/s/&#160;&#160;&#160;&#160;Anthony Sun</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" rowspan="2" style="padding:2px 1pt;text-align:left;vertical-align:middle"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Director</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</span></td></tr><tr style="height:15pt"><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Anthony Sun</span></td><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/><td colspan="3" style="padding:0 1pt"/></tr><tr style="height:3pt"><td colspan="3" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/><td colspan="6" style="padding:0 1pt"/></tr></table></div><div style="height:42.75pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%">78</span></div></div></div></body></html>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-21
<SEQUENCE>2
<FILENAME>cgnx-20231231xexhibit21.htm
<DESCRIPTION>EX-21
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="ief72c73bc4f349aaaf7e20ada61a0f9d_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 21</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">COGNEX CORPORATION</font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:120%">SUBSIDIARIES OF THE REGISTRANT</font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">As of December 31, 2023, the registrant had the following direct and indirect subsidiaries, the financial statements of which are all included in the consolidated financial statements of the registrant&#58;</font><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"><tr><td style="width:1.0%"></td><td style="width:51.898%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.045%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.757%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:36pt;padding-right:36pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">NAME OF SUBSIDIARY</font></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:16.87pt;padding-right:16.87pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">STATE&#47;COUNTRY OF INCORPORATION</font></div></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">PERCENT OWNERSHIP</font></div></td></tr><tr><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Canada, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Canada Technology, Inc.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex EnShape GmbH</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Europe B.V.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Netherlands</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Europe, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Foreign Sales Corporation</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Barbados</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Germany, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Massachusetts</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Germany Aachen GmbH</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Goruntu Sistemleri Satis ve Ticaret Limited Sirketi</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Turkey</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Hungary Kft.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hungary</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex International, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Ireland Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex K.K.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Korea Co., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">South Korea</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex, Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Malaysia Sdn. Bhd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Malaysia</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Mexico S. de R.L. de C.V. </font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Mexico</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Poland sp. z.o.o.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Poland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Representacao Comercial E Participacoes Ltda.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Brazil</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Sensors India Private Limited</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">India</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Services, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Service Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Ireland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Singapore, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Switzerland GmbH</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Switzerland</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Taiwan, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt;text-indent:-9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Technology and Investment LLC</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex UK, Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">United Kingdom</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vietnam Company Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vietnam</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision Inspection System (Shanghai) Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">China</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision Spain, S.L.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Spain</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Vision (Thailand) Limited</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Thailand</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Sualab (Suzhou) Co., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">China</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vision Drive, Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Delaware</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">One Vision Drive LLC </font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Massachusetts</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">SAC Sirius Advanced Cybernetics GmbH</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Germany</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cognex Singapore Manufacturing PTE. Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Singapore</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 5.5pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MVHC Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Cayman Islands</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MV Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hong Kong</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MV Japan Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Corporation</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Japan</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">MORITEX North America Inc.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">California</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Asia Co., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Hong Kong</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Technologies (Shenzhen) Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">China</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Asia Pacific PTE., Ltd.</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Singapore</font></div></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Moritex Vietnam Co., Ltd.</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div style="margin-bottom:4pt;padding-left:18pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">Vietnam</font></div></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">100%</font></td></tr></table></div><div style="padding-left:9pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-23.1
<SEQUENCE>3
<FILENAME>cgnx-20231231xexhibit231.htm
<DESCRIPTION>EX-23.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i32e8637dc9fc4f15af740e1f35daa672_1"></div><div style="min-height:72pt;width:100%"><div style="margin-bottom:10pt;text-align:right"><font><br></font></div><div style="margin-bottom:10pt;text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:138%">EXHIBIT 23.1</font></div><div><font><br></font></div></div><div style="margin-bottom:2pt;padding-left:9pt;text-align:justify"><font><br></font></div><div style="margin-bottom:10pt;text-align:right"><font><br></font></div><div style="margin-bottom:4pt;padding-left:4.5pt;padding-right:4.5pt;text-align:center"><font><br></font></div><div style="margin-bottom:4pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">CONSENT OF INDEPENDENT REGISTERED PUBLIC ACCOUNTING FIRM</font></div><div style="margin-bottom:4pt;padding-left:9pt;text-align:justify"><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">We have issued our reports dated February 15, 2024, with respect to the consolidated financial statements and internal control over financial reporting included in the Annual Report of Cognex Corporation on Form 10-K for the year ended December 31, 2023. We consent to the incorporation by reference of said reports in the Registration Statements of Cognex Corporation on Forms S-8, including post-effective amendments (File No. 333-271685, 333-150315&#59; 333-206081, 333-224716, and 333-100709). </font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">&#47;s&#47; GRANT THORNTON LLP</font></div><div><font><br></font></div><div style="text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:127%">Boston</font><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:127%">, Massachusetts</font></div><div style="margin-bottom:4pt;text-align:justify"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">February&#160;15, 2024 </font></div><div style="padding-left:9pt"><font><br></font></div><div style="height:72pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.1
<SEQUENCE>4
<FILENAME>cgnx-20231231xexhibit311.htm
<DESCRIPTION>EX-31.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i05d5595a64004f5b8a6ca92f253728e9_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 31.1</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">CERTIFICATION</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Robert J. Willett, certify that&#58;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:2.858%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:86.438%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">I have reviewed this Annual Report on Form 10-K of Cognex Corporation&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions)&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</font></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.807%"><tr><td style="width:1.0%"></td><td style="width:4.879%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.841%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.042%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.085%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.708%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.533%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.547%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:38.365%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer<br>(Principal Executive Officer)</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-31.2
<SEQUENCE>5
<FILENAME>cgnx-20231231xexhibit312.htm
<DESCRIPTION>EX-31.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="ic52c90ac126a43d486c62675066cf7f3_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 31.2</font></div><div style="text-align:right"><font><br></font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">CERTIFICATION</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">I, Paul D. Todgham, certify that&#58;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:2.858%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.152%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:86.438%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">I have reviewed this Annual Report on Form 10-K of Cognex Corporation&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Based on my knowledge, this report does not contain any untrue statement of a material fact or omit to state a material fact necessary to make the statements made, in light of the circumstances under which such statements were made, not misleading with respect to the period covered by this report&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Based on my knowledge, the financial statements, and other financial information included in this report, fairly present in all material respects the financial condition, results of operations and cash flows of the registrant as of, and for, the periods presented in this report&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I are responsible for establishing and maintaining disclosure controls and procedures (as defined in Exchange Act Rules 13a-15(e) and 15d-15(e)) and internal control over financial reporting (as defined in Exchange Act Rules 13a-15(f) and 15d-15(f)) for the registrant and have&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Designed such disclosure controls and procedures, or caused such disclosure controls and procedures to be designed under our supervision, to ensure that material information relating to the registrant, including its consolidated subsidiaries, is made known to us by others within those entities, particularly during the period in which this report is being prepared&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Designed such internal control over financial reporting, or caused such internal control over financial reporting to be designed under our supervision, to provide reasonable assurance regarding the reliability of financial reporting and the preparation of financial statements for external purposes in accordance with generally accepted accounting principles&#59;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(c)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Evaluated the effectiveness of the registrant&#8217;s disclosure controls and procedures and presented in this report our conclusions about the effectiveness of the disclosure controls and procedures, as of the end of the period covered by this report based on such evaluation&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(d)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Disclosed in this report any change in the registrant&#8217;s internal control over financial reporting that occurred during the registrant&#8217;s most recent fiscal quarter (the registrant&#8217;s fourth fiscal quarter in the case of an annual report) that has materially affected, or is reasonably likely to materially affect, the registrant&#8217;s internal control over financial reporting&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5</font></td><td colspan="6" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">The registrant&#8217;s other certifying officer(s) and I have disclosed, based on our most recent evaluation of internal control over financial reporting, to the registrant&#8217;s auditors and the audit committee of the registrant&#8217;s board of directors (or persons performing the equivalent functions)&#58;</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(a)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">All significant deficiencies and material weaknesses in the design or operation of internal control over financial reporting which are reasonably likely to adversely affect the registrant&#8217;s ability to record, process, summarize and report financial information&#59; and</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(b)</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Any fraud, whether or not material, that involves management or other employees who have a significant role in the registrant&#8217;s internal control over financial reporting.</font></td></tr></table></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:4.791%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.386%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.009%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.023%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.170%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:39.551%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Paul D. Todgham</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Paul D. Todgham</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer<br>(Principal Financial Officer)</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.1
<SEQUENCE>6
<FILENAME>cgnx-20231231xexhibit321.htm
<DESCRIPTION>EX-32.1
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i21b06a7233314a80aae858acc64cd62d_1"></div><div style="min-height:72pt;width:100%"><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 32.1*</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18 U.S.C. 1350,</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The undersigned officer of Cognex Corporation (the &#8220;Company&#8221;) hereby certifies to his knowledge that the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2023 (the &#8220;Report&#8221;), as filed with the Securities and Exchange Commission on the date hereof, fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934, as amended, and that the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.929%"><tr><td style="width:1.0%"></td><td style="width:4.933%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:30.121%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.062%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.123%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.815%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:4.329%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.554%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:37.063%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Robert J. Willett</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">President and Chief Executive Officer         (Principal Executive Officer)</font></td></tr></table></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:0.1%"></td><td style="width:2.142%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:96.558%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This certification shall not be deemed &#8220;filed&#8221; for purposes of Section&#160;18 of the Securities Exchange Act of 1934, or otherwise subject to the liability of that section, nor shall it be deemed to be incorporated by reference into any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934.</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-32.2
<SEQUENCE>7
<FILENAME>cgnx-20231231xexhibit322.htm
<DESCRIPTION>EX-32.2
<TEXT>
<html><head>
<!-- Document created using Wdesk -->
<!-- Copyright 2024 Workiva -->
<title>Document</title></head><body><div id="i52072cd3c815448cbdf8a7ce808a0132_1"></div><div style="min-height:72pt;width:100%"><div><font><br></font></div><div style="text-align:right"><font><br></font></div><div style="text-align:right"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%">EXHIBIT 32.2*</font></div><div><font><br></font></div></div><div style="text-align:right"><font><br></font></div><div style="margin-top:9pt;text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">CERTIFICATION PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">18 U.S.C. 1350,</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">AS ADOPTED PURSUANT TO</font></div><div style="text-align:center"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">SECTION 906 OF THE SARBANES-OXLEY ACT OF 2002</font></div><div style="margin-top:9pt"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The undersigned officer of Cognex Corporation (the &#8220;Company&#8221;) hereby certifies to his knowledge that the Company&#8217;s Annual Report on Form 10-K for the year ended December&#160;31, 2023 (the &#8220;Report&#8221;), as filed with the Securities and Exchange Commission on the date hereof, fully complies with the requirements of Section&#160;13(a) or 15(d), as applicable, of the Securities Exchange Act of 1934, as amended, and that the information contained in the Report fairly presents, in all material respects, the financial condition and results of operations of the Company.</font></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:5.195%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:29.207%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:1.996%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.999%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:3.145%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:39.460%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Date&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">February 15, 2024</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">By&#58;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#47;s&#47; Paul D. Todgham</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Paul D. Todgham</font></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Senior Vice President of Finance and Chief Financial Officer (Principal Financial Officer)</font></td></tr></table></div><div><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">&#160;</font></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:0.1%"></td><td style="width:2.142%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:96.558%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">*</font></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"><font style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">This certification shall not be deemed &#8220;filed&#8221; for purposes of Section&#160;18 of the Securities Exchange Act of 1934, or otherwise subject to the liability of that section, nor shall it be deemed to be incorporated by reference into any filing under the Securities Act of 1933 or the Securities Exchange Act of 1934.</font></td></tr></table></div><div style="height:45pt;position:relative;width:100%"><div style="bottom:0;position:absolute;width:100%"><div style="text-align:center"><font><br></font></div></div></div></body></html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-97
<SEQUENCE>8
<FILENAME>cgnx-20231231xexhibit97.htm
<DESCRIPTION>EX-97
<TEXT>
<HTML>
<HEAD><!-- Document generated by Workiva Inc -->
<TITLE>cgnx-20231231xexhibit97</TITLE>
</HEAD>
<BODY bgcolor="white">
<DIV align="center">
<DIV style="margin-left:1em;width:1055;"><!-- cgnx-20231231xexhibit97001.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnx-20231231xexhibit97001.jpg" title="slide1" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">  COGNEX CORPORATION  COMPENSATION RECOVERY POLICY  Adopted as of August 2, 2023  Cognex Corporation, a Massachusetts corporation (the &#8220;Company&#8221;), has adopted a Compensation  Recovery Policy (this &#8220;Policy&#8221;) as described below.    1. Overview  The Policy sets forth the circumstances and procedures under which the Company shall recover Erroneously  Awarded Compensation from Covered Persons (as defined below) in accordance with rules issued by the  United States Securities and Exchange Commission (the &#8220;SEC&#8221;) under the Securities Exchange Act of  1934, as amended (the &#8220;Exchange Act&#8221;), and the Nasdaq Stock Market. Capitalized terms used and not  otherwise defined herein shall have the meanings given in Section 3 below.   2. Compensation Recovery Requirement  In the event the Company is required to prepare a Material Financial Restatement, the Company shall  recover reasonably promptly all Erroneously Awarded Compensation with respect to such Material  Financial Restatement.   3. Definitions  a. &#8220;Applicable Recovery Period&#8221; means the three completed fiscal years immediately preceding  the Restatement Date for a Material Financial Restatement. In addition, in the event the  Company has changed its fiscal year: (i) any transition period of less than nine months  occurring within or immediately following such three completed fiscal years shall also be part  of such Applicable Recovery Period and (ii) any transition period of nine to 12 months will be  deemed to be a completed fiscal year.  b. &#8220;Applicable Rules&#8221; means any rules or regulations adopted by the Exchange pursuant to Rule  10D-1 under the Exchange Act and any applicable rules or regulations adopted by the SEC  pursuant to Section 10D of the Exchange Act.  c. &#8220;Board&#8221; means the Board of Directors of the Company.  d. &#8220;Committee&#8221; means the Compensation Committee of the Board or, in the absence of such  committee, a majority of independent directors serving on the Board.  e. &#8220;Covered Person&#8221; means any Executive Officer and any other person designated by the Board  or the Committee as being subject to this Policy. A person&#8217;s status as a Covered Person with  respect to Erroneously Awarded Compensation shall be determined as of the time of receipt of  such Erroneously Awarded Compensation regardless of the person&#8217;s current role or status with  the Company (e.g., if a person began service as an Executive Officer after the beginning of an  Applicable Recovery Period, that person would not be considered a Covered Person with  respect to Erroneously Awarded Compensation received before the person began service as an  Executive Officer, but would be considered a Covered Person with respect to Erroneously  Awarded Compensation received after the person began service as an Executive Officer where  </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnx-20231231xexhibit97002.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnx-20231231xexhibit97002.jpg" title="slide2" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">  2    such person served as an Executive Officer at any time during the performance period for such  Erroneously Awarded Compensation).  f. &#8220;Effective Date&#8221; means October 2, 2023.   g. &#8220;Erroneously Awarded Compensation&#8221; means the amount of any Incentive-Based  Compensation received by a Covered Person on or after the Effective Date and during the  Applicable Recovery Period that exceeds the amount of compensation that otherwise would  have been received by the Covered Person had such compensation been determined based on  the restated amounts in a Material Financial Restatement, computed without regard to any taxes  paid. Calculation of Erroneously Awarded Compensation with respect to Incentive-Based  Compensation based on stock price or total shareholder return, where the amount of  Erroneously Awarded Compensation is not subject to mathematical recalculation directly from  the information in a Material Financial Restatement, shall be based on a reasonable estimate of  the effect of the Material Financial Restatement on the stock price or total shareholder return  during the period for which the Incentive-Based Compensation was received, and the Company  shall maintain documentation of the determination of such reasonable estimate and provide  such documentation to the Exchange in accordance with the Applicable Rules. Incentive-Based  Compensation is deemed received, earned or vested when the Financial Reporting Measure is  attained, not when the actual payment, grant or vesting occurs.  h. &#8220;Exchange&#8221; means the Nasdaq Stock Market LLC.  i. An &#8220;Executive Officer&#8221; means any person who served the Company in any of the following  roles at any time during the performance period applicable to Incentive-Based Compensation  such person received during service in such role: the president, principal financial officer,  principal accounting officer (or if there is no such accounting officer, the controller), any vice  president in charge of a principal business unit, division, or function (such as sales,  administration, or finance), any other officer who performs a policy making function, or any  other person who performs similar policy making functions for the Company. Executive  officers of parents or subsidiaries of the Company may be deemed executive officers of the  Company if they perform such policy making functions for the Company.  j. &#8220;Financial Reporting Measures&#8221; mean measures that are determined and presented in  accordance with the accounting principles used in preparing the Company&#8217;s financial  statements, any measures that are derived wholly or in part from such measures (including, for  example, a non-GAAP financial measure), and stock price and total shareholder return.    k. &#8220;Incentive-Based Compensation&#8221; means any compensation provided, directly or indirectly, by  the Company or any of its subsidiaries that is granted, earned, or vested based, in whole or in  part, upon the attainment of a Financial Reporting Measure.   l. A &#8220;Material Financial Restatement&#8221; means a restatement of previously issued financial  statements of the Company due to the material noncompliance of the Company with any  financial reporting requirement under the securities laws, including any required restatement  to correct an error in previously-issued financial statements that is material to the previously- issued financial statements or that would result in a material misstatement if the error were  corrected in the current period or left uncorrected in the current period.   </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnx-20231231xexhibit97003.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnx-20231231xexhibit97003.jpg" title="slide3" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">  3    m. &#8220;Restatement Date&#8221; means, with respect to a Material Financial Restatement, the earlier to  occur of: (i) the date the Board or the Audit Committee of the Board concludes, or reasonably  should have concluded, that the Company is required to prepare the Material Financial  Restatement or (ii) the date a court, regulator or other legally authorized body directs the  Company to prepare the Material Financial Restatement.  4. Exception to Compensation Recovery Requirement  The Company may elect not to recover Erroneously Awarded Compensation pursuant to this Policy if the  Committee determines that recovery would be impracticable, and one or more of the following conditions,  together with any further requirements set forth in the Applicable Rules, are met: (i) the direct expense paid  to a third party, including outside legal counsel, to assist in enforcing this Policy would exceed the amount  to be recovered, and the Company has made a reasonable attempt to recover such Erroneously Awarded  Compensation, documented such attempt and provided such documentation to the Exchange in accordance  with the Applicable Rules; or (ii) recovery would likely cause an otherwise tax-qualified retirement plan,  under which benefits are broadly available to employees of the Company, to fail to be so qualified under  applicable regulations.    5. Tax Considerations  To the extent that, pursuant to this Policy, the Company is entitled to recover any Erroneously Awarded  Compensation that is received by a Covered Person, the gross amount received (i.e., the amount the Covered  Person received, or was entitled to receive, before any deductions for tax withholding or other payments)  shall be returned by the Covered Person.   6. Method of Compensation Recovery  The Committee shall determine, in its sole discretion, the method for recovering Erroneously Awarded  Compensation hereunder, which may include, without limitation, any one or more of the following:  a. requiring reimbursement of cash Incentive-Based Compensation previously paid;  b. seeking recovery of any gain realized on the vesting, exercise, settlement, sale, transfer or  other disposition of any equity-based awards;   c. cancelling or rescinding some or all outstanding vested or unvested equity-based awards;   d. adjusting or withholding from unpaid compensation or other set-off;  e. cancelling or offsetting against planned future grants of equity-based awards; and/or   f. any other method permitted by applicable law or contract.  Notwithstanding the foregoing, a Covered Person will be deemed to have satisfied such person&#8217;s obligation  to return Erroneously Awarded Compensation to the Company if such Erroneously Awarded Compensation  is returned in the exact same form in which it was received; provided that equity withheld to satisfy tax  obligations will be deemed to have been received in cash in an amount equal to the tax withholding payment  made.    </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
<!-- cgnx-20231231xexhibit97004.jpg -->
<DIV style="padding-top:2em;">
<IMG src="cgnx-20231231xexhibit97004.jpg" title="slide4" width="1055" height="1365">
<DIV><FONT size="1" style="font-size:1pt;color:white">  4    7.  Policy Interpretation  This Policy shall be interpreted in a manner that is consistent with the Applicable Rules and any other  applicable law. The Committee shall take into consideration any applicable interpretations and guidance of  the SEC in interpreting this Policy, including, for example, in determining whether a financial restatement  qualifies as a Material Financial Restatement hereunder. To the extent the Applicable Rules require  recovery of Incentive-Based Compensation in additional circumstances besides those specified above,  nothing in this Policy shall be deemed to limit or restrict the right or obligation of the Company to recover  Incentive-Based Compensation to the fullest extent required by the Applicable Rules.   8. Policy Administration  This Policy shall be administered by the Committee. The Committee shall have such powers and authorities  related to the administration of this Policy as are consistent with the governing documents of the Company  and applicable law. The Committee shall have full power and authority to take, or direct the taking of, all  actions and to make all determinations required or provided for under this Policy and shall have full power  and authority to take, or direct the taking of, all such other actions and make all such other determinations  not inconsistent with the specific terms and provisions of this Policy that the Committee deems to be  necessary or appropriate to the administration of this Policy.  The interpretation and construction by the  Committee of any provision of this Policy and all determinations made by the Committee under this policy  shall be final, binding and conclusive.    9. Compensation Recovery Repayments not Subject to Indemnification  Notwithstanding anything to the contrary set forth in any agreement with, or the organizational documents  of, the Company or any of its subsidiaries, Covered Persons are not entitled to indemnification for  Erroneously Awarded Compensation or for any claim or losses arising out of or in any way related to  Erroneously Awarded Compensation recovered under this Policy.  </FONT></DIV>
<P><HR noshade><P>
<DIV style="page-break-before:always;">&nbsp;</DIV>
</DIV>
</DIV>
</DIV>
</BODY>
</HTML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.SCH
<SEQUENCE>9
<FILENAME>cgnx-20231231.xsd
<DESCRIPTION>XBRL TAXONOMY EXTENSION SCHEMA DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:277675e4-6a1f-436c-b28b-2310559dede0,g:0aa79d6e-08a3-463e-9769-9d2f36bbe043-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:cgnx="http://cognex.com/20231231" xmlns:xbrli="http://www.xbrl.org/2003/instance" xmlns:dtr-types1="http://www.xbrl.org/dtr/type/2020-01-21" xmlns:dtr-types="http://www.xbrl.org/dtr/type/2022-03-31" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://cognex.com/20231231">
  <xs:import namespace="http://fasb.org/srt/2023" schemaLocation="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd"/>
  <xs:import namespace="http://fasb.org/us-gaap/2023" schemaLocation="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd"/>
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.xbrl.org/2003/xlink-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/instance" schemaLocation="http://www.xbrl.org/2003/xbrl-instance-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/2003/linkbase" schemaLocation="http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2020-01-21" schemaLocation="https://www.xbrl.org/dtr/type/2020-01-21/types.xsd"/>
  <xs:import namespace="http://www.xbrl.org/dtr/type/2022-03-31" schemaLocation="https://www.xbrl.org/dtr/type/2022-03-31/types.xsd"/>
  <xs:import namespace="http://xbrl.org/2005/xbrldt" schemaLocation="http://www.xbrl.org/2005/xbrldt-2005.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/country/2023" schemaLocation="https://xbrl.sec.gov/country/2023/country-2023.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/currency/2023" schemaLocation="https://xbrl.sec.gov/currency/2023/currency-2023.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/dei/2023" schemaLocation="https://xbrl.sec.gov/dei/2023/dei-2023.xsd"/>
  <xs:import namespace="http://xbrl.sec.gov/ecd/2023" schemaLocation="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd"/>
  <xs:annotation>
    <xs:appinfo>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20231231_pre.xml" xlink:role="http://www.xbrl.org/2003/role/presentationLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20231231_def.xml" xlink:role="http://www.xbrl.org/2003/role/definitionLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20231231_lab.xml" xlink:role="http://www.xbrl.org/2003/role/labelLinkbaseRef" xlink:type="simple"/>
      <link:linkbaseRef xmlns:xlink="http://www.w3.org/1999/xlink" xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase" xlink:href="cgnx-20231231_cal.xml" xlink:role="http://www.xbrl.org/2003/role/calculationLinkbaseRef" xlink:type="simple"/>
      <link:roleType id="CoverPage" roleURI="http://cognex.com/role/CoverPage">
        <link:definition>0000001 - Document - Cover Page</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AuditInformation" roleURI="http://cognex.com/role/AuditInformation">
        <link:definition>0000002 - Document - Audit 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 id="CONSOLIDATEDSTATEMENTSOFOPERATIONS" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS">
        <link:definition>0000003 - 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 id="CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME">
        <link:definition>0000004 - 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 id="CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical">
        <link:definition>0000005 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDBALANCESHEETS" roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS">
        <link:definition>0000006 - 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 id="CONSOLIDATEDBALANCESHEETSParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical">
        <link:definition>0000007 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CONSOLIDATEDSTATEMENTSOFCASHFLOWS" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS">
        <link:definition>0000008 - 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 id="CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY">
        <link:definition>0000009 - 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 id="CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical">
        <link:definition>0000010 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPolicies" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPolicies">
        <link:definition>0000011 - Disclosure - Summary of Significant Accounting Policies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="NewPronouncements" roleURI="http://cognex.com/role/NewPronouncements">
        <link:definition>0000012 - Disclosure - New Pronouncements</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurements" roleURI="http://cognex.com/role/FairValueMeasurements">
        <link:definition>0000013 - 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 id="CashCashEquivalentsandInvestments" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestments">
        <link:definition>0000014 - Disclosure - Cash, Cash Equivalents, and Investments</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="Inventories" roleURI="http://cognex.com/role/Inventories">
        <link:definition>0000015 - Disclosure - Inventories</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipment" roleURI="http://cognex.com/role/PropertyPlantandEquipment">
        <link:definition>0000016 - Disclosure - Property, Plant, 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 id="LeasesLeases" roleURI="http://cognex.com/role/LeasesLeases">
        <link:definition>0000017 - Disclosure - Leases 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 id="Goodwill" roleURI="http://cognex.com/role/Goodwill">
        <link:definition>0000018 - 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 id="IntangibleAssets" roleURI="http://cognex.com/role/IntangibleAssets">
        <link:definition>0000019 - 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 id="AccruedExpenses" roleURI="http://cognex.com/role/AccruedExpenses">
        <link:definition>0000020 - Disclosure - Accrued Expenses</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingencies" roleURI="http://cognex.com/role/CommitmentsandContingencies">
        <link:definition>0000021 - Disclosure - Commitments and Contingencies</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IndemnificationProvisions" roleURI="http://cognex.com/role/IndemnificationProvisions">
        <link:definition>0000022 - Disclosure - Indemnification Provisions</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstruments" roleURI="http://cognex.com/role/DerivativeInstruments">
        <link:definition>0000023 - Disclosure - Derivative Instruments</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RevenueRecognition" roleURI="http://cognex.com/role/RevenueRecognition">
        <link:definition>0000024 - Disclosure - Revenue Recognition</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ShareholdersEquity" roleURI="http://cognex.com/role/ShareholdersEquity">
        <link:definition>0000025 - Disclosure - Shareholders' Equity</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensation" roleURI="http://cognex.com/role/StockBasedCompensation">
        <link:definition>0000026 - Disclosure - Stock-Based Compensation</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="EmployeeSavingsPlan" roleURI="http://cognex.com/role/EmployeeSavingsPlan">
        <link:definition>0000027 - Disclosure - Employee Savings Plan</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxes" roleURI="http://cognex.com/role/IncomeTaxes">
        <link:definition>0000028 - 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 id="WeightedAverageShares" roleURI="http://cognex.com/role/WeightedAverageShares">
        <link:definition>0000029 - Disclosure - Weighted Average Shares</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformation" roleURI="http://cognex.com/role/SegmentandGeographicInformation">
        <link:definition>0000030 - Disclosure - Segment and Geographic 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 id="BusinessAcquisitions" roleURI="http://cognex.com/role/BusinessAcquisitions">
        <link:definition>0000031 - Disclosure - Business 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 id="LossfromFire" roleURI="http://cognex.com/role/LossfromFire">
        <link:definition>0000032 - Disclosure - Loss from Fire</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="RestructuringCharges" roleURI="http://cognex.com/role/RestructuringCharges">
        <link:definition>0000033 - Disclosure - Restructuring 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 id="SubsequentEvents" roleURI="http://cognex.com/role/SubsequentEvents">
        <link:definition>0000034 - Disclosure - Subsequent Events</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="ScheduleIIValuationandQualifyingAccounts" roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts">
        <link:definition>0000035 - Disclosure - Schedule II - Valuation and Qualifying Accounts</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesPolicies" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies">
        <link:definition>9954471 - Disclosure - Summary of Significant Accounting Policies (Policies)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="FairValueMeasurementsTables" roleURI="http://cognex.com/role/FairValueMeasurementsTables">
        <link:definition>9954472 - 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 id="CashCashEquivalentsandInvestmentsTables" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables">
        <link:definition>9954473 - Disclosure - Cash, Cash Equivalents, and Investments (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 id="InventoriesTables" roleURI="http://cognex.com/role/InventoriesTables">
        <link:definition>9954474 - Disclosure - Inventories (Tables)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentTables" roleURI="http://cognex.com/role/PropertyPlantandEquipmentTables">
        <link:definition>9954475 - Disclosure - Property, Plant, 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 id="LeasesTables" roleURI="http://cognex.com/role/LeasesTables">
        <link:definition>9954476 - 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 id="GoodwillTables" roleURI="http://cognex.com/role/GoodwillTables">
        <link:definition>9954477 - 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 id="IntangibleAssetsTables" roleURI="http://cognex.com/role/IntangibleAssetsTables">
        <link:definition>9954478 - 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 id="AccruedExpensesTables" roleURI="http://cognex.com/role/AccruedExpensesTables">
        <link:definition>9954479 - Disclosure - Accrued Expenses (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 id="DerivativeInstrumentsTables" roleURI="http://cognex.com/role/DerivativeInstrumentsTables">
        <link:definition>9954480 - Disclosure - Derivative Instruments (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 id="RevenueRecognitionTables" roleURI="http://cognex.com/role/RevenueRecognitionTables">
        <link:definition>9954481 - Disclosure - Revenue Recognition (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 id="StockBasedCompensationTables" roleURI="http://cognex.com/role/StockBasedCompensationTables">
        <link:definition>9954482 - Disclosure - Stock-Based Compensation (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 id="IncomeTaxesTables" roleURI="http://cognex.com/role/IncomeTaxesTables">
        <link:definition>9954483 - 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 id="WeightedAverageSharesTables" roleURI="http://cognex.com/role/WeightedAverageSharesTables">
        <link:definition>9954484 - Disclosure - Weighted Average Shares (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 id="SegmentandGeographicInformationTables" roleURI="http://cognex.com/role/SegmentandGeographicInformationTables">
        <link:definition>9954485 - Disclosure - Segment and Geographic 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 id="BusinessAcquisitionsTables" roleURI="http://cognex.com/role/BusinessAcquisitionsTables">
        <link:definition>9954486 - Disclosure - Business 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 id="RestructuringChargesTables" roleURI="http://cognex.com/role/RestructuringChargesTables">
        <link:definition>9954487 - Disclosure - Restructuring 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 id="SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail">
        <link:definition>9954488 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails">
        <link:definition>9954489 - Disclosure - Summary of Significant Accounting Policies - 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 id="SummaryofSignificantAccountingPoliciesWarrantyDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails">
        <link:definition>9954490 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails">
        <link:definition>9954491 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (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 id="SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails">
        <link:definition>9954492 - Disclosure - Summary of Significant Accounting Policies - Advertising 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 id="SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails">
        <link:definition>9954493 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (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 id="FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail">
        <link:definition>9954494 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail">
        <link:definition>9954495 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsAdditionalInformationDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail">
        <link:definition>9954496 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail">
        <link:definition>9954497 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail">
        <link:definition>9954498 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails">
        <link:definition>9954499 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (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 id="CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail">
        <link:definition>9954500 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="InventoriesInventoriesDetail" roleURI="http://cognex.com/role/InventoriesInventoriesDetail">
        <link:definition>9954501 - Disclosure - Inventories - Inventories (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail">
        <link:definition>9954502 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="PropertyPlantandEquipmentAdditionalInformationDetails" roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails">
        <link:definition>9954503 - Disclosure - Property, Plant and Equipment - 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 id="LeasesDetails" roleURI="http://cognex.com/role/LeasesDetails">
        <link:definition>9954504 - 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 id="LeasesScheduleofPaymentsDetails" roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails">
        <link:definition>9954505 - Disclosure - Leases - Schedule of Payments (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 id="GoodwillChangesintheCarryingValueofGoodwillDetail" roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail">
        <link:definition>9954506 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsAmortizedIntangibleAssetsDetail" roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail">
        <link:definition>9954507 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IntangibleAssetsNarrativeDetails" roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails">
        <link:definition>9954508 - Disclosure - Intangible Assets - Narrative (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 id="IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail">
        <link:definition>9954509 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpensesConstituentsofAccruedExpensesDetail" roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail">
        <link:definition>9954510 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="AccruedExpensesChangesinWarrantyObligationsDetail" roleURI="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail">
        <link:definition>9954511 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="CommitmentsandContingenciesAdditionalInformationDetail" roleURI="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail">
        <link:definition>9954512 - Disclosure - Commitments and Contingencies - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="DerivativeInstrumentsAdditionalDetailsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails">
        <link:definition>9954513 - Disclosure - Derivative Instruments - Additional Details (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 id="DerivativeInstrumentsOutstandingForwardContractsDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails">
        <link:definition>9954514 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (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 id="DerivativeInstrumentsBalanceSheetLocationDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails">
        <link:definition>9954515 - Disclosure - Derivative Instruments - Balance Sheet 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 id="DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails">
        <link:definition>9954516 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (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 id="DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails">
        <link:definition>9954517 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (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 id="RevenueRecognitionNarrativesDetails" roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails">
        <link:definition>9954518 - Disclosure - Revenue Recognition - Narratives (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 id="RevenueRecognitionDisaggregationbyGeographyandTypeDetails" roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails">
        <link:definition>9954519 - Disclosure - Revenue Recognition - Disaggregation by Geography and 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 id="RevenueRecognitionAllowanceforCreditLossDetails" roleURI="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails">
        <link:definition>9954520 - Disclosure - Revenue Recognition - Allowance for Credit Loss (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 id="RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails">
        <link:definition>9954521 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (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 id="ShareholdersEquityAdditionalInformationDetail" roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail">
        <link:definition>9954522 - Disclosure - Shareholders' Equity - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseAdditionalInformationDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail">
        <link:definition>9954523 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail">
        <link:definition>9954524 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail">
        <link:definition>9954525 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail">
        <link:definition>9954526 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail">
        <link:definition>9954527 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails">
        <link:definition>9954528 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (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 id="EmployeeSavingsPlanAdditionalInformationDetail" roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail">
        <link:definition>9954529 - Disclosure - Employee Savings Plan - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="IncomeTaxesAdditionalInformationDetails" roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails">
        <link:definition>9954530 - 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 id="IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails">
        <link:definition>9954531 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (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 id="IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails">
        <link:definition>9954532 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax 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 id="IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" roleURI="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails">
        <link:definition>9954533 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (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 id="IncomeTaxesConstituentsofDeferredTaxAssetsDetails" roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails">
        <link:definition>9954534 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageSharesCalculationofWeightedAverageSharesDetail" roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail">
        <link:definition>9954535 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="WeightedAverageSharesAdditionalInformationDetail" roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail">
        <link:definition>9954536 - Disclosure - Weighted Average Shares - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationAdditionalInformationDetail" roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail">
        <link:definition>9954537 - Disclosure - Segment and Geographic Information - Additional Information (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail">
        <link:definition>9954538 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
      <link:roleType id="BusinessAcquisitionsMoritexNarrativeDetails" roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails">
        <link:definition>9954539 - Disclosure - Business Acquisitions - Moritex Narrative (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 id="BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails">
        <link:definition>9954540 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (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 id="LossfromFireDetails" roleURI="http://cognex.com/role/LossfromFireDetails">
        <link:definition>9954541 - Disclosure - Loss from Fire (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 id="RestructuringChargesAdditionalInformationDetails" roleURI="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails">
        <link:definition>9954542 - Disclosure - Restructuring 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 id="RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails">
        <link:definition>9954543 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related 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 id="RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails">
        <link:definition>9954544 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (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 id="SubsequentEventsDetails" roleURI="http://cognex.com/role/SubsequentEventsDetails">
        <link:definition>9954545 - Disclosure - Subsequent Events - (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 id="ScheduleIIValuationandQualifyingAccountsDetail" roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail">
        <link:definition>9954546 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)</link:definition>
        <link:usedOn>link:presentationLink</link:usedOn>
        <link:usedOn>link:calculationLink</link:usedOn>
        <link:usedOn>link:definitionLink</link:usedOn>
      </link:roleType>
    </xs:appinfo>
  </xs:annotation>
  <xs:element id="cgnx_HardwareAndSoftwareMember" abstract="true" name="HardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ApplicationofCustomerSpecificSolutionsMember" abstract="true" name="ApplicationofCustomerSpecificSolutionsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForCEO" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" abstract="false" name="LesseeOperatingLeaseOptionToRenewTermOfContract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" abstract="false" name="AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsForeignTaxStructureChange" abstract="false" name="DeferredTaxAssetsForeignTaxStructureChange" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" abstract="false" name="StockRepurchasedDuringPeriodSharesNotYetSettled" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:sharesItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SouthboroughMassachusettsMember" abstract="true" name="SouthboroughMassachusettsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfTwoYear" abstract="false" name="CompanyContributionsVestAtEndOfTwoYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_LongTermInvestmentsMember" abstract="true" name="LongTermInvestmentsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" abstract="false" name="InsuranceRecoveriesLostInventoryAndOtherLosses" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_TreasuryBillsFairValueDisclosure" abstract="false" name="TreasuryBillsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" abstract="true" name="JoergKuechenRuleTradingArrangementCommonStockSaleMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_December2022Member" abstract="true" name="December2022Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ComputerHardwareAndSoftwareMember" abstract="true" name="ComputerHardwareAndSoftwareMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_MaximumInvestmentOfCompanyInPartnership" abstract="false" name="MaximumInvestmentOfCompanyInPartnership" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GrossLossFromCatastrophes" abstract="false" name="GrossLossFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RevenuePaymentTerms" abstract="false" name="RevenuePaymentTerms" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_ExpirationPeriodOfStockOptionPlan" abstract="false" name="ExpirationPeriodOfStockOptionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_Customer1Member" abstract="true" name="Customer1Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" abstract="true" name="JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_A27000SquareFootPremisesMember" abstract="true" name="A27000SquareFootPremisesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationTaxReservesPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:pureItemType"/>
  <xs:element id="cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" abstract="false" name="DeferredIncomeTaxAssetsLiabilitiesNet" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_LesseeOperatingLeaseComponents" abstract="false" name="LesseeOperatingLeaseComponents" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfThreeYears" abstract="false" name="CompanyContributionsVestAtEndOfThreeYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_ProductCostOfRevenueMember" abstract="true" name="ProductCostOfRevenueMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_InsuranceRecoveriesBusinessInterruption" abstract="false" name="InsuranceRecoveriesBusinessInterruption" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_BacNinhVietnamMember" abstract="true" name="BacNinhVietnamMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfOneYear" abstract="false" name="CompanyContributionsVestAtEndOfOneYear" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_CurrencytranslationadjustmentAbstract" abstract="true" name="CurrencytranslationadjustmentAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_ContractLiabilityForeignExchangeRateChanges" abstract="false" name="ContractLiabilityForeignExchangeRateChanges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" abstract="false" name="EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StandardProductandServicesMember" abstract="true" name="StandardProductandServicesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AuditInformationAbstract" abstract="true" name="AuditInformationAbstract" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_BusinessCombinationEnterpriseValue" abstract="false" name="BusinessCombinationEnterpriseValue" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" abstract="false" name="SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_NoncurrentDeferredTaxAssetsDeprecation" abstract="false" name="NoncurrentDeferredTaxAssetsDeprecation" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_JoergKuechenMember" abstract="true" name="JoergKuechenMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_Customer2Member" abstract="true" name="Customer2Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" abstract="false" name="DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" abstract="false" name="UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_RetirementAllowance" abstract="false" name="RetirementAllowance" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_IndemnificationProvisionsTextBlock" abstract="false" name="IndemnificationProvisionsTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_MoritexCorporationMember" abstract="true" name="MoritexCorporationMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" abstract="false" name="CashCashEquivalentsShortTermAndLongTermInvestments" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ProductWarrantyPeriod" abstract="false" name="ProductWarrantyPeriod" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" abstract="true" name="CognexCorporation2023StockOptionAndIncentivePlanMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_MoneyMarketInstrumentsFairValueDisclosure" abstract="false" name="MoneyMarketInstrumentsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" abstract="false" name="ConcentrationsOfRiskPolicyPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_AssetBackedSecuritiesFairValueDisclosure" abstract="false" name="AssetBackedSecuritiesFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_NonCashLossFromCatastrophes" abstract="false" name="NonCashLossFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_A88000SquareFootPremisesMember" abstract="true" name="A88000SquareFootPremisesMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2020Member" abstract="true" name="RepurchaseProgramMarch2020Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_SellingGeneralAndAdministrativeMember" abstract="true" name="SellingGeneralAndAdministrativeMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_RepurchaseProgramOctober2018Member" abstract="true" name="RepurchaseProgramOctober2018Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" abstract="false" name="DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CompanyContributionsVestAtEndOfFourYears" abstract="false" name="CompanyContributionsVestAtEndOfFourYears" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" abstract="false" name="OperatingLeaseExpenseNoLiabilityOrAssetRecognized" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_StockRepurchaseProgramBuybackExciseTax" abstract="false" name="StockRepurchaseProgramBuybackExciseTax" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" abstract="false" name="IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_DistributionNetworksAndCustomerRelationshipsMember" abstract="true" name="DistributionNetworksAndCustomerRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_GreaterChinaMember" abstract="true" name="GreaterChinaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" abstract="false" name="DeferredTaxAssetsWithJurisdictionalNettingGross" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" abstract="false" name="MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_NumberOfGroupsWithinEmployeePopulation" abstract="false" name="NumberOfGroupsWithinEmployeePopulation" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_NatureOfOperationsPolicyTextBlock" abstract="false" name="NatureOfOperationsPolicyTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_CatastropheTextBlock" abstract="false" name="CatastropheTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_RepurchaseProgramMarch2022Member" abstract="true" name="RepurchaseProgramMarch2022Member" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" abstract="false" name="DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsOtherNoncurrent" abstract="false" name="DeferredTaxAssetsOtherNoncurrent" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" abstract="false" name="AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CompletedTechnologyMember" abstract="true" name="CompletedTechnologyMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CustomerContractsLiabilityCurrentRollForward" abstract="true" name="CustomerContractsLiabilityCurrentRollForward" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" abstract="false" name="EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGross" abstract="false" name="UnrecognizedTaxBenefitsGross" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ExcessAndObsoleteInventoryCharges" abstract="false" name="ExcessAndObsoleteInventoryCharges" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" abstract="false" name="ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:textBlockItemType"/>
  <xs:element id="cgnx_OtherGeographicAreaMember" abstract="true" name="OtherGeographicAreaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_OtherAsiaMember" abstract="true" name="OtherAsiaMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_DueFromForeignBanks" abstract="false" name="DueFromForeignBanks" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" abstract="false" name="BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_SovereignBondsFairValueDisclosure" abstract="false" name="SovereignBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_VoteEntitledForEachCommonShareOutstanding" abstract="false" name="VoteEntitledForEachCommonShareOutstanding" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="xbrli:integerItemType"/>
  <xs:element id="cgnx_InvestmentDurationAxis" abstract="true" name="InvestmentDurationAxis" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrldt:dimensionItem" type="xbrli:stringItemType"/>
  <xs:element id="cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" abstract="false" name="AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" abstract="false" name="ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" abstract="false" name="EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" nillable="true" xbrli:periodType="instant" substitutionGroup="xbrli:item" type="dtr-types1:percentItemType"/>
  <xs:element id="cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" abstract="false" name="UnrecognizedTaxBenefitsGrossNoncurrentLiability" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" abstract="false" name="DeferredTaxAssetsTaxCreditCarryforwardsState" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_LossGainFromCatastrophes" abstract="false" name="LossGainFromCatastrophes" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_AgencyBondsMember" abstract="true" name="AgencyBondsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_OperatingLeaseLiabilityDiscountedPresentValue" abstract="false" name="OperatingLeaseLiabilityDiscountedPresentValue" nillable="true" xbrli:periodType="instant" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CustomerContractsAndRelationshipsMember" abstract="true" name="CustomerContractsAndRelationshipsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" abstract="false" name="ContractWithCustomerLiabilityPeriodIncreaseDecrease" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" abstract="false" name="MinimumAgeToBeEligibleToDefinedContributionPlan" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="xbrli:durationItemType"/>
  <xs:element id="cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" abstract="false" name="MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" abstract="false" name="ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" nillable="true" xbrli:periodType="duration" xbrli:balance="credit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CorporateBondsFairValueDisclosure" abstract="false" name="CorporateBondsFairValueDisclosure" nillable="true" xbrli:periodType="instant" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_FairValueAdjustmentOnAcquiredInventories" abstract="false" name="FairValueAdjustmentOnAcquiredInventories" nillable="true" xbrli:periodType="duration" xbrli:balance="debit" substitutionGroup="xbrli:item" type="xbrli:monetaryItemType"/>
  <xs:element id="cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" abstract="true" name="CompletedTechnologiesAndOtherIntangibleAssetsMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_SACSiriusAdvancedCyberneticsGmbHMember" abstract="true" name="SACSiriusAdvancedCyberneticsGmbHMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
  <xs:element id="cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" abstract="true" name="CognexCorporation2021And2007StockOptionAndIncentivePlansMember" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types:domainItemType"/>
  <xs:element id="cgnx_InvestmentDurationDomain" abstract="true" name="InvestmentDurationDomain" nillable="true" xbrli:periodType="duration" substitutionGroup="xbrli:item" type="dtr-types1:domainItemType"/>
</xs:schema>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.CAL
<SEQUENCE>10
<FILENAME>cgnx-20231231_cal.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION CALCULATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:277675e4-6a1f-436c-b28b-2310559dede0,g:0aa79d6e-08a3-463e-9769-9d2f36bbe043-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFOPERATIONS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_9ceab900-2f00-438f-9266-2d6a4f5d883a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_2dc98770-1353-4a51-bc00-8064c8fa9646" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_9ceab900-2f00-438f-9266-2d6a4f5d883a" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_2dc98770-1353-4a51-bc00-8064c8fa9646" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_d22b5c92-824d-47f9-98ea-c92164fdd96f" xlink:href="cgnx-20231231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_9ceab900-2f00-438f-9266-2d6a4f5d883a" xlink:to="loc_cgnx_LossGainFromCatastrophes_d22b5c92-824d-47f9-98ea-c92164fdd96f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_58bfff2a-d4ab-4b25-94d7-68af6b9a2bdc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_9ceab900-2f00-438f-9266-2d6a4f5d883a" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_58bfff2a-d4ab-4b25-94d7-68af6b9a2bdc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_85de2cf6-3f29-40ee-b889-f0384948e04c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OperatingIncomeLoss_9ceab900-2f00-438f-9266-2d6a4f5d883a" xlink:to="loc_us-gaap_RestructuringCharges_85de2cf6-3f29-40ee-b889-f0384948e04c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_e9162d6c-9f59-4175-b1af-5c3ce70b0598" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0f09cc04-52db-4897-bf41-7e4f80804da6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_e9162d6c-9f59-4175-b1af-5c3ce70b0598" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_0f09cc04-52db-4897-bf41-7e4f80804da6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_769524be-3360-41e4-b660-c31cada8fcf7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_GrossProfit_e9162d6c-9f59-4175-b1af-5c3ce70b0598" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_769524be-3360-41e4-b660-c31cada8fcf7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7c7c8805-c0f9-4e60-b820-9cd8c8bdac08" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_96d75d6c-865b-4d76-938c-2af62a15a06e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7c7c8805-c0f9-4e60-b820-9cd8c8bdac08" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_96d75d6c-865b-4d76-938c-2af62a15a06e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_5e11caaa-a2cf-4092-99a3-07567abaabdb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7c7c8805-c0f9-4e60-b820-9cd8c8bdac08" xlink:to="loc_us-gaap_OperatingIncomeLoss_5e11caaa-a2cf-4092-99a3-07567abaabdb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_9673088b-797c-4b29-bd8c-de5d1ba9d3f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7c7c8805-c0f9-4e60-b820-9cd8c8bdac08" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_9673088b-797c-4b29-bd8c-de5d1ba9d3f8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_eee0f5f0-f3fb-4044-8f93-99e8892440f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_7c7c8805-c0f9-4e60-b820-9cd8c8bdac08" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_eee0f5f0-f3fb-4044-8f93-99e8892440f7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_216001b2-f24f-4db9-9964-cdfe3f21ce91" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_1d66da0d-c8eb-4f41-a6eb-b5316c1659b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_216001b2-f24f-4db9-9964-cdfe3f21ce91" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_1d66da0d-c8eb-4f41-a6eb-b5316c1659b8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_5afc5c48-407e-4ff0-ade5-1ae9da6c900c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetIncomeLoss_216001b2-f24f-4db9-9964-cdfe3f21ce91" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_5afc5c48-407e-4ff0-ade5-1ae9da6c900c" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_ec998190-9550-442b-9116-0c75a47a3750" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_7a0a7cfb-2a21-4c90-8e42-113b3698ef7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_ec998190-9550-442b-9116-0c75a47a3750" xlink:to="loc_us-gaap_NetIncomeLoss_7a0a7cfb-2a21-4c90-8e42-113b3698ef7e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_4d1a4a3f-e26e-4e4e-8256-e6a52389cbf6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax_ec998190-9550-442b-9116-0c75a47a3750" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_4d1a4a3f-e26e-4e4e-8256-e6a52389cbf6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_313941ce-2ae2-4de1-94ca-9d098de40849" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_a345602a-6e70-49da-a267-046c269600fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_313941ce-2ae2-4de1-94ca-9d098de40849" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_a345602a-6e70-49da-a267-046c269600fb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_be54db2a-5c4f-4b3a-85aa-c4a238fa64f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_95d419f9-45cf-47d9-8ffa-838a12bd08ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_be54db2a-5c4f-4b3a-85aa-c4a238fa64f8" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_95d419f9-45cf-47d9-8ffa-838a12bd08ad" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1cd8eb70-3c00-4e41-9abe-150a18e54766" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_be54db2a-5c4f-4b3a-85aa-c4a238fa64f8" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_1cd8eb70-3c00-4e41-9abe-150a18e54766" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_b593c986-b8b5-41ca-a52f-d905ede6300a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_cc15433b-0686-48c7-a0d6-a1e4447e20da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_b593c986-b8b5-41ca-a52f-d905ede6300a" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_cc15433b-0686-48c7-a0d6-a1e4447e20da" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_5bd7ed46-cb4a-45b9-95ad-94439fed2d5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_b593c986-b8b5-41ca-a52f-d905ede6300a" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_5bd7ed46-cb4a-45b9-95ad-94439fed2d5d" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDBALANCESHEETS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_64a615db-b837-456e-afff-59a550f7d9f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:to="loc_us-gaap_AccountsPayableCurrent_64a615db-b837-456e-afff-59a550f7d9f3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_855059d6-9e53-49ec-98cd-6458850ac97c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_855059d6-9e53-49ec-98cd-6458850ac97c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_9719898d-0120-4b46-ba90-1b6575f523df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_9719898d-0120-4b46-ba90-1b6575f523df" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_648495f5-769e-490d-b3a2-25f3c704b2b4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_648495f5-769e-490d-b3a2-25f3c704b2b4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_d5163322-89d3-4d72-8eaa-a0991f765fd9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesCurrent_0abeff37-4514-41f9-aaef-55b1429bc943" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_d5163322-89d3-4d72-8eaa-a0991f765fd9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_c1692117-fdb6-4098-bfe2-300df5cbe768" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_AssetsCurrent_c1692117-fdb6-4098-bfe2-300df5cbe768" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_9f754d2b-5ec4-4476-9a10-96a0617a5120" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_LongTermInvestments_9f754d2b-5ec4-4476-9a10-96a0617a5120" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_af75efc6-61fe-4c87-826d-bf547b283a1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_af75efc6-61fe-4c87-826d-bf547b283a1d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_11251a2c-b5af-4f2a-9262-87317a3b0029" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_11251a2c-b5af-4f2a-9262-87317a3b0029" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_21fe7844-0b33-4216-bb80-fb28a90e9694" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_21fe7844-0b33-4216-bb80-fb28a90e9694" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_9b43b671-0eae-4d42-bfbc-3a2c29f83b6d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_Goodwill_9b43b671-0eae-4d42-bfbc-3a2c29f83b6d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_557a1a90-28b3-4ec5-b6ae-817669176a9d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_557a1a90-28b3-4ec5-b6ae-817669176a9d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_e3ca6a69-d3d4-4220-a04f-2a0f1712ba74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Assets_000a6174-e78c-4dee-9e48-191d83307be2" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_e3ca6a69-d3d4-4220-a04f-2a0f1712ba74" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0471b153-d545-4f9e-91c9-1ec1f87dc758" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_0471b153-d545-4f9e-91c9-1ec1f87dc758" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_c695f2e5-88c7-412f-a07e-995e0d82861f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_c695f2e5-88c7-412f-a07e-995e0d82861f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_e1d51c5d-a866-423b-8cd1-b87f9175dd5b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_e1d51c5d-a866-423b-8cd1-b87f9175dd5b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_988da66c-8ef9-43ed-b6cd-e5f9b4036d41" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_InventoryNet_988da66c-8ef9-43ed-b6cd-e5f9b4036d41" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_e28bf33f-f6a2-4aff-a25d-472536e0ad3f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_e28bf33f-f6a2-4aff-a25d-472536e0ad3f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_2731e63c-ff77-4ff0-9357-43708a74ace7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AssetsCurrent_818db6ef-de9a-4cdc-9895-ed0c05ff7220" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_2731e63c-ff77-4ff0-9357-43708a74ace7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_05422c65-1f1f-4ac8-933b-aa49804e399b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_LiabilitiesCurrent_05422c65-1f1f-4ac8-933b-aa49804e399b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_cd0118ad-b45e-41dd-904f-bd17446c2243" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_cd0118ad-b45e-41dd-904f-bd17446c2243" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_efc52e81-b6fc-40f3-9c33-68a245fd07aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_efc52e81-b6fc-40f3-9c33-68a245fd07aa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0dcf2080-3ceb-400a-b948-8b0e36599427" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_0dcf2080-3ceb-400a-b948-8b0e36599427" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_d664ddda-407a-49c3-aae8-6cce7ae55eb0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_d664ddda-407a-49c3-aae8-6cce7ae55eb0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_edec7679-0e6f-4c5d-980a-e7a765167597" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_Liabilities_1afcb595-bd21-47d6-a21c-e1c0f0f8b2a8" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_edec7679-0e6f-4c5d-980a-e7a765167597" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_4e07df1b-91fc-4641-a329-44a8ec12aa92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:to="loc_us-gaap_CommonStockValueOutstanding_4e07df1b-91fc-4641-a329-44a8ec12aa92" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_6d066026-eb96-4763-887f-b3942c8e04e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_6d066026-eb96-4763-887f-b3942c8e04e9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_9722ea4a-3a95-4dad-95a5-dade82a12d60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_9722ea4a-3a95-4dad-95a5-dade82a12d60" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_561cf20a-b9ed-4bff-ab35-fecc65f97393" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_561cf20a-b9ed-4bff-ab35-fecc65f97393" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_8137693f-fbc3-4b9e-a17c-eb46604fcab7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_StockholdersEquity_569abaa1-825f-49e0-a318-631f6aab62c4" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_8137693f-fbc3-4b9e-a17c-eb46604fcab7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_7b9acb78-a0d5-4170-9207-7c749d65b487" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_65c0a299-ca23-4e7b-b9b9-44e0a63d38ae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_7b9acb78-a0d5-4170-9207-7c749d65b487" xlink:to="loc_us-gaap_Liabilities_65c0a299-ca23-4e7b-b9b9-44e0a63d38ae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_f7cacac7-a378-4531-a37b-c782d53ee1c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_7b9acb78-a0d5-4170-9207-7c749d65b487" xlink:to="loc_us-gaap_CommitmentsAndContingencies_f7cacac7-a378-4531-a37b-c782d53ee1c5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_00ab09d6-a0df-43c2-813d-5b23a955ee84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity_7b9acb78-a0d5-4170-9207-7c749d65b487" xlink:to="loc_us-gaap_StockholdersEquity_00ab09d6-a0df-43c2-813d-5b23a955ee84" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFCASHFLOWS"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_dee42136-e1da-4abe-94ec-008a037fbcad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_dee42136-e1da-4abe-94ec-008a037fbcad" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_93ff2fb6-0242-4030-97ea-0e54e2b5a62f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_93ff2fb6-0242-4030-97ea-0e54e2b5a62f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_d9846591-4868-4c12-b9b1-a06d26e8e447" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_d9846591-4868-4c12-b9b1-a06d26e8e447" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_663aba24-c688-4377-a7f0-54f5c14806d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_663aba24-c688-4377-a7f0-54f5c14806d0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_67eb7c8c-c115-48a8-90f3-7a21685d1266" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:calculationArc order="5" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_67eb7c8c-c115-48a8-90f3-7a21685d1266" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_3c5309ea-774f-40ac-b883-d7ef9b35103f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_NetIncomeLoss_3c5309ea-774f-40ac-b883-d7ef9b35103f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_9df8a54f-fd2a-45d5-b259-6bf9bb157ff8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_9df8a54f-fd2a-45d5-b259-6bf9bb157ff8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_39bfe1b5-103a-4895-8cb8-3095585a3015" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:calculationArc order="8" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_39bfe1b5-103a-4895-8cb8-3095585a3015" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_3fbc786f-7a66-46aa-acb2-0d4c3a978f4a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_3fbc786f-7a66-46aa-acb2-0d4c3a978f4a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_3aad6cf5-2731-414d-a69a-9c38bce68c7f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_3aad6cf5-2731-414d-a69a-9c38bce68c7f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_eb11d3cd-3621-4475-a774-1786deb18cbd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_StockOptionPlanExpense_eb11d3cd-3621-4475-a774-1786deb18cbd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_f3fa3a50-7184-4086-80ce-ec2086741c77" xlink:href="cgnx-20231231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_f3fa3a50-7184-4086-80ce-ec2086741c77" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_fec6ede7-e958-4b50-9adf-107804f8d77d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:calculationArc order="13" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_fec6ede7-e958-4b50-9adf-107804f8d77d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_aaa41a80-c819-4c0b-9f5a-67e386f60ba9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_Depreciation_aaa41a80-c819-4c0b-9f5a-67e386f60ba9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_2180e945-115e-43a7-b572-8c2462c72456" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:calculationArc order="15" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_2180e945-115e-43a7-b572-8c2462c72456" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_ad625b95-7034-405c-907d-3f7995bd6b8f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:calculationArc order="16" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_ad625b95-7034-405c-907d-3f7995bd6b8f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_44804a93-36db-49b5-9e49-49ae69586890" xlink:href="cgnx-20231231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:calculationArc order="17" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_44804a93-36db-49b5-9e49-49ae69586890" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_4a1afca9-2a76-4f01-b458-1ec2834907bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:calculationArc order="18" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_4a1afca9-2a76-4f01-b458-1ec2834907bb" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_effa629e-5dac-48c1-873e-745d0b9f9c45" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:calculationArc order="19" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_effa629e-5dac-48c1-873e-745d0b9f9c45" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_3858e9ae-feb6-4c68-9336-2beea961f1f3" xlink:href="cgnx-20231231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:calculationArc order="20" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_55d45f3c-658a-4cdb-86f2-695037e8d2ac" xlink:to="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_3858e9ae-feb6-4c68-9336-2beea961f1f3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_27d5ed3a-b91d-4406-a8d7-7f9220e99006" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_3e8faa62-b880-4650-90d6-ff3ce90ffeff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_27d5ed3a-b91d-4406-a8d7-7f9220e99006" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_3e8faa62-b880-4650-90d6-ff3ce90ffeff" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_308801c5-3754-47d1-80b9-afd28212581d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_27d5ed3a-b91d-4406-a8d7-7f9220e99006" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_308801c5-3754-47d1-80b9-afd28212581d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8293dcbc-d6d2-4382-bd6c-2457a82b93de" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_27d5ed3a-b91d-4406-a8d7-7f9220e99006" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8293dcbc-d6d2-4382-bd6c-2457a82b93de" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_3cdce0e3-fbcc-4b29-8458-0ec675a9aa05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_27d5ed3a-b91d-4406-a8d7-7f9220e99006" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_3cdce0e3-fbcc-4b29-8458-0ec675a9aa05" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8e93dfc8-162e-48dc-8c4d-03434aa4e157" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_96ac04a1-e5c5-4074-9f29-8acbc02ff7c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8e93dfc8-162e-48dc-8c4d-03434aa4e157" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_96ac04a1-e5c5-4074-9f29-8acbc02ff7c7" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4b4fd283-4b0a-4844-a924-3eb54e2693ce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8e93dfc8-162e-48dc-8c4d-03434aa4e157" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_4b4fd283-4b0a-4844-a924-3eb54e2693ce" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_c33850bc-ae87-4a05-b5b1-d2666bb422e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_8e93dfc8-162e-48dc-8c4d-03434aa4e157" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_c33850bc-ae87-4a05-b5b1-d2666bb422e9" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e0cf92f9-fa65-41d9-b8d7-d29ebb9884d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_5e26a010-0ae1-4942-88e8-cb5ac3d2f896" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e0cf92f9-fa65-41d9-b8d7-d29ebb9884d2" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_5e26a010-0ae1-4942-88e8-cb5ac3d2f896" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_d59dfa39-d511-465d-9d74-689aa16e5bf6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e0cf92f9-fa65-41d9-b8d7-d29ebb9884d2" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_d59dfa39-d511-465d-9d74-689aa16e5bf6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_a0c184ca-d9f6-42e2-9f42-06ecade2dff6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:calculationArc order="3" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e0cf92f9-fa65-41d9-b8d7-d29ebb9884d2" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_a0c184ca-d9f6-42e2-9f42-06ecade2dff6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_95f1026f-199d-45d9-9e9a-a7fc063bcd0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_e0cf92f9-fa65-41d9-b8d7-d29ebb9884d2" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_95f1026f-199d-45d9-9e9a-a7fc063bcd0b" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_def32b22-c3bb-469d-b316-a33fe7f5eff4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_5fbcf5d2-05e1-451f-913c-94964b701f19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LongTermInvestments_def32b22-c3bb-469d-b316-a33fe7f5eff4" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_5fbcf5d2-05e1-451f-913c-94964b701f19" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b9c658a3-ffaf-45ef-887e-7917fe7127bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_5f6de5e2-a2a8-4b69-a363-020aa50ca806" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Cash"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b9c658a3-ffaf-45ef-887e-7917fe7127bd" xlink:to="loc_us-gaap_Cash_5f6de5e2-a2a8-4b69-a363-020aa50ca806" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_a9dade5a-34cd-4a1e-a72d-7dd5b37ddf19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_b9c658a3-ffaf-45ef-887e-7917fe7127bd" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_a9dade5a-34cd-4a1e-a72d-7dd5b37ddf19" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_811fa562-c4be-4fdc-9a34-db08ea036e7e" xlink:href="cgnx-20231231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5a1b6753-ec2a-4ef6-aaf1-c81e3f85c960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_811fa562-c4be-4fdc-9a34-db08ea036e7e" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_5a1b6753-ec2a-4ef6-aaf1-c81e3f85c960" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_de1b7fae-654f-4dd8-9596-eca51c625583" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_811fa562-c4be-4fdc-9a34-db08ea036e7e" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_de1b7fae-654f-4dd8-9596-eca51c625583" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_139423be-29f8-43ad-b6ce-4850b2cace19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_811fa562-c4be-4fdc-9a34-db08ea036e7e" xlink:to="loc_us-gaap_LongTermInvestments_139423be-29f8-43ad-b6ce-4850b2cace19" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_859920b2-1257-41d6-810f-188c2dda4e83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_4e74b396-4471-4678-8fd3-6134ef398c6c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_859920b2-1257-41d6-810f-188c2dda4e83" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_4e74b396-4471-4678-8fd3-6134ef398c6c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_eb99a56d-2711-4606-be6e-42520c2d5ea1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_859920b2-1257-41d6-810f-188c2dda4e83" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_eb99a56d-2711-4606-be6e-42520c2d5ea1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_1cde8d38-7d4e-4081-a1d2-f5be53957a73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_859920b2-1257-41d6-810f-188c2dda4e83" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_1cde8d38-7d4e-4081-a1d2-f5be53957a73" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_39922886-9812-43a3-b3e6-eb81ed3a51f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_803a5182-3c4e-4188-bb3f-de16e60d8782" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_39922886-9812-43a3-b3e6-eb81ed3a51f8" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_803a5182-3c4e-4188-bb3f-de16e60d8782" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_8c316438-2d83-48e9-be3b-e81ceb2b62da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_39922886-9812-43a3-b3e6-eb81ed3a51f8" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_8c316438-2d83-48e9-be3b-e81ceb2b62da" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_cf832848-d7d8-47e5-afd8-b0745dea3e69" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_541ab3cc-71af-46e3-b4e1-21177c81093e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_cf832848-d7d8-47e5-afd8-b0745dea3e69" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_541ab3cc-71af-46e3-b4e1-21177c81093e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_eaf86e9d-f3ff-4ef3-8a0f-f1d67159a782" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_cf832848-d7d8-47e5-afd8-b0745dea3e69" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_eaf86e9d-f3ff-4ef3-8a0f-f1d67159a782" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_e7d4114b-7ce5-4815-b92c-93541637bfe4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_e7d4114b-7ce5-4815-b92c-93541637bfe4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2e7b2af5-ce2b-4f04-bb68-fda21524c2fd" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_2e7b2af5-ce2b-4f04-bb68-fda21524c2fd" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_871981d7-6ddd-40ef-a8d2-186631ce4714" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_871981d7-6ddd-40ef-a8d2-186631ce4714" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_64b22a83-2391-4590-b20f-69b8d0db4848" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_64b22a83-2391-4590-b20f-69b8d0db4848" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_41cec426-e30f-42e9-8f30-fb10455a8a7a" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_abbb3c55-8b1f-4eeb-a288-2f0ad88be55b" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_41cec426-e30f-42e9-8f30-fb10455a8a7a" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#InventoriesInventoriesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_2a41e0ab-f95e-4baf-8880-64a9cd9fe833" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_c6ba10eb-60ba-47c8-a432-997480b1278b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_2a41e0ab-f95e-4baf-8880-64a9cd9fe833" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_c6ba10eb-60ba-47c8-a432-997480b1278b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_389706ad-4e25-4a4b-9dbc-eb0be4013a20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_2a41e0ab-f95e-4baf-8880-64a9cd9fe833" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_389706ad-4e25-4a4b-9dbc-eb0be4013a20" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_8a7271f3-7bf2-4323-b596-fe8881f1081d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_InventoryNet_2a41e0ab-f95e-4baf-8880-64a9cd9fe833" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_8a7271f3-7bf2-4323-b596-fe8881f1081d" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_9d1dad11-b2fc-4ac8-810d-bf5e5e536eca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_67660248-c684-4996-90d8-462dda1504bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_9d1dad11-b2fc-4ac8-810d-bf5e5e536eca" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_67660248-c684-4996-90d8-462dda1504bc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_ecc792fe-5089-4339-89ef-d453f348144a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet_9d1dad11-b2fc-4ac8-810d-bf5e5e536eca" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_ecc792fe-5089-4339-89ef-d453f348144a" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesScheduleofPaymentsDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_3b5b69ab-8210-4a5f-b614-74e1c0561bc4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_3b5b69ab-8210-4a5f-b614-74e1c0561bc4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_caea7790-6941-470a-8b09-6b3dbe163660" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_caea7790-6941-470a-8b09-6b3dbe163660" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_bb2e60ad-66d7-4fac-998c-66c9658757e8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_bb2e60ad-66d7-4fac-998c-66c9658757e8" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_f1b3413c-43da-4eec-8907-a2d7d05eb635" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_f1b3413c-43da-4eec-8907-a2d7d05eb635" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_72853abf-75ab-48d5-a343-a8e2ffd58667" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_72853abf-75ab-48d5-a343-a8e2ffd58667" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_cb03ef5a-6d26-4e74-b729-8db3b7fcb3da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_ac8c81cc-51e8-473f-876e-0fc92dd8b845" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_cb03ef5a-6d26-4e74-b729-8db3b7fcb3da" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_506fcf3d-3d89-4409-92c9-632b29bca4e4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_004da39d-f6b3-43ff-a89e-c684d0d7a892" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_506fcf3d-3d89-4409-92c9-632b29bca4e4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_004da39d-f6b3-43ff-a89e-c684d0d7a892" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_90ea3b9d-4ddb-4af5-a049-ccf37d805112" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_506fcf3d-3d89-4409-92c9-632b29bca4e4" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_90ea3b9d-4ddb-4af5-a049-ccf37d805112" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_af26c465-baa8-4a88-9bba-80c3a7a3869a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_af26c465-baa8-4a88-9bba-80c3a7a3869a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_78eca2c8-99b4-4eb7-b3f5-b66658805a82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_78eca2c8-99b4-4eb7-b3f5-b66658805a82" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_d81e96e3-9b51-4376-a0fc-3e440e5f9bc1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_d81e96e3-9b51-4376-a0fc-3e440e5f9bc1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_5bc3c296-73ab-4a4d-b673-f3d794733042" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_5bc3c296-73ab-4a4d-b673-f3d794733042" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_cd94bc23-748e-4a38-816c-735b2a14f978" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_cd94bc23-748e-4a38-816c-735b2a14f978" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_9ae2e98d-c513-4acd-97e0-27e629c2b1e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet_882a9ca0-0a33-4484-9ae9-b111d63733e1" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_9ae2e98d-c513-4acd-97e0-27e629c2b1e1" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AccruedExpensesConstituentsofAccruedExpensesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_86f201c7-6a7b-4b81-9902-eaa547b5f146" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_us-gaap_AccruedSalariesCurrent_86f201c7-6a7b-4b81-9902-eaa547b5f146" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_0fbf3200-a1a2-4b2c-8e7a-5d3f7cbdf987" xlink:href="cgnx-20231231.xsd#cgnx_RetirementAllowance"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_cgnx_RetirementAllowance_0fbf3200-a1a2-4b2c-8e7a-5d3f7cbdf987" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_7dd6f1ca-b18c-433a-8679-e22894dcf596" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_7dd6f1ca-b18c-433a-8679-e22894dcf596" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_e194703d-70a3-4c6a-bca7-cd9bddb5a301" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_us-gaap_AccruedVacationCurrent_e194703d-70a3-4c6a-bca7-cd9bddb5a301" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_2f5811ff-a660-4170-a192-c6190fb3de6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_us-gaap_AccruedBonusesCurrent_2f5811ff-a660-4170-a192-c6190fb3de6f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_9a7920f4-9412-4f5d-89bc-1452196f4ddb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent_a683a295-8fca-4626-87c5-a5621b49d7a7" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_9a7920f4-9412-4f5d-89bc-1452196f4ddb" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_278883fd-c919-4a2d-9593-2b2e3360a82c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_4c34dc5c-54d5-4af4-ba4e-0af19e851cf4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_278883fd-c919-4a2d-9593-2b2e3360a82c" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_4c34dc5c-54d5-4af4-ba4e-0af19e851cf4" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_8e2a30e6-cb67-4015-8db1-192754cd4716" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeLiabilities_278883fd-c919-4a2d-9593-2b2e3360a82c" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_8e2a30e6-cb67-4015-8db1-192754cd4716" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_e34b0cf3-a470-416b-be16-d0e79036bd44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_7a0102a9-b6fd-41a3-9ac9-2cd49aadd8c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_e34b0cf3-a470-416b-be16-d0e79036bd44" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_7a0102a9-b6fd-41a3-9ac9-2cd49aadd8c0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_ee73d915-6eb5-4ac7-9d57-9357cec2dd0e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DerivativeAssets_e34b0cf3-a470-416b-be16-d0e79036bd44" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_ee73d915-6eb5-4ac7-9d57-9357cec2dd0e" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#EmployeeSavingsPlanAdditionalInformationDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_14e56235-a4c0-4703-9ebc-99be2a9b4fe1" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_fed1b655-1cad-494a-8992-283eae4d8b9d" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_14e56235-a4c0-4703-9ebc-99be2a9b4fe1" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_fed1b655-1cad-494a-8992-283eae4d8b9d" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_cdefd447-1e97-45d7-866f-0c1553c021fc" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_14e56235-a4c0-4703-9ebc-99be2a9b4fe1" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_cdefd447-1e97-45d7-866f-0c1553c021fc" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_d086d402-51bb-466f-bd82-fc3e94d60c09" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_14e56235-a4c0-4703-9ebc-99be2a9b4fe1" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_d086d402-51bb-466f-bd82-fc3e94d60c09" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_0c494589-defb-4475-a6bb-8d7ec73234a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_577e1ab1-938f-4328-8e09-9dcbd595c32e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_0c494589-defb-4475-a6bb-8d7ec73234a7" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_577e1ab1-938f-4328-8e09-9dcbd595c32e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0c9df2e4-8099-4f2a-a537-47cad5ac8f32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_0c494589-defb-4475-a6bb-8d7ec73234a7" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_0c9df2e4-8099-4f2a-a537-47cad5ac8f32" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_b0338e30-074f-420e-b1a8-edb3e170e139" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_0c494589-defb-4475-a6bb-8d7ec73234a7" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_b0338e30-074f-420e-b1a8-edb3e170e139" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_a2d5834a-bb4c-48f7-b8d1-c12feab0281c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ffc4b523-3ea5-4662-979f-06b9a47f255a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_a2d5834a-bb4c-48f7-b8d1-c12feab0281c" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_ffc4b523-3ea5-4662-979f-06b9a47f255a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_3b477aa5-ae55-4d83-ad60-2b47c3e63aac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit_a2d5834a-bb4c-48f7-b8d1-c12feab0281c" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_3b477aa5-ae55-4d83-ad60-2b47c3e63aac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_f39f91b7-d8ed-4a9b-b6dd-7c52bbe5e952" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_3a8af7d6-a3ac-4d65-87b8-a1598ea095da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_f39f91b7-d8ed-4a9b-b6dd-7c52bbe5e952" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_3a8af7d6-a3ac-4d65-87b8-a1598ea095da" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_703199db-6808-4502-8c68-4c057d82ad76" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_f39f91b7-d8ed-4a9b-b6dd-7c52bbe5e952" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_703199db-6808-4502-8c68-4c057d82ad76" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_8764c497-c6ff-4efb-9a4f-1eeb515060af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_f39f91b7-d8ed-4a9b-b6dd-7c52bbe5e952" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_8764c497-c6ff-4efb-9a4f-1eeb515060af" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_664836be-6880-4765-8fa4-3b698d69892b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_664836be-6880-4765-8fa4-3b698d69892b" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_25563306-7bd8-40b3-85a0-244a4126fcc5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_25563306-7bd8-40b3-85a0-244a4126fcc5" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_ddf8375a-9d44-477f-a016-b606dbcf0929" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_ddf8375a-9d44-477f-a016-b606dbcf0929" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_11c8bbc7-f4b7-4758-b0af-41cf79add8b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_11c8bbc7-f4b7-4758-b0af-41cf79add8b3" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_fe06aa2d-25a7-4b92-9123-9652734af8aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_fe06aa2d-25a7-4b92-9123-9652734af8aa" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_24f86020-6e4c-4e8d-ad53-b72c4220c696" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_24f86020-6e4c-4e8d-ad53-b72c4220c696" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7820362f-bf2c-4f6a-91f5-95b0bac676df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_7820362f-bf2c-4f6a-91f5-95b0bac676df" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_0a4cc0dd-ecc0-4a0c-bff9-82c169150f1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_0a4cc0dd-ecc0-4a0c-bff9-82c169150f1c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_6ee7bd26-6761-4b5f-877a-335f5de80700" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_6ee7bd26-6761-4b5f-877a-335f5de80700" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_eed03e7a-d81c-4ec7-a71f-b1c7b7158bd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:calculationArc order="10" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_eed03e7a-d81c-4ec7-a71f-b1c7b7158bd2" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_97206169-ef29-4c3a-8f51-bfd2bf9207d6" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_97206169-ef29-4c3a-8f51-bfd2bf9207d6" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_0c55adfb-665a-4097-a5f3-5c11ddbc5cae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_0c55adfb-665a-4097-a5f3-5c11ddbc5cae" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_1484b389-e48f-4b14-bb24-9a8f23738d79" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_1484b389-e48f-4b14-bb24-9a8f23738d79" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_1e2c1839-95af-405b-9066-00137e658afc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:calculationArc order="14" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_923ce810-a944-4485-ae08-23f2b717e413" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_1e2c1839-95af-405b-9066-00137e658afc" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesConstituentsofDeferredTaxAssetsDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_fe8a1ae1-965d-4ed8-b96f-1c320909b700" xlink:href="cgnx-20231231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_37b29545-71d0-478c-978f-48cd1b7f80de" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_fe8a1ae1-965d-4ed8-b96f-1c320909b700" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_37b29545-71d0-478c-978f-48cd1b7f80de" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_9f509425-09a0-4a2f-880d-86c5e9992525" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_fe8a1ae1-965d-4ed8-b96f-1c320909b700" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_9f509425-09a0-4a2f-880d-86c5e9992525" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_4b1164f9-3d42-4e22-b5b1-6a47a3ec2873" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_4b1164f9-3d42-4e22-b5b1-6a47a3ec2873" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_8c7cf0d7-1036-4211-8f44-4a0dedcd753e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_8c7cf0d7-1036-4211-8f44-4a0dedcd753e" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e612bc53-a7d2-4a8b-aec0-93b0bdaf26bf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e612bc53-a7d2-4a8b-aec0-93b0bdaf26bf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_15985dda-631c-4de7-b14e-4697ddc8892f" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:calculationArc order="4" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_15985dda-631c-4de7-b14e-4697ddc8892f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_578ba9b8-359d-4da6-a058-92ca0dda2a24" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_578ba9b8-359d-4da6-a058-92ca0dda2a24" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_1e88ce64-5098-4b86-b936-6d3f4d6e653c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_1e88ce64-5098-4b86-b936-6d3f4d6e653c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_c6981c0d-c227-4968-bce5-8b28bc0d8730" xlink:href="cgnx-20231231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_c6981c0d-c227-4968-bce5-8b28bc0d8730" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_b9b150e9-4b3a-4b1d-9012-7b4e0f840835" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_b9b150e9-4b3a-4b1d-9012-7b4e0f840835" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_341244a3-c818-4d6c-a90c-337c84601826" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:calculationArc order="9" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_9f504d03-99f2-48a6-b309-8bd64986f7d7" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_341244a3-c818-4d6c-a90c-337c84601826" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_77d4ea16-7e93-48a6-8a86-bd0c7a507a14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_414e7241-33f7-4f82-a204-c8cf5bfc6cca" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_77d4ea16-7e93-48a6-8a86-bd0c7a507a14" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_414e7241-33f7-4f82-a204-c8cf5bfc6cca" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_4ca4d201-453e-4dd3-accf-cad0ebf40e2a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxLiabilities_77d4ea16-7e93-48a6-8a86-bd0c7a507a14" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_4ca4d201-453e-4dd3-accf-cad0ebf40e2a" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_c1bf929b-1765-42fb-9732-b1d049c13256" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_b5578cbb-c81c-4ec8-9ab2-2d1f241efc8f" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_c1bf929b-1765-42fb-9732-b1d049c13256" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_b5578cbb-c81c-4ec8-9ab2-2d1f241efc8f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_fd85f8d8-e2e4-4c70-a1b0-c34db97c0277" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_c1bf929b-1765-42fb-9732-b1d049c13256" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_fd85f8d8-e2e4-4c70-a1b0-c34db97c0277" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetail"/>
  <link:calculationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_6477e03c-a1fb-4772-9ccd-e2fa480df74e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2de9993a-3ed6-481f-8d73-ba2472687822" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:calculationArc order="1" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_6477e03c-a1fb-4772-9ccd-e2fa480df74e" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_2de9993a-3ed6-481f-8d73-ba2472687822" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_635d91c3-d84a-4db2-aa43-39c80e1ae8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:calculationArc order="2" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_6477e03c-a1fb-4772-9ccd-e2fa480df74e" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_635d91c3-d84a-4db2-aa43-39c80e1ae8cf" xlink:type="arc"/>
  </link:calculationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:calculationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_2b8448d3-1ada-4d7c-b245-848537453848" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:calculationArc order="1" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_2b8448d3-1ada-4d7c-b245-848537453848" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6cdcbdb8-15a8-496a-a32e-2f234b2c34b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:calculationArc order="2" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_6cdcbdb8-15a8-496a-a32e-2f234b2c34b1" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_5433ffef-452b-4585-b2fa-ff3c3a42302f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:calculationArc order="3" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_5433ffef-452b-4585-b2fa-ff3c3a42302f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_807c1d33-5248-4761-a311-728d44af268f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:calculationArc order="4" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_807c1d33-5248-4761-a311-728d44af268f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_87cffc34-9e4a-4e52-9baf-a45eacd84ab0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:calculationArc order="5" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_Goodwill_87cffc34-9e4a-4e52-9baf-a45eacd84ab0" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_7511cbf9-bcf9-4ef0-821f-f403c879dbba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:calculationArc order="6" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_7511cbf9-bcf9-4ef0-821f-f403c879dbba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d6a3e119-edd7-4b9b-8850-8f5df8177698" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:calculationArc order="7" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_d6a3e119-edd7-4b9b-8850-8f5df8177698" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_2416123a-12c5-42c9-86ce-65220a2fbeba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:calculationArc order="8" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_2416123a-12c5-42c9-86ce-65220a2fbeba" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_6af1e72f-1619-49e9-a56a-be85631672ac" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:calculationArc order="9" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_6af1e72f-1619-49e9-a56a-be85631672ac" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_fb67276e-0baf-448c-afc8-a19e9bdf017f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:calculationArc order="10" weight="-1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_fb67276e-0baf-448c-afc8-a19e9bdf017f" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_cb1b18a2-bca8-455e-85e7-ebec35b900cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:calculationArc order="11" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_cb1b18a2-bca8-455e-85e7-ebec35b900cf" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d4e2f4e9-b724-4019-a5e0-110265990c5c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:calculationArc order="12" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d4e2f4e9-b724-4019-a5e0-110265990c5c" xlink:type="arc"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_064ed5a4-5b78-401a-a89c-7c4c1585e189" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:calculationArc order="13" weight="1.0" xlink:arcrole="http://www.xbrl.org/2003/arcrole/summation-item" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_72abb2fa-8f53-4db5-b6e9-c44fa443e13c" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_064ed5a4-5b78-401a-a89c-7c4c1585e189" xlink:type="arc"/>
  </link:calculationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.DEF
<SEQUENCE>11
<FILENAME>cgnx-20231231_def.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION DEFINITION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:277675e4-6a1f-436c-b28b-2310559dede0,g:0aa79d6e-08a3-463e-9769-9d2f36bbe043-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xbrldt="http://xbrl.org/2005/xbrldt" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link: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/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:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#dimension-domain"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/int/dim/arcrole/domain-member" xlink:type="simple" xlink:href="http://www.xbrl.org/2005/xbrldt-2005.xsd#domain-member"/>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:to="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_2edfdb58-3290-46b7-9906-b186fb1c9d5e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:to="loc_us-gaap_EquityComponentDomain_2edfdb58-3290-46b7-9906-b186fb1c9d5e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:to="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_d23b695c-b65d-4c9f-b572-f367a9aae8e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_CommonStockMember_d23b695c-b65d-4c9f-b572-f367a9aae8e2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_f5883e1f-2272-4f04-9278-b9de46311194" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_f5883e1f-2272-4f04-9278-b9de46311194" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_8b976740-898d-4f49-a28b-77e2a0cdcd95" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_RetainedEarningsMember_8b976740-898d-4f49-a28b-77e2a0cdcd95" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5b4f8965-b1d0-483d-8945-11dd0a58c9a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5b4f8965-b1d0-483d-8945-11dd0a58c9a9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a49ed8eb-56be-4532-8477-3fa8ee103fc2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockholdersEquity_a49ed8eb-56be-4532-8477-3fa8ee103fc2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_589fdc13-79be-4d72-a738-4de4f79948d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_CommonStockSharesIssued_589fdc13-79be-4d72-a738-4de4f79948d2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_49cf2535-c532-4114-9177-67e2631cff30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_49cf2535-c532-4114-9177-67e2631cff30" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_a5ff17be-8cc1-48c9-8944-05e504df635f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_a5ff17be-8cc1-48c9-8944-05e504df635f" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_b84c9831-ef4a-48a6-ae40-4d5641cdda39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_b84c9831-ef4a-48a6-ae40-4d5641cdda39" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_7e41a19b-5238-418d-8ca8-fc2d992fb49a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_7e41a19b-5238-418d-8ca8-fc2d992fb49a" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_d03e2dbc-3dfa-404d-88f5-e9cf83b75883" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_d03e2dbc-3dfa-404d-88f5-e9cf83b75883" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_96dd9896-5368-4a50-b681-0e496c97a0d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_DividendsCommonStockCash_96dd9896-5368-4a50-b681-0e496c97a0d9" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_ff5f6f24-3be4-400d-a636-4813032bc358" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_NetIncomeLoss_ff5f6f24-3be4-400d-a636-4813032bc358" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_f5586852-d84a-41c0-bf22-81a78427e162" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_f5586852-d84a-41c0-bf22-81a78427e162" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_2a148543-59cf-4a88-ba3d-489534ded7fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_2a148543-59cf-4a88-ba3d-489534ded7fe" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2f987aa3-7c90-4a38-9a02-cf5fc0f5c3ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2f987aa3-7c90-4a38-9a02-cf5fc0f5c3ab" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_5236e393-fe58-414b-b1b5-253373804061" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_5236e393-fe58-414b-b1b5-253373804061" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_d9bdb37b-5693-408e-8948-a6654d96c388" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_6a04371f-b76f-4dea-84a5-f5ea415167d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3f6047fe-febf-4cfb-84d6-830fac9a510b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3f6047fe-febf-4cfb-84d6-830fac9a510b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_15db8d00-1c01-4cbd-9ddc-d4be5944b4d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_BuildingMember_15db8d00-1c01-4cbd-9ddc-d4be5944b4d6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_6cbc5d5c-3995-4cc1-822b-3a47a78f4507" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_BuildingImprovementsMember_6cbc5d5c-3995-4cc1-822b-3a47a78f4507" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_bbfb8793-ff77-48ca-9321-c589574ee582" xlink:href="cgnx-20231231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_bbfb8793-ff77-48ca-9321-c589574ee582" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_c41f47bb-21d6-4005-b32c-0d262f6c7a80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_EquipmentMember_c41f47bb-21d6-4005-b32c-0d262f6c7a80" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_a66eb4f0-f137-4ffb-943f-e7a3a907bc42" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_a66eb4f0-f137-4ffb-943f-e7a3a907bc42" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:to="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_3f96dcfb-ad56-40bf-9885-6f854a4bc07c_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:to="loc_srt_RangeMember_3f96dcfb-ad56-40bf-9885-6f854a4bc07c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:to="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_c22a953c-36ff-435e-8985-c0bbc16949de" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:to="loc_srt_MinimumMember_c22a953c-36ff-435e-8985-c0bbc16949de" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_0833cd4b-69d5-4752-bea9-48647ac98ed1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:to="loc_srt_MaximumMember_0833cd4b-69d5-4752-bea9-48647ac98ed1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_0bf7e2b6-a7f0-4a4d-99c1-916e6530e11d" xlink:href="cgnx-20231231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_0bf7e2b6-a7f0-4a4d-99c1-916e6530e11d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_eed70692-a5d2-45c0-9556-1ab9e2376041" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_eed70692-a5d2-45c0-9556-1ab9e2376041" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_e27378b8-d094-47ec-a812-15c9a3e2f03f" xlink:href="cgnx-20231231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_e27378b8-d094-47ec-a812-15c9a3e2f03f" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_307edcc9-a538-4313-8361-01d7ebe4ae88_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_307edcc9-a538-4313-8361-01d7ebe4ae88_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_a78e92df-2743-40d2-b548-a61ca6fccc15" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_DistributionRightsMember_a78e92df-2743-40d2-b548-a61ca6fccc15" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_53435766-0768-433d-ae6a-6562b4adb75e" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_53435766-0768-433d-ae6a-6562b4adb75e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_1bb63611-cef0-48d6-a185-095a3e632aa7" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_1bb63611-cef0-48d6-a185-095a3e632aa7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_0115f905-7810-4fd5-91bb-32230a584435" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_0115f905-7810-4fd5-91bb-32230a584435" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_05cb4bc8-9ad6-4707-99c6-141145a7accc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_TrademarksMember_05cb4bc8-9ad6-4707-99c6-141145a7accc" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:to="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_1a899f67-008f-432e-8904-867479d79a8f_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:to="loc_srt_RangeMember_1a899f67-008f-432e-8904-867479d79a8f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:to="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a4108aff-fbb4-43b8-8abf-77b5f8513d36" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:to="loc_srt_MinimumMember_a4108aff-fbb4-43b8-8abf-77b5f8513d36" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_9a8d3747-cb9c-4801-92db-05a81ab92bff" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:to="loc_srt_MaximumMember_9a8d3747-cb9c-4801-92db-05a81ab92bff" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_f6ff4bc1-ecfb-4585-8e0c-e22ab2e7d7a3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_f6ff4bc1-ecfb-4585-8e0c-e22ab2e7d7a3" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesWarrantyDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:to="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_8e90f669-4710-42fd-a0c3-fba61fae5ebd_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:to="loc_srt_RangeMember_8e90f669-4710-42fd-a0c3-fba61fae5ebd_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:to="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_6bf3cc80-7c7a-4d2d-8e44-c328ac3a2265" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:to="loc_srt_MinimumMember_6bf3cc80-7c7a-4d2d-8e44-c328ac3a2265" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_e4e02836-977d-400b-8b95-c6d6c66dd671" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:to="loc_srt_MaximumMember_e4e02836-977d-400b-8b95-c6d6c66dd671" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_208414fc-4340-4439-9d11-2d01f7b40aa8" xlink:href="cgnx-20231231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:to="loc_cgnx_ProductWarrantyPeriod_208414fc-4340-4439-9d11-2d01f7b40aa8" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:to="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_d54da22b-785c-4b22-8fcc-e9c05c74b388_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:to="loc_srt_RangeMember_d54da22b-785c-4b22-8fcc-e9c05c74b388_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:to="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_77e80de7-65d3-4490-bcf0-99de6c656bc1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:to="loc_srt_MinimumMember_77e80de7-65d3-4490-bcf0-99de6c656bc1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_89ece996-6a2d-4ffe-8541-4223abcdac66" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:to="loc_srt_MaximumMember_89ece996-6a2d-4ffe-8541-4223abcdac66" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_139fb2be-ff08-4803-a61c-c87cab1cd69c" xlink:href="cgnx-20231231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:to="loc_cgnx_RevenuePaymentTerms_139fb2be-ff08-4803-a61c-c87cab1cd69c" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:to="loc_us-gaap_EquityComponentDomain_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:to="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_1491722c-456c-43ef-9497-8d103e944656" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_1491722c-456c-43ef-9497-8d103e944656" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_cd89a4fb-23bc-486b-8d0c-bd1004447183" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_cd89a4fb-23bc-486b-8d0c-bd1004447183" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f1f7ccc6-e11c-4122-9b8c-59ea029983f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f1f7ccc6-e11c-4122-9b8c-59ea029983f2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_b319be2a-f4ed-4288-8139-7f7342e1f56f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_b319be2a-f4ed-4288-8139-7f7342e1f56f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7480bb0e-6c0b-418e-9c0e-2700953a51f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7480bb0e-6c0b-418e-9c0e-2700953a51f5" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_4c0e30b4-86bd-4eba-9972-480ce05a43e1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_4c0e30b4-86bd-4eba-9972-480ce05a43e1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_ea5fcd78-c774-43ed-91a3-5faf33380313" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_ea5fcd78-c774-43ed-91a3-5faf33380313" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_5a564e17-bf03-464d-95f9-cecc3a4a11b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_5a564e17-bf03-464d-95f9-cecc3a4a11b5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_efa17303-be4d-49fb-b47e-0f331cbd676d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_efa17303-be4d-49fb-b47e-0f331cbd676d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_40d594a7-5710-4108-a92b-5a8c3addbf9e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_40d594a7-5710-4108-a92b-5a8c3addbf9e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_205d75df-fbf8-46a6-a9ec-1071ff9eb973" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_205d75df-fbf8-46a6-a9ec-1071ff9eb973" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_f55f9fcc-d645-42ab-9278-7950db539322" xlink:href="cgnx-20231231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_f55f9fcc-d645-42ab-9278-7950db539322" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_303eda9d-76be-4740-87b6-982dab8b5db8" xlink:href="cgnx-20231231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_303eda9d-76be-4740-87b6-982dab8b5db8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_432a1b3a-02b6-44f4-b95a-666433a2b54b" xlink:href="cgnx-20231231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_432a1b3a-02b6-44f4-b95a-666433a2b54b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_62671daf-a1ff-45de-b9ec-06fe467df124" xlink:href="cgnx-20231231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_62671daf-a1ff-45de-b9ec-06fe467df124" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_05beef37-67ec-441c-a558-f058b33b9db4" xlink:href="cgnx-20231231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_05beef37-67ec-441c-a558-f058b33b9db4" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_c47103ee-790a-48eb-ac38-25ccb7a78587" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_c47103ee-790a-48eb-ac38-25ccb7a78587" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_87caab89-dac6-4c16-9829-efcbc3c67603" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_87caab89-dac6-4c16-9829-efcbc3c67603" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:to="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_213e3def-70d3-4cea-a48e-987ad1c21c0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_213e3def-70d3-4cea-a48e-987ad1c21c0a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_59f0c133-8911-43cd-bcb9-e1c544fe85ae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_59f0c133-8911-43cd-bcb9-e1c544fe85ae" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_1404d9bc-e419-4fd5-92bd-81ee0573fe5f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_1404d9bc-e419-4fd5-92bd-81ee0573fe5f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_a1ff4515-ccaf-428f-912a-b576656c5ee9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_a1ff4515-ccaf-428f-912a-b576656c5ee9" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_f9c5a4f2-e2d1-4398-bc97-7a886ceeb9fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_MunicipalBondsMember_f9c5a4f2-e2d1-4398-bc97-7a886ceeb9fc" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_eb48a8af-ddee-4d67-a0f7-15a50023aae1" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_cgnx_AgencyBondsMember_eb48a8af-ddee-4d67-a0f7-15a50023aae1" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_300ed6ca-77e5-4a3a-8b17-926f16c4ebb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Cash"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_Cash_300ed6ca-77e5-4a3a-8b17-926f16c4ebb8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_237546f7-e2c7-4a29-bb82-24352abed3d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_237546f7-e2c7-4a29-bb82-24352abed3d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_691f7928-5af8-4784-8f04-56bb26f51848" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_691f7928-5af8-4784-8f04-56bb26f51848" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_63fdcde6-4840-421a-b741-22b95a342413" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_63fdcde6-4840-421a-b741-22b95a342413" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87671606-5b31-49ef-8b33-99c79d24121a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87671606-5b31-49ef-8b33-99c79d24121a" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_6937f940-1955-4ec5-9168-e80e2e5a1ec9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_LongTermInvestments_6937f940-1955-4ec5-9168-e80e2e5a1ec9" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_56404642-64e9-4035-be22-24634dd16183" xlink:href="cgnx-20231231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_56404642-64e9-4035-be22-24634dd16183" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_81c6628c-a488-481a-9a5f-65ba71b7ad7a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_81c6628c-a488-481a-9a5f-65ba71b7ad7a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d937473d-6762-4c7f-9774-9771f963f21a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d937473d-6762-4c7f-9774-9771f963f21a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_6173a3ca-d940-4ccf-afeb-e94c093561fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_6173a3ca-d940-4ccf-afeb-e94c093561fe" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_7b6d8f93-4544-4806-90bf-d527c5cbbbe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_7b6d8f93-4544-4806-90bf-d527c5cbbbe5" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_611770e0-1f39-4aad-8717-e1a30fc345ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_611770e0-1f39-4aad-8717-e1a30fc345ac" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_866e6715-caea-4cb6-81e8-e7398bae8061" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_MunicipalBondsMember_866e6715-caea-4cb6-81e8-e7398bae8061" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_245a8623-0cee-4159-8452-816624403f82" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_cgnx_AgencyBondsMember_245a8623-0cee-4159-8452-816624403f82" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed_default" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:to="loc_cgnx_InvestmentDurationDomain_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:to="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_a648c303-7b50-47f9-b6ad-f737552376cf" xlink:href="cgnx-20231231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:to="loc_cgnx_LongTermInvestmentsMember_a648c303-7b50-47f9-b6ad-f737552376cf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_7a071905-6044-4b9a-bcd6-ff9b6c12be3f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_7a071905-6044-4b9a-bcd6-ff9b6c12be3f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_02f51ae3-20a5-488e-b549-91544c17f0ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_02f51ae3-20a5-488e-b549-91544c17f0ca" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_2ce0467f-975f-4fe6-b6c6-a920bcf2d7ef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_2ce0467f-975f-4fe6-b6c6-a920bcf2d7ef" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_2240bb91-78a6-4613-98e9-a3d37d566cbd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_2240bb91-78a6-4613-98e9-a3d37d566cbd" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_6158c605-654a-4e02-a625-1b14c3406b93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_6158c605-654a-4e02-a625-1b14c3406b93" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_4d4d71cc-d475-427a-a3d0-c73428ac0c1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_4d4d71cc-d475-427a-a3d0-c73428ac0c1c" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:to="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b5646987-98e3-4caf-94df-924e489cf499_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_b5646987-98e3-4caf-94df-924e489cf499_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d3dd0c76-8b7c-45de-97df-304970f97f54" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d3dd0c76-8b7c-45de-97df-304970f97f54" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_0460786c-5b26-4e18-a06c-b7f630427780" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_0460786c-5b26-4e18-a06c-b7f630427780" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_9d29985a-5bbc-40de-b974-6ca6bc9df59f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_9d29985a-5bbc-40de-b974-6ca6bc9df59f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_f645da01-3baa-43ff-8d73-b401265843b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_f645da01-3baa-43ff-8d73-b401265843b8" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_8f40e718-cc76-4970-a3d0-76e4f499735e" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_cgnx_AgencyBondsMember_8f40e718-cc76-4970-a3d0-76e4f499735e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_56c41d63-461a-46aa-ba00-32e1f959bfd5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_MunicipalBondsMember_56c41d63-461a-46aa-ba00-32e1f959bfd5" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_a421e239-b4e7-4a59-aff0-32b50068822d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_a421e239-b4e7-4a59-aff0-32b50068822d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ca2da39c-8747-4477-aba2-1e85c0eaf47a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ca2da39c-8747-4477-aba2-1e85c0eaf47a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d70862b5-07b5-499a-96a8-e444abdd26b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d70862b5-07b5-499a-96a8-e444abdd26b7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_a98a45ea-a40d-4de7-aa3c-e424d2d305e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_a98a45ea-a40d-4de7-aa3c-e424d2d305e7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_515becdf-451b-4cf9-bb62-08bd43ff6228" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_515becdf-451b-4cf9-bb62-08bd43ff6228" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_7f71055b-52e1-47c1-9913-a54f64fdbfe3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_7f71055b-52e1-47c1-9913-a54f64fdbfe3" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:to="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_a41f3667-cad7-4fe1-aa8b-75c4e35dc16d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_a41f3667-cad7-4fe1-aa8b-75c4e35dc16d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_310fc572-3db9-4854-a78a-185bf9f7e8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_310fc572-3db9-4854-a78a-185bf9f7e8cf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_85d494b0-a03a-4f8a-b502-f7de4b701cfc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_85d494b0-a03a-4f8a-b502-f7de4b701cfc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_043e6e8b-334c-4b17-9629-178cd2ae5ed1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_043e6e8b-334c-4b17-9629-178cd2ae5ed1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_5ea44c86-f33f-4aef-b41b-e0675776bf62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_MunicipalBondsMember_5ea44c86-f33f-4aef-b41b-e0675776bf62" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_b9d04753-6bee-4195-bdce-6544e90e5e48" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_cgnx_AgencyBondsMember_b9d04753-6bee-4195-bdce-6544e90e5e48" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c9e2dd41-e71b-4c47-9455-23d4816b29aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c9e2dd41-e71b-4c47-9455-23d4816b29aa" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_47e2d4fd-1512-49a4-a95e-4432198ae909" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_47e2d4fd-1512-49a4-a95e-4432198ae909" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_1b887106-038a-4feb-bc0c-a5e7500cef4c" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_1b887106-038a-4feb-bc0c-a5e7500cef4c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_fa2e8422-0bcd-429d-b447-194b2af07e96" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_fa2e8422-0bcd-429d-b447-194b2af07e96" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_2c9a8d8b-e497-4ff5-bd41-3d870c65e5e4" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_2c9a8d8b-e497-4ff5-bd41-3d870c65e5e4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3185479d-6af8-4797-8b67-0dc8df408ac4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3185479d-6af8-4797-8b67-0dc8df408ac4" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_28f517a2-31a2-42dc-a90b-5c5fcc03c144" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_28f517a2-31a2-42dc-a90b-5c5fcc03c144" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#InventoriesInventoriesDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryCurrentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5da3045f-dec0-4dd3-a877-1ecf0adc441e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_5da3045f-dec0-4dd3-a877-1ecf0adc441e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_be8818a4-f29d-4c06-b519-b8049cc9ec13" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:to="loc_cgnx_MoritexCorporationMember_be8818a4-f29d-4c06-b519-b8049cc9ec13" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f594241d-8fab-4258-9c57-b848383a02f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f594241d-8fab-4258-9c57-b848383a02f6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_40cadb91-d9c3-4afc-9c98-ecf576bb2c7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_40cadb91-d9c3-4afc-9c98-ecf576bb2c7e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_14878f51-ce86-4b98-85eb-591f9d95626f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_14878f51-ce86-4b98-85eb-591f9d95626f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_db24479f-c0bf-488c-8c62-fd39f209cf0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryNet_db24479f-c0bf-488c-8c62-fd39f209cf0b" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_28cfd072-12ff-4b6d-8f8e-06aa77b0f0c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_28cfd072-12ff-4b6d-8f8e-06aa77b0f0c1" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bd5d5484-8c52-464d-91ef-f8971a649735_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bd5d5484-8c52-464d-91ef-f8971a649735_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_419a88b3-d631-4cbf-a1f5-dc0cfc2786fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_LandMember_419a88b3-d631-4cbf-a1f5-dc0cfc2786fb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_624aeb08-650b-48e3-999f-7c719b040fd1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_BuildingMember_624aeb08-650b-48e3-999f-7c719b040fd1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_21d6ef74-2dbf-47ea-8004-2ac5048dd61d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_BuildingImprovementsMember_21d6ef74-2dbf-47ea-8004-2ac5048dd61d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_2c5f129b-a18c-45db-ac12-2eba70cdfbce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_2c5f129b-a18c-45db-ac12-2eba70cdfbce" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_30c59147-ee1c-4bec-888f-f73e316f5188" xlink:href="cgnx-20231231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_cgnx_HardwareAndSoftwareMember_30c59147-ee1c-4bec-888f-f73e316f5188" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_9c625ccd-4abd-4017-a97c-933b886d4415" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_EquipmentMember_9c625ccd-4abd-4017-a97c-933b886d4415" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_0100cd59-e872-490f-b2b8-99ba48662711" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_0100cd59-e872-490f-b2b8-99ba48662711" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_bf8936b6-cb03-40b0-a53f-edad92657ba2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_bf8936b6-cb03-40b0-a53f-edad92657ba2" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_89cfd570-d7ef-4cd3-8966-907fc4cf824a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_89cfd570-d7ef-4cd3-8966-907fc4cf824a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_05fed76b-8e65-41e3-9e98-2df01e7e2f88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_05fed76b-8e65-41e3-9e98-2df01e7e2f88" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:to="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_d7384f97-4876-4acd-bcc1-426fb7e25cfb_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:to="loc_us-gaap_CatastrophicEventDomain_d7384f97-4876-4acd-bcc1-426fb7e25cfb_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:to="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_c018dc48-fb39-48e9-9541-d8aa6c36df26" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:to="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_c018dc48-fb39-48e9-9541-d8aa6c36df26" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_9113d465-c9af-45e0-9369-922d6935e1b3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_9113d465-c9af-45e0-9369-922d6935e1b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_2bf1be7f-eac0-490f-8722-70ef641b4fb5" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:to="loc_cgnx_MoritexCorporationMember_2bf1be7f-eac0-490f-8722-70ef641b4fb5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_7c817e22-0c3a-4852-a8a1-b7e3a82d0358" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_7c817e22-0c3a-4852-a8a1-b7e3a82d0358" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_349dd7ab-de7a-4932-a1cb-09bf8f58dccc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_349dd7ab-de7a-4932-a1cb-09bf8f58dccc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_c44f6bd0-ad73-45a0-a2cb-bdd49de11c9c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_c44f6bd0-ad73-45a0-a2cb-bdd49de11c9c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_d32cbcd3-571a-4bd0-96d5-f5e74e495866" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_d32cbcd3-571a-4bd0-96d5-f5e74e495866" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_666c393d-4d97-4404-8fac-43045146f37f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_666c393d-4d97-4404-8fac-43045146f37f" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_646b0bd5-3b8d-433d-842d-65bb80ccad69_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:to="loc_srt_SegmentGeographicalDomain_646b0bd5-3b8d-433d-842d-65bb80ccad69_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:to="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember_43a4cda3-cc0e-44f7-82a1-5e3b09397428" xlink:href="cgnx-20231231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_cgnx_SouthboroughMassachusettsMember_43a4cda3-cc0e-44f7-82a1-5e3b09397428" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember_00bfaec6-2598-4fcf-a5c9-fb17c8fa145b" xlink:href="cgnx-20231231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_cgnx_BacNinhVietnamMember_00bfaec6-2598-4fcf-a5c9-fb17c8fa145b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_b04fb768-44ec-4c4b-a927-c3400cdf5c5c" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_SG"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_country_SG_b04fb768-44ec-4c4b-a927-c3400cdf5c5c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_250c7b60-654a-4a42-a974-2d3628be7cc8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:to="loc_us-gaap_ContractTerminationMember_250c7b60-654a-4a42-a974-2d3628be7cc8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d4bfc8cf-b7a3-485c-b541-d465b5a91349_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_d4bfc8cf-b7a3-485c-b541-d465b5a91349_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember_b7c89d75-bc5b-4adc-96ee-be92b514b8e1" xlink:href="cgnx-20231231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:to="loc_cgnx_A88000SquareFootPremisesMember_b7c89d75-bc5b-4adc-96ee-be92b514b8e1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember_914e808e-ecd0-43e1-9a5d-3d8f66716017" xlink:href="cgnx-20231231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:to="loc_cgnx_A27000SquareFootPremisesMember_914e808e-ecd0-43e1-9a5d-3d8f66716017" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_6a41fca6-0d15-430e-81dc-ea34b7e701d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseExpense_6a41fca6-0d15-430e-81dc-ea34b7e701d7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_f5a4ad9a-d467-44b7-9de9-0d5b3b65835a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeasePayments_f5a4ad9a-d467-44b7-9de9-0d5b3b65835a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_5ea8da93-3715-4732-a0ec-7879a7a24a27" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_5ea8da93-3715-4732-a0ec-7879a7a24a27" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_e8ce8873-a020-4e5f-b588-b05637710f24" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_e8ce8873-a020-4e5f-b588-b05637710f24" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_29da6738-975f-4182-840a-1d053b8e261e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseLiability_29da6738-975f-4182-840a-1d053b8e261e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_ca440df9-9f35-4bf6-82cd-9e3df7cf177c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetRentableArea"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_NetRentableArea_ca440df9-9f35-4bf6-82cd-9e3df7cf177c" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_51ba926b-5796-4a5c-9a86-e818da64c49e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_51ba926b-5796-4a5c-9a86-e818da64c49e" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_efb63e7a-8b74-41d8-9b6d-19429bd7e72f" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_efb63e7a-8b74-41d8-9b6d-19429bd7e72f" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_67245332-c5e7-453e-9903-2d92169573f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_67245332-c5e7-453e-9903-2d92169573f7" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_1f88e857-a06f-4550-9e07-5b32c9fe51ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_1f88e857-a06f-4550-9e07-5b32c9fe51ba" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_dac1f3dc-b1de-4943-a44a-8ecfb5fd11ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_dac1f3dc-b1de-4943-a44a-8ecfb5fd11ad" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents_bcb3afa2-d79e-4c8b-8d5e-edce8f066899" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_LesseeOperatingLeaseComponents_bcb3afa2-d79e-4c8b-8d5e-edce8f066899" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d85b749-fdf9-4b61-8a3f-273551b8b91b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d85b749-fdf9-4b61-8a3f-273551b8b91b" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_0c80547f-f2d3-40db-97ab-9042ddc81b0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_0c80547f-f2d3-40db-97ab-9042ddc81b0c" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeasePayment_08ee7ebc-7e98-49d8-8ce7-21d3b3632955" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableLeasePayment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_VariableLeasePayment_08ee7ebc-7e98-49d8-8ce7-21d3b3632955" xlink:type="arc" order="14"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#GoodwillChangesintheCarryingValueofGoodwillDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_e85395c8-3a9a-4526-b9d9-05cc24bab7f3" xlink:href="cgnx-20231231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_e85395c8-3a9a-4526-b9d9-05cc24bab7f3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_a4f39efc-c16a-434c-8283-86578331d306" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:to="loc_cgnx_MoritexCorporationMember_a4f39efc-c16a-434c-8283-86578331d306" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:to="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_93cbb894-17c4-439a-8bcf-d072eb43cb7a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_Goodwill_93cbb894-17c4-439a-8bcf-d072eb43cb7a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_e57916f5-c015-4b50-8b8a-c0922b8dc7df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_e57916f5-c015-4b50-8b8a-c0922b8dc7df" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_9ed0efc6-1e8f-468c-9f8a-2f4a1e94242d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_9ed0efc6-1e8f-468c-9f8a-2f4a1e94242d" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_9f35a8ed-d6a8-40ed-9ad1-67ad4e7b2c5b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_8c6c4b81-c643-4e1e-927c-1afea67356a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DistributionRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_DistributionRightsMember_8c6c4b81-c643-4e1e-927c-1afea67356a9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_5e7c58af-5546-405d-83c9-b7db9c5bc31f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_5e7c58af-5546-405d-83c9-b7db9c5bc31f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_532b20c8-5ea5-4301-bd64-cd68784edfdf" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_532b20c8-5ea5-4301-bd64-cd68784edfdf" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_421eaa3c-be8f-4f83-b14e-d391369e1894" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_421eaa3c-be8f-4f83-b14e-d391369e1894" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_92385586-2854-4383-b7ba-2227b2759dcc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_TrademarksMember_92385586-2854-4383-b7ba-2227b2759dcc" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_b9444a3b-5900-4b03-ac40-c906005a336b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_b9444a3b-5900-4b03-ac40-c906005a336b" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_05bceb04-09cb-4e8f-a43f-bb8cae66f4c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_05bceb04-09cb-4e8f-a43f-bb8cae66f4c0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_675dd385-3266-448f-844a-d0f9e59ac649" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_675dd385-3266-448f-844a-d0f9e59ac649" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_67221aea-c517-4032-beca-b1aded155273" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_67221aea-c517-4032-beca-b1aded155273" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_c070084b-9d56-4253-9667-581862aee37b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_c070084b-9d56-4253-9667-581862aee37b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_0a245c6a-0923-40ea-af2b-3c554aed0370" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_0a245c6a-0923-40ea-af2b-3c554aed0370" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_d40bfa3f-c435-40c4-a281-266a5ec8a55e" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_d40bfa3f-c435-40c4-a281-266a5ec8a55e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_1f509de5-6267-44fe-bf34-cde77128204a" xlink:href="cgnx-20231231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_1f509de5-6267-44fe-bf34-cde77128204a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_f1c8b286-7bfb-4475-8ab3-7fa9d3362c62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_CustomerRelationshipsMember_f1c8b286-7bfb-4475-8ab3-7fa9d3362c62" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_400e9b33-5b99-42da-824f-275a67c19697" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_CompletedTechnologyMember_400e9b33-5b99-42da-824f-275a67c19697" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_bfc409c6-02e1-4093-9894-4bb9e520ede8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_TrademarksMember_bfc409c6-02e1-4093-9894-4bb9e520ede8" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_36fd268c-1ff0-425a-aff1-094e6ebf405e" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:to="loc_cgnx_MoritexCorporationMember_36fd268c-1ff0-425a-aff1-094e6ebf405e" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_a91210f1-acdf-4496-a29e-7d3d0528f562" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_a91210f1-acdf-4496-a29e-7d3d0528f562" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_ade39a3d-f9fb-4bf5-9ddd-186ee9054775" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_ade39a3d-f9fb-4bf5-9ddd-186ee9054775" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_25797bf1-de13-4bdd-b4d2-4e291351332d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_25797bf1-de13-4bdd-b4d2-4e291351332d" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsAdditionalDetailsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:to="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:to="loc_us-gaap_HedgingDesignationDomain_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:to="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_ebc30a89-12e3-4af8-8ff7-dfe18e04fa6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:to="loc_us-gaap_NondesignatedMember_ebc30a89-12e3-4af8-8ff7-dfe18e04fa6f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:to="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_69de7b2a-914d-4445-9f0b-e99143042cc6_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_69de7b2a-914d-4445-9f0b-e99143042cc6_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember_61e6a835-392e-4d2f-a502-4b1790dbd327" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:to="loc_us-gaap_ForeignExchangeForwardMember_61e6a835-392e-4d2f-a502-4b1790dbd327" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_78dd6e95-e074-4bf3-961d-fedc278fc8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_78dd6e95-e074-4bf3-961d-fedc278fc8cf" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount_3dd13514-db7e-4e05-aeab-c5ceed2c0a80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_DerivativeNotionalAmount_3dd13514-db7e-4e05-aeab-c5ceed2c0a80" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_32f62cec-caad-4970-8971-86b5a46ac18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_32f62cec-caad-4970-8971-86b5a46ac18d" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:to="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:to="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_09fdb41e-c817-4014-92b7-33658c602efc_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:to="loc_us-gaap_HedgingDesignationDomain_09fdb41e-c817-4014-92b7-33658c602efc_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:to="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_00545128-5b91-4333-9058-5bfd960ffe02" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:to="loc_us-gaap_NondesignatedMember_00545128-5b91-4333-9058-5bfd960ffe02" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CurrencyAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:to="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_aa7c6967-9eb9-4504-aa1a-e31f151fc49c_default" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:to="loc_currency_AllCurrenciesDomain_aa7c6967-9eb9-4504-aa1a-e31f151fc49c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_AllCurrenciesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:to="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_37f71af4-e9ac-4308-a6cb-9d9a6873bb4f" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_EUR"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_EUR_37f71af4-e9ac-4308-a6cb-9d9a6873bb4f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_5fe47ab7-534d-40db-981c-81885460fe61" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_JPY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_JPY_5fe47ab7-534d-40db-981c-81885460fe61" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_fdd0e0b5-25c3-4812-ac1e-7ba65fd014f7" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_MXN"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_MXN_fdd0e0b5-25c3-4812-ac1e-7ba65fd014f7" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_a29a15e2-5b3f-4908-9168-76783da853fb" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_GBP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_GBP_a29a15e2-5b3f-4908-9168-76783da853fb" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_9b8c2aee-ee3f-494a-a57e-94db764db9eb" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_HUF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_HUF_9b8c2aee-ee3f-494a-a57e-94db764db9eb" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_06eb2c86-97f4-4f1e-b7d0-8604ce7d7188" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CAD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CAD_06eb2c86-97f4-4f1e-b7d0-8604ce7d7188" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_49365978-bfb2-403a-ae3c-006df2a1a050" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CNY"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CNY_49365978-bfb2-403a-ae3c-006df2a1a050" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_3f35e5d6-be02-40cb-aa57-67097c3f3001" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CHF"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CHF_3f35e5d6-be02-40cb-aa57-67097c3f3001" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_3572389e-e955-47a5-8234-26e405e73068" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_SGD"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_SGD_3572389e-e955-47a5-8234-26e405e73068" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_580190ac-7e31-4721-b61b-e2a48d310db1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_580190ac-7e31-4721-b61b-e2a48d310db1" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:to="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_0953ba1b-13b0-44d5-bf35-e049e1d25e20_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:to="loc_us-gaap_HedgingDesignationDomain_0953ba1b-13b0-44d5-bf35-e049e1d25e20_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:to="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_2c3da0be-3054-4efe-a9ea-2ee0a13a2d57" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:to="loc_us-gaap_NondesignatedMember_2c3da0be-3054-4efe-a9ea-2ee0a13a2d57" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_15d12b12-91ce-4859-847f-03bb5905a883" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:to="loc_us-gaap_DerivativeAssets_15d12b12-91ce-4859-847f-03bb5905a883" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_2abee7c0-5619-4e6a-93af-e7c993307de0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:to="loc_us-gaap_DerivativeLiabilities_2abee7c0-5619-4e6a-93af-e7c993307de0" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:to="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_01ab31f0-7fde-4a61-a23d-4cba5042d129_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:to="loc_us-gaap_HedgingDesignationDomain_01ab31f0-7fde-4a61-a23d-4cba5042d129_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:to="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_39d55a9e-6125-4ac3-884c-85febbb0d0b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:to="loc_us-gaap_NondesignatedMember_39d55a9e-6125-4ac3-884c-85febbb0d0b3" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_36e11ff4-93d2-4ef8-bc8a-572b73bdca82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_36e11ff4-93d2-4ef8-bc8a-572b73bdca82" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionDisaggregationbyGeographyandTypeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:to="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_24839264-d9fe-41d7-9920-f15c1d824cf7_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:to="loc_srt_SegmentGeographicalDomain_24839264-d9fe-41d7-9920-f15c1d824cf7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:to="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_6f87d92d-c5f4-457d-9654-2fdc5c6a8f82" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_srt_AmericasMember_6f87d92d-c5f4-457d-9654-2fdc5c6a8f82" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_5a2e9663-eae0-4880-9b2e-03d2c9690808" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_srt_EuropeMember_5a2e9663-eae0-4880-9b2e-03d2c9690808" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_6f0996c3-42e3-4605-9eb9-4a1e7ac87e19" xlink:href="cgnx-20231231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_cgnx_GreaterChinaMember_6f0996c3-42e3-4605-9eb9-4a1e7ac87e19" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_ca28610a-5990-4bba-b103-450cec6c4931" xlink:href="cgnx-20231231.xsd#cgnx_OtherAsiaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_cgnx_OtherAsiaMember_ca28610a-5990-4bba-b103-450cec6c4931" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:to="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:to="loc_srt_ProductsAndServicesDomain_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:to="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_03b7fc8c-8c80-4f0e-b6b7-c2b0317b343a" xlink:href="cgnx-20231231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:to="loc_cgnx_StandardProductandServicesMember_03b7fc8c-8c80-4f0e-b6b7-c2b0317b343a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_148a3ab5-5fbc-4bc6-a2c9-0b5269d3357f" xlink:href="cgnx-20231231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_148a3ab5-5fbc-4bc6-a2c9-0b5269d3357f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c339f0de-da87-49b1-a96d-364302c5533a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c339f0de-da87-49b1-a96d-364302c5533a" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ShareholdersEquityAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_5aceca7a-ac9d-4ed8-bd00-396858582211" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_5aceca7a-ac9d-4ed8-bd00-396858582211" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_ce0f0238-70ac-49f9-8a69-2a91abde2621" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_ce0f0238-70ac-49f9-8a69-2a91abde2621" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_971cbaf6-d715-4809-b86c-f9d4c3dfafa8" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_971cbaf6-d715-4809-b86c-f9d4c3dfafa8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_c6d073a1-b131-4949-a34a-cd9253a40bb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_c6d073a1-b131-4949-a34a-cd9253a40bb6" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_612fa3a6-d126-4ac2-9efc-8ae761c2991a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_612fa3a6-d126-4ac2-9efc-8ae761c2991a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_3f6822e8-bfec-4910-8c7b-fb83c1086c1a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_3f6822e8-bfec-4910-8c7b-fb83c1086c1a" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_13870c5f-9928-4b83-9a30-5be3c06cb122" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_13870c5f-9928-4b83-9a30-5be3c06cb122" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_fb1694df-44f1-4371-8f70-d2acf3b74892" xlink:href="cgnx-20231231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_fb1694df-44f1-4371-8f70-d2acf3b74892" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9973a94a-1db7-479c-ac66-4bf2d6ac0077" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9973a94a-1db7-479c-ac66-4bf2d6ac0077" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_3749c116-d35a-4d79-9acb-679b9a724f25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_3749c116-d35a-4d79-9acb-679b9a724f25" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_7b2e4732-a62a-49c2-aafc-29a59f518d79" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_7b2e4732-a62a-49c2-aafc-29a59f518d79" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_f84380ee-0da8-4ada-8134-bcd6d39eb507" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_f84380ee-0da8-4ada-8134-bcd6d39eb507" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_2aded3bc-af98-4636-863b-24e303e72869" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_2aded3bc-af98-4636-863b-24e303e72869" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_d5234524-9c5f-4d96-b5ea-f3f22398ebd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_d5234524-9c5f-4d96-b5ea-f3f22398ebd2" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_1c7f8431-7f45-4516-8f18-007cfcb5c5ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_1c7f8431-7f45-4516-8f18-007cfcb5c5ab" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_9d1f7fac-1fe3-45fc-835f-dd2ed8e9cd30" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_9d1f7fac-1fe3-45fc-835f-dd2ed8e9cd30" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_abbebfd7-5b39-41a6-a23d-95a6fe613af8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_abbebfd7-5b39-41a6-a23d-95a6fe613af8" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_37fd808a-28fc-4f17-812d-2d39ebaa01d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividends"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PaymentsOfDividends_37fd808a-28fc-4f17-812d-2d39ebaa01d2" xlink:type="arc" order="14"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_a487c1ee-3771-4332-9c56-735aec0e6b89_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:to="loc_srt_RangeMember_a487c1ee-3771-4332-9c56-735aec0e6b89_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:to="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_9f5a8292-b8ab-403a-973b-929a3e99ff66" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:to="loc_srt_MinimumMember_9f5a8292-b8ab-403a-973b-929a3e99ff66" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d95a10a5-03eb-431f-9646-5918f84a73ed" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:to="loc_srt_MaximumMember_d95a10a5-03eb-431f-9646-5918f84a73ed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f3568a5d-7b55-448c-9b3b-a9ff868741b3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_f3568a5d-7b55-448c-9b3b-a9ff868741b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_43ba5879-7cc9-4a06-9e88-4bccaa6c34d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_EmployeeStockOptionMember_43ba5879-7cc9-4a06-9e88-4bccaa6c34d9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_d949b75b-3ae6-4a32-ac0e-982c48b0892f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_PerformanceSharesMember_d949b75b-3ae6-4a32-ac0e-982c48b0892f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_c042abf3-a130-4ff4-a15e-1af84e3847a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_c042abf3-a130-4ff4-a15e-1af84e3847a2" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_93cfa14f-ed0a-4749-bb62-324f035bf2a1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:to="loc_us-gaap_PlanNameDomain_93cfa14f-ed0a-4749-bb62-324f035bf2a1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:to="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_c3f91101-5d59-4d52-a8a3-69732bd4f161" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:to="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_c3f91101-5d59-4d52-a8a3-69732bd4f161" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_f31a7117-6ef4-43d1-9947-75c7fc135c7b" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:to="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_f31a7117-6ef4-43d1-9947-75c7fc135c7b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_c733cb17-7fa5-454c-8cfa-5b49c70856c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_c733cb17-7fa5-454c-8cfa-5b49c70856c9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_1f00960e-94e4-4615-98ee-f9d82bd9004b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_1f00960e-94e4-4615-98ee-f9d82bd9004b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_8b5ede7b-a51f-4436-bbb4-254edd6015ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_8b5ede7b-a51f-4436-bbb4-254edd6015ac" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_9a8af5cb-0f18-492b-85d3-559317c18e56" xlink:href="cgnx-20231231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_9a8af5cb-0f18-492b-85d3-559317c18e56" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9ce15dc0-d793-43cf-a6b1-383f1a39d9a3" xlink:href="cgnx-20231231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9ce15dc0-d793-43cf-a6b1-383f1a39d9a3" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_eac6f37f-1bb1-496f-a4a5-92be2c9f110f" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_eac6f37f-1bb1-496f-a4a5-92be2c9f110f" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_52e55365-a733-43cf-a2ae-64513c2040e7" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_52e55365-a733-43cf-a2ae-64513c2040e7" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d1341cd1-92d6-43eb-bb7e-ea5dc37703ab" xlink:href="cgnx-20231231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d1341cd1-92d6-43eb-bb7e-ea5dc37703ab" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6baa8126-b8fd-48c9-b121-20b58e58053f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6baa8126-b8fd-48c9-b121-20b58e58053f" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_64fd440f-4ffe-4121-885d-693ff0293565" xlink:href="cgnx-20231231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_64fd440f-4ffe-4121-885d-693ff0293565" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_c6ce1a3f-6427-4e9f-8960-a0e4c9b23bfb" xlink:href="cgnx-20231231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_c6ce1a3f-6427-4e9f-8960-a0e4c9b23bfb" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_177c1574-61a0-475d-a52d-7f89b2a046b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_177c1574-61a0-475d-a52d-7f89b2a046b5" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_afa4c3aa-1a86-46dc-95fd-fc62f0551b58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_afa4c3aa-1a86-46dc-95fd-fc62f0551b58" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_08e200c4-c56e-486e-a5cf-d75ee41a462d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_08e200c4-c56e-486e-a5cf-d75ee41a462d" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_11023ee0-71ac-4735-802f-b944871acb82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_11023ee0-71ac-4735-802f-b944871acb82" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_b9747675-6733-4516-a917-2c95b277cbe9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_b9747675-6733-4516-a917-2c95b277cbe9" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0c20193-16fa-4175-9aec-d31a06f99b97" xlink:href="cgnx-20231231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0c20193-16fa-4175-9aec-d31a06f99b97" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d1e058f3-1621-4551-ad70-e4232d281f83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d1e058f3-1621-4551-ad70-e4232d281f83" xlink:type="arc" order="17"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_1a94a942-4110-4e57-a2dc-d270abaddbe1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_1a94a942-4110-4e57-a2dc-d270abaddbe1" xlink:type="arc" order="18"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_29e638b7-7ccb-4ab8-810c-4c324eb16392" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_29e638b7-7ccb-4ab8-810c-4c324eb16392" xlink:type="arc" order="19"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2a4e8b2e-acfd-4827-aa83-0f3d054b59f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2a4e8b2e-acfd-4827-aa83-0f3d054b59f8" xlink:type="arc" order="20"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_5a53030b-4999-46bc-9400-c897d3d7500b" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_5a53030b-4999-46bc-9400-c897d3d7500b" xlink:type="arc" order="21"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:to="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_6c49c481-3ffe-4b1f-b3d4-7da580d027a7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_6c49c481-3ffe-4b1f-b3d4-7da580d027a7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_35bbab47-5cd4-4858-a89c-346aae4512bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:to="loc_us-gaap_EmployeeStockOptionMember_35bbab47-5cd4-4858-a89c-346aae4512bb" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_f726230d-e7a5-4b53-bbb1-797b93fb4a3e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:to="loc_us-gaap_RestrictedStockMember_f726230d-e7a5-4b53-bbb1-797b93fb4a3e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_a14e23dd-9214-4565-b3ef-e0aff2d0be32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_a14e23dd-9214-4565-b3ef-e0aff2d0be32" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_57fb0f1b-631d-4a2f-b2d0-c0339ef533d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_57fb0f1b-631d-4a2f-b2d0-c0339ef533d4" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_72f7d63a-1a4c-4cf9-af97-f7dd58ab54e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_72f7d63a-1a4c-4cf9-af97-f7dd58ab54e6" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_babe1377-34d0-40b3-a8ae-af1876637adb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_babe1377-34d0-40b3-a8ae-af1876637adb" xlink:type="arc" order="3"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:to="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_fce42ac2-ff46-413c-942c-66771ebc726c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_fce42ac2-ff46-413c-942c-66771ebc726c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cd3c496c-b182-4e4e-9cad-0bf15106b3ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:to="loc_us-gaap_RestrictedStockMember_cd3c496c-b182-4e4e-9cad-0bf15106b3ed" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_25412cfd-7bb8-457c-93c2-dbda74b84fc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_25412cfd-7bb8-457c-93c2-dbda74b84fc6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_e8af275f-c2aa-4b60-ae30-aecd0eaf10fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_e8af275f-c2aa-4b60-ae30-aecd0eaf10fb" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_80cb494a-ae4d-4aaa-a551-40f521af4342" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_80cb494a-ae4d-4aaa-a551-40f521af4342" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_38487e95-be6a-4b27-8738-748eace74eed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_38487e95-be6a-4b27-8738-748eace74eed" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4a8743fd-0c1f-4e6a-830e-73ab2d775de6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_81c7700a-d5e5-41bd-bd75-f583f9de7844" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_81c7700a-d5e5-41bd-bd75-f583f9de7844" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a8bfe2a3-a91c-43fa-b15d-2ce98cc98ddd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a8bfe2a3-a91c-43fa-b15d-2ce98cc98ddd" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_c3cbc178-3396-4613-9e7b-6508f1682d8c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_c3cbc178-3396-4613-9e7b-6508f1682d8c" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_91c15cef-8bcd-4cd5-ac82-07847dccb27e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_91c15cef-8bcd-4cd5-ac82-07847dccb27e" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_f01ea2aa-0d87-425e-b084-5f554dea9153" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_e701b8eb-86ee-419d-9f09-a8b0532808a4" xlink:href="cgnx-20231231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_cgnx_ProductCostOfRevenueMember_e701b8eb-86ee-419d-9f09-a8b0532808a4" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_c347b09e-3d66-46b5-b036-5683f9bc87c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_c347b09e-3d66-46b5-b036-5683f9bc87c0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_35282aa9-a397-4478-85e3-bbace0519f8e" xlink:href="cgnx-20231231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_35282aa9-a397-4478-85e3-bbace0519f8e" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_ad2158a3-b02e-4942-b8d8-446f3fa8615b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_ad2158a3-b02e-4942-b8d8-446f3fa8615b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_abffe805-9749-41d8-972c-06738de87e76" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_abffe805-9749-41d8-972c-06738de87e76" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_f4158e17-ba33-4ab7-a1f6-792f28aafdb1" xlink:href="cgnx-20231231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_f4158e17-ba33-4ab7-a1f6-792f28aafdb1" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:to="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_50ab3958-e29b-424e-a854-705fa5642035_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_50ab3958-e29b-424e-a854-705fa5642035_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_67b4ec03-4e9e-4ec2-9094-774be319fd8f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:to="loc_us-gaap_PerformanceSharesMember_67b4ec03-4e9e-4ec2-9094-774be319fd8f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_58fbc739-8d99-4e83-96d6-0b82adad89c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_58fbc739-8d99-4e83-96d6-0b82adad89c7" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_064f37ec-175a-4244-b9dd-23517c94698f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_064f37ec-175a-4244-b9dd-23517c94698f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3e27be3a-f71d-41aa-9705-fb14fddd98ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3e27be3a-f71d-41aa-9705-fb14fddd98ab" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_dc98c3df-e75a-40d2-90fc-535a4f85c80a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_dc98c3df-e75a-40d2-90fc-535a4f85c80a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_bc9489a6-dc22-4338-853e-3f039383bce0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_bc9489a6-dc22-4338-853e-3f039383bce0" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_b64f438c-3ae3-4158-8c65-b9b2d73af376" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_b64f438c-3ae3-4158-8c65-b9b2d73af376" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_190888e6-1e7e-4199-9d22-dea30412f475" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_190888e6-1e7e-4199-9d22-dea30412f475" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_e3d88417-1f0e-47b3-8ebb-80679c015615" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_e3d88417-1f0e-47b3-8ebb-80679c015615" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1663a916-a5a1-458d-8dc6-36f52fe3f085" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9a951c-5dda-4d17-9698-2c6645fb926b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesAdditionalInformationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_edfb1f77-2f6e-46de-bc32-8b741e51d45c_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_edfb1f77-2f6e-46de-bc32-8b741e51d45c_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_db39cc32-a144-4afd-84d7-5ba4d3450a36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:to="loc_us-gaap_ForeignCountryMember_db39cc32-a144-4afd-84d7-5ba4d3450a36" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_08fd7d8f-f09a-4290-abd8-b7f53ecd9aaa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:to="loc_us-gaap_DomesticCountryMember_08fd7d8f-f09a-4290-abd8-b7f53ecd9aaa" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_02ea8042-494b-4254-9e93-c850c824c199_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_02ea8042-494b-4254-9e93-c850c824c199_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_56f1a571-ad17-489d-a4cb-b47f70487c3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_56f1a571-ad17-489d-a4cb-b47f70487c3a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_1002c8db-9bdb-429b-95c7-041191770313" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_1002c8db-9bdb-429b-95c7-041191770313" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_c81c5e93-97e4-4a68-a596-cb6d098c0e37" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_KP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_country_KP_c81c5e93-97e4-4a68-a596-cb6d098c0e37" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP_612bcbdc-a490-4a24-9c9e-184a3380d48a" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_JP"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_country_JP_612bcbdc-a490-4a24-9c9e-184a3380d48a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_f1bb9c79-2377-444a-a5ec-73480d70a892_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_f1bb9c79-2377-444a-a5ec-73480d70a892_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_6cc20c2f-2fa7-4671-9de7-10c0b100c9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:to="loc_us-gaap_ResearchMember_6cc20c2f-2fa7-4671-9de7-10c0b100c9d8" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_06ca49a3-bc54-44c2-8dc2-5c5abfd9b0df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_06ca49a3-bc54-44c2-8dc2-5c5abfd9b0df" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_4084eba3-57c0-43b7-9b7f-b55efdaa0c3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_4084eba3-57c0-43b7-9b7f-b55efdaa0c3a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_2dd48fc9-6fe3-40a2-bf53-188a72b238a0" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_2dd48fc9-6fe3-40a2-bf53-188a72b238a0" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_1643bb88-e1c6-4e64-b7dd-39dcdab37c97" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_1643bb88-e1c6-4e64-b7dd-39dcdab37c97" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_dcfd13e1-aceb-4be6-915c-59492a81aef4" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_dcfd13e1-aceb-4be6-915c-59492a81aef4" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_db1056b4-832e-495b-9a50-7c5d603f58d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_db1056b4-832e-495b-9a50-7c5d603f58d2" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8507c630-1233-4de4-bd79-6438e9cff992" xlink:href="cgnx-20231231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8507c630-1233-4de4-bd79-6438e9cff992" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_24cf03eb-dbf6-4088-8ab9-414d5ca8cf1a" xlink:href="cgnx-20231231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_24cf03eb-dbf6-4088-8ab9-414d5ca8cf1a" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9b212582-1030-425a-83a1-f0b3ef70425a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9b212582-1030-425a-83a1-f0b3ef70425a" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_ed03925d-6465-41f3-94c7-32bf37c67dcd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_ed03925d-6465-41f3-94c7-32bf37c67dcd" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_c9f8b63b-6254-49f0-9617-b1e0926b4f0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_c9f8b63b-6254-49f0-9617-b1e0926b4f0c" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_1c2e2de5-a6e0-4607-8f73-c646861b3a25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_1c2e2de5-a6e0-4607-8f73-c646861b3a25" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_d9d6b496-5713-47d8-8bdf-43737b1a8f01" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_d9d6b496-5713-47d8-8bdf-43737b1a8f01" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_360b96d3-0cc6-4765-98fb-d978f0e17f91" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_360b96d3-0cc6-4765-98fb-d978f0e17f91" xlink:type="arc" order="13"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_14052917-4edd-45f9-88f0-c2876e54828d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_14052917-4edd-45f9-88f0-c2876e54828d" xlink:type="arc" order="14"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d1c8c523-7dfa-435f-a658-a124130d26b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d1c8c523-7dfa-435f-a658-a124130d26b8" xlink:type="arc" order="15"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_ae1189cc-5c14-48a9-b269-6b74fc86031b" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_ae1189cc-5c14-48a9-b269-6b74fc86031b" xlink:type="arc" order="16"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_1dcf2b4d-0f89-4145-acd8-cf000c8375fc" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_1dcf2b4d-0f89-4145-acd8-cf000c8375fc" xlink:type="arc" order="17"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageSharesAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_cf4df8d1-b72b-45ab-9eb9-5455cde152d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_EmployeeStockOptionMember_cf4df8d1-b72b-45ab-9eb9-5455cde152d0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_29c4315f-526f-4d9a-88f2-568db6345fe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_RestrictedStockMember_29c4315f-526f-4d9a-88f2-568db6345fe5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_04d41b73-c94d-43f7-a6eb-94fad326b183" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_PerformanceSharesMember_04d41b73-c94d-43f7-a6eb-94fad326b183" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_6eb7aceb-0d82-4980-b822-7ad08c99d8a1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_6eb7aceb-0d82-4980-b822-7ad08c99d8a1" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformationAdditionalInformationDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:to="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_48d0aea8-1106-4d4d-a672-0b33573dde08_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_48d0aea8-1106-4d4d-a672-0b33573dde08_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_dc559d0c-e030-4704-b164-6544838a5910" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:to="loc_us-gaap_SalesRevenueNetMember_dc559d0c-e030-4704-b164-6544838a5910" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_59fa6381-6e16-4ba2-968d-e626ca80a18d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_59fa6381-6e16-4ba2-968d-e626ca80a18d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_4ff74e3d-0b76-4242-ba16-b787994cb482" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_4ff74e3d-0b76-4242-ba16-b787994cb482" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_752ffee8-fe9d-452a-8f1d-86446d4e3713_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:to="loc_srt_NameOfMajorCustomerDomain_752ffee8-fe9d-452a-8f1d-86446d4e3713_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:to="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_d29ccc5f-1903-4e80-a0d3-f41c61e85ce5" xlink:href="cgnx-20231231.xsd#cgnx_Customer2Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:to="loc_cgnx_Customer2Member_d29ccc5f-1903-4e80-a0d3-f41c61e85ce5" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_00d11e09-80f9-4b94-b714-a2b5f6ab2ac8" xlink:href="cgnx-20231231.xsd#cgnx_Customer1Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:to="loc_cgnx_Customer1Member_00d11e09-80f9-4b94-b714-a2b5f6ab2ac8" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_01318b7a-18e6-48df-b4bd-ec337adbab52" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:to="loc_us-gaap_NumberOfReportableSegments_01318b7a-18e6-48df-b4bd-ec337adbab52" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_595779c7-f348-4d11-aa21-0edb73e6f7f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_595779c7-f348-4d11-aa21-0edb73e6f7f7" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:to="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_1224052c-912a-4736-a461-a7acb8bae946_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:to="loc_srt_SegmentGeographicalDomain_1224052c-912a-4736-a461-a7acb8bae946_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:to="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_b2eec686-5400-4397-b0aa-2bebb915b21f" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_country_US_b2eec686-5400-4397-b0aa-2bebb915b21f" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_278c284d-9011-41f8-9101-ee655774808b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EuropeMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_srt_EuropeMember_278c284d-9011-41f8-9101-ee655774808b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_d4c946d9-c28d-4e28-851d-f74e7d2bda28" xlink:href="cgnx-20231231.xsd#cgnx_GreaterChinaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_cgnx_GreaterChinaMember_d4c946d9-c28d-4e28-851d-f74e7d2bda28" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_0b85d1ef-b8bf-4c32-805c-fbe8e29c9216" xlink:href="cgnx-20231231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_cgnx_OtherGeographicAreaMember_0b85d1ef-b8bf-4c32-805c-fbe8e29c9216" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d271d2c-fb67-4218-ba9f-e904bdaf180c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d271d2c-fb67-4218-ba9f-e904bdaf180c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_5adec9b6-f70b-41c1-9dda-063b656250c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:to="loc_us-gaap_NoncurrentAssets_5adec9b6-f70b-41c1-9dda-063b656250c4" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsMoritexNarrativeDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_55fc3984-3a00-462b-886c-93974d0a495d_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_55fc3984-3a00-462b-886c-93974d0a495d_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_b87b398a-7cdf-4ee4-b586-fc1a4103a36a" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:to="loc_cgnx_MoritexCorporationMember_b87b398a-7cdf-4ee4-b586-fc1a4103a36a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:to="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_ee9e9526-0b82-4218-90c2-0c14520edd2f_default" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:to="loc_srt_ScenarioUnspecifiedDomain_ee9e9526-0b82-4218-90c2-0c14520edd2f_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:to="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_566a0f42-f7f4-4598-92b9-96bd30b1af00" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:to="loc_srt_ScenarioForecastMember_566a0f42-f7f4-4598-92b9-96bd30b1af00" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue_0e4730b1-6235-4145-afe2-92e358703eda" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_cgnx_BusinessCombinationEnterpriseValue_0e4730b1-6235-4145-afe2-92e358703eda" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_61aa818b-af2d-4c6c-8ffc-f802b8092cf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_61aa818b-af2d-4c6c-8ffc-f802b8092cf0" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_3742b397-47b3-4f32-9338-4a3bf5123de1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_3742b397-47b3-4f32-9338-4a3bf5123de1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c7e7302e-8c90-4c87-a54b-bd620a4fdd4e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c7e7302e-8c90-4c87-a54b-bd620a4fdd4e" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d171c3fa-beae-4dac-b005-5e599f685688" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d171c3fa-beae-4dac-b005-5e599f685688" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_a1de2242-6691-4bf7-a678-78f6b920a6d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_a1de2242-6691-4bf7-a678-78f6b920a6d0" xlink:type="arc" order="5"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8eadbe0f-0a2c-47bf-85fd-81126890d6b3_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_8eadbe0f-0a2c-47bf-85fd-81126890d6b3_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_dcd57834-032f-4da6-8ba1-eb0fa74c6c4c" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:to="loc_cgnx_MoritexCorporationMember_dcd57834-032f-4da6-8ba1-eb0fa74c6c4c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_3c792865-b681-4f9d-bf2e-90ea511b7265_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_3c792865-b681-4f9d-bf2e-90ea511b7265_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_cefce9bb-3175-4b03-8d76-eda968e50268" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_us-gaap_CustomerRelationshipsMember_cefce9bb-3175-4b03-8d76-eda968e50268" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_c65f167f-e00c-4d92-a67b-0bda8f585e31" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_cgnx_CompletedTechnologyMember_c65f167f-e00c-4d92-a67b-0bda8f585e31" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_6264708e-d6b8-417d-9ac5-b0620b754532" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_us-gaap_TrademarksMember_6264708e-d6b8-417d-9ac5-b0620b754532" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_936890e3-0740-4075-881b-a4d2abd1035c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_936890e3-0740-4075-881b-a4d2abd1035c" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_94355b37-5f00-4c0d-bcb4-ccca2a6f493b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_94355b37-5f00-4c0d-bcb4-ccca2a6f493b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d0c9ecc5-1c2e-46a1-85cc-b735c02d6db8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d0c9ecc5-1c2e-46a1-85cc-b735c02d6db8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_84ded522-c493-44f2-a7ee-1f9243fdb8e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_84ded522-c493-44f2-a7ee-1f9243fdb8e7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_00d39d46-3b9f-45cd-a613-546ece4d4882" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_Goodwill_00d39d46-3b9f-45cd-a613-546ece4d4882" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_e12a9d2b-05a8-49c3-9c00-7a5a52386987" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_e12a9d2b-05a8-49c3-9c00-7a5a52386987" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_259ca4f9-2221-4ff6-8494-8322fbff320d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_259ca4f9-2221-4ff6-8494-8322fbff320d" xlink:type="arc" order="6"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_c21726ff-d07a-4166-ae6e-4cfe4610c93a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_c21726ff-d07a-4166-ae6e-4cfe4610c93a" xlink:type="arc" order="7"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_03b8667b-1e82-4a27-91ee-6a3e5d0e6228" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_03b8667b-1e82-4a27-91ee-6a3e5d0e6228" xlink:type="arc" order="8"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_3daca5f5-d1fb-44dc-ba73-ac104cac8d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_3daca5f5-d1fb-44dc-ba73-ac104cac8d98" xlink:type="arc" order="9"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_73042939-88d1-489f-b610-761002780698" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_73042939-88d1-489f-b610-761002780698" xlink:type="arc" order="10"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_d4175ed3-80cf-4429-8b6f-c8ade1332512" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_d4175ed3-80cf-4429-8b6f-c8ade1332512" xlink:type="arc" order="11"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_4fb75140-694f-415e-8a69-bfc8452c31b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_4fb75140-694f-415e-8a69-bfc8452c31b3" xlink:type="arc" order="12"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_920597cb-84a1-436e-9140-649ee1f9b333" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_920597cb-84a1-436e-9140-649ee1f9b333" xlink:type="arc" order="13"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFireDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LossfromFireDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/LossfromFireDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:to="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_27eced65-4636-4589-9e55-efadef850557_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_27eced65-4636-4589-9e55-efadef850557_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember_ff73cc90-2a94-4a98-8a4d-fef883fdb441" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FireMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:to="loc_us-gaap_FireMember_ff73cc90-2a94-4a98-8a4d-fef883fdb441" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_191c7441-d32f-4f69-a827-e6db747364b9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossFromCatastrophes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_us-gaap_LossFromCatastrophes_191c7441-d32f-4f69-a827-e6db747364b9" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes_d1fcbc6a-33e4-4e44-b450-e6d912a6c267" xlink:href="cgnx-20231231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_GrossLossFromCatastrophes_d1fcbc6a-33e4-4e44-b450-e6d912a6c267" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries_4088d0c0-874e-4be3-8025-db55b5962d60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InsuranceRecoveries"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_us-gaap_InsuranceRecoveries_4088d0c0-874e-4be3-8025-db55b5962d60" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption_60b82a40-84df-4d1a-914d-6430452f0365" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_InsuranceRecoveriesBusinessInterruption_60b82a40-84df-4d1a-914d-6430452f0365" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_ef73c3cd-b990-40f4-a2a1-1c1177aeaaaa" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_ef73c3cd-b990-40f4-a2a1-1c1177aeaaaa" xlink:type="arc" order="4"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_efa51a34-1812-4e09-b1f9-450686d087a7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_efa51a34-1812-4e09-b1f9-450686d087a7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_1f210a9d-6c66-456c-8d96-19336cf86838" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_1f210a9d-6c66-456c-8d96-19336cf86838" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_503088e2-234a-4850-bba5-7acb2d9488fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:to="loc_us-gaap_ContractTerminationMember_503088e2-234a-4850-bba5-7acb2d9488fb" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_5db731b0-0f46-472c-b03e-02a57ef5aa1a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:to="loc_us-gaap_RestructuringCharges_5db731b0-0f46-472c-b03e-02a57ef5aa1a" xlink:type="arc" order="0"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_24d1d70a-c46d-4650-b6cc-65a6e193b38a_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_24d1d70a-c46d-4650-b6cc-65a6e193b38a_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember_cc4ac805-1cc2-449e-bfe1-61ca3bccffd1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:to="loc_us-gaap_AccruedLiabilitiesMember_cc4ac805-1cc2-449e-bfe1-61ca3bccffd1" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_719a7b06-8f34-4152-9441-d33196f825f1_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_719a7b06-8f34-4152-9441-d33196f825f1_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_f871fe7b-0596-4f8c-89ef-fb98774498f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_f871fe7b-0596-4f8c-89ef-fb98774498f0" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_dc2145c3-c10f-4029-b6d2-bb84449f64f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:to="loc_us-gaap_ContractTerminationMember_dc2145c3-c10f-4029-b6d2-bb84449f64f6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:to="loc_us-gaap_RestructuringPlanDomain_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:to="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member_95fde380-77fd-4aab-a0e8-97763e218f1b" xlink:href="cgnx-20231231.xsd#cgnx_December2022Member"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:to="loc_cgnx_December2022Member_95fde380-77fd-4aab-a0e8-97763e218f1b" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:to="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_da26c00a-5e37-426d-bc8b-f9382ebc430c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringReserve_da26c00a-5e37-426d-bc8b-f9382ebc430c" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_dfc109c7-6da3-4a10-ad50-58159a64284b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringCharges_dfc109c7-6da3-4a10-ad50-58159a64284b" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_45e3cf1b-952e-4415-820b-d67abaa19c2a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_PaymentsForRestructuring_45e3cf1b-952e-4415-820b-d67abaa19c2a" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_54f9b6be-fb8f-47b2-ae06-8e405671ebd0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_54f9b6be-fb8f-47b2-ae06-8e405671ebd0" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_6bc99049-52a5-463a-a2ad-7ea1b502fd40" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SubsequentEventsDetails"/>
  <link:definitionLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_d9b17962-1ea1-484a-8c71-0b754d600e14_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_d9b17962-1ea1-484a-8c71-0b754d600e14_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_9f9cffad-e09b-418d-8535-6c680f39438d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:to="loc_us-gaap_SubsequentEventMember_9f9cffad-e09b-418d-8535-6c680f39438d" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_ffe21340-e022-4b39-af35-7445310513bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_ffe21340-e022-4b39-af35-7445310513bd" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_7b83f148-f455-43de-b4eb-5c1921b51ad6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_7b83f148-f455-43de-b4eb-5c1921b51ad6" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_2c91999b-9b81-4883-a450-d8fff1c63f65" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_2c91999b-9b81-4883-a450-d8fff1c63f65" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:definitionLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/all" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:type="arc" order="1" xbrldt:closed="true" xbrldt:contextElement="segment"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/hypercube-dimension" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_4abdc20e-268b-4060-876d-a5ed9aa5dc3b_default" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-default" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_4abdc20e-268b-4060-876d-a5ed9aa5dc3b_default" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/dimension-domain" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_bba735a6-7de8-418f-9f32-ea10b0944c15" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_bba735a6-7de8-418f-9f32-ea10b0944c15" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_eaea7dd8-23ab-4183-8c6e-d40120052132" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_eaea7dd8-23ab-4183-8c6e-d40120052132" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_1d5cd559-93a0-41cb-96a3-77085a0350bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_1d5cd559-93a0-41cb-96a3-77085a0350bc" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:type="arc" order="0"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_779651dc-a489-448d-9718-818db810e891" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_779651dc-a489-448d-9718-818db810e891" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_9a1b285e-b1cc-486a-94f5-fed6b9a3afc8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_9a1b285e-b1cc-486a-94f5-fed6b9a3afc8" xlink:type="arc" order="2"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_39d45d52-8de1-4066-9673-2b19b4412140" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_39d45d52-8de1-4066-9673-2b19b4412140" xlink:type="arc" order="3"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_bfe8f85f-8b61-4c1a-bf92-9286703cdeb9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_bfe8f85f-8b61-4c1a-bf92-9286703cdeb9" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_37e52b94-5129-458e-9309-fd1041ed91ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_37e52b94-5129-458e-9309-fd1041ed91ff" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_695ffcc0-395f-4586-804b-ab598147e2e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="simple" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-roles-2023.xsd#eedm"/>
  <link:definitionLink xlink:role="http://fasb.org/us-gaap/role/eedm/ExtensibleEnumerationLists" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="loc_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_LiabilitiesAbstract" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="1"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/TradingArrangementsOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#TradingArrangmentsOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/role/TradingArrangementsOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllTradingArrangementsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_4aa7d0f8-59d7-4132-8c40-97fee9639e1f" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_4aa7d0f8-59d7-4132-8c40-97fee9639e1f" xlink:type="arc" order="1"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_c304bdd0-9bad-42af-9332-c59bcfcab62a" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_c304bdd0-9bad-42af-9332-c59bcfcab62a" xlink:type="arc" order="2"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/AwardTypeOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#AwardTypeOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/AwardTypeOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_PerformanceSharesMember" xlink:type="arc" order="4"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="5"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockMember" xlink:type="arc" order="6"/>
  </link:definitionLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#IndividualsOnly"/>
  <link:definitionLink xlink:role="http://xbrl.sec.gov/ecd/role/IndividualsOnly" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember_4a42b163-2fc2-42ad-9e30-10858a19904a" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenMember"/>
    <link:definitionArc xlink:arcrole="http://xbrl.org/int/dim/arcrole/domain-member" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_cgnx_JoergKuechenMember_4a42b163-2fc2-42ad-9e30-10858a19904a" xlink:type="arc" order="2"/>
  </link:definitionLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.LAB
<SEQUENCE>12
<FILENAME>cgnx-20231231_lab.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION LABEL LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:277675e4-6a1f-436c-b28b-2310559dede0,g:0aa79d6e-08a3-463e-9769-9d2f36bbe043-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodStartLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodStartLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/netLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/net-2009-12-16.xsd#netLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedNetLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedNetLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTerseLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/negatedPeriodEndLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedPeriodEndLabel"/>
  <link:roleRef roleURI="http://www.xbrl.org/2009/role/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/negatedTotalLabel" xlink:type="simple" xlink:href="http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd#negatedTotalLabel"/>
  <link:labelLink xlink:role="http://www.xbrl.org/2003/role/link" xlink:type="extended">
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_terseLabel_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Appreciation Rights (SARs)</link:label>
    <link:label id="lab_us-gaap_StockAppreciationRightsSARSMember_label_en-US" xlink:label="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Appreciation Rights (SARs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:to="lab_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_2daa6f8c-0a93-4ced-83b6-244c76835687_terseLabel_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total intrinsic values of stock options exercised</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_label_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercised Intrinsic Value</link:label>
    <link:label id="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_documentation_en-US" xlink:label="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares based compensation arrangement by shares based payment award options exercised intrinsic value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:href="cgnx-20231231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:to="lab_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_aeba4b88-9419-4b6d-ad35-344f0b9f67e0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Constituents of Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Accrued Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_0342a691-0710-46d5-818d-c7305b184d37_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_eeed6356-3d3a-4274-a1a4-007ef6c18c69_totalLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_0dd0cfd4-3c03-4698-9770-67a26885e67a_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpense_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpense" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_d0be995b-fbaf-4911-8dce-99a90ad8c868_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taxation on multinational operations</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_fe179a2e-5a2e-4c6e-8db2-d35bcde28759_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Award [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardGrantDateFairValue_terseLabel_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value as of Grant Date</link:label>
    <link:label id="lab_ecd_AwardGrantDateFairValue_label_en-US" xlink:label="lab_ecd_AwardGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardGrantDateFairValue" xlink:to="lab_ecd_AwardGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_f4cc0808-7cd3-4f0d-b7bb-49d66065d644_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash paid in purchase price</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesGross_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Businesses, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesGross" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_5c821d1d-c72f-44ad-89ae-87607feb4e08_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_547f39aa-de85-4c85-b04c-7e1c3a7afd68_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Available-for-Sale Securities Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_d3cf9bb2-8f95-44d4-aeaa-0a3dd61f7795_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:to="lab_us-gaap_DeferredIncomeTaxLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_18497301-c76e-4489-8e16-c06ffdeda98d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_1c7b9ce8-12a3-4b9d-98b7-6fad3be34709_terseLabel_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation expense capitalized</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_label_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount</link:label>
    <link:label id="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_documentation_en-US" xlink:label="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee service share based compensation recognized period costs capitalized amount.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:href="cgnx-20231231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:to="lab_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_d11fa2af-9c6c-42f8-a9a3-66524ddd07b2_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax benefit of foreign currency translation adjustment</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_6e5d9348-d3cb-4f32-8078-609d22fb352e_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchases of investments</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireInvestments_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireInvestments" xlink:to="lab_us-gaap_PaymentsToAcquireInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingPoliciesProcLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="lab_ecd_InsiderTradingPoliciesProcLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_68ba1be5-c70e-428d-bd3d-c1f76b88b7a5_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercisable, Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_Rule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:to="lab_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringReserveTranslationAdjustment_7b46c14d-1d40-4a9c-b780-be4bed901ab4_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_RestructuringReserveTranslationAdjustment_label_en-US" xlink:label="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserveTranslationAdjustment" xlink:to="lab_us-gaap_RestructuringReserveTranslationAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_a83707fc-daef-4bde-b971-95f00ade7407_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueLineItems_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems" xlink:to="lab_us-gaap_DisaggregationOfRevenueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemLineItems_f80b1dbc-b981-493a-a9f8-c7e3e1c9fd12_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Line Items]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemLineItems_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems" xlink:to="lab_us-gaap_UnusualOrInfrequentItemLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_e5a5794b-b7a9-4b2c-94ee-c67de46ca5ef_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_terseLabel_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement does not require Recovery</link:label>
    <link:label id="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock_label_en-US" xlink:label="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Does Not Require Recovery [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:to="lab_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_405b30fa-7de6-46cc-87b2-8e77aab5fc35_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested or expected to vest, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_71f32d13-9c24-4432-8ca4-88a3710d8698_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_f49955dd-71c8-4a9a-8bd3-e31d48bf1382_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Constituents of accrued expenses</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_AccruedLiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InvestmentDurationDomain_063bbfd4-d4d5-46a8-bc6c-6b9f1e92ce86_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationDomain_label_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationDomain_documentation_en-US" xlink:label="lab_cgnx_InvestmentDurationDomain" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InvestmentDurationDomain" xlink:to="lab_cgnx_InvestmentDurationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompletedTechnologyMember_0a075f43-e7fc-4b8b-b8a2-946fc8fe4a84_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed technologies</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_label_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologyMember_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologyMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technology [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologyMember" xlink:to="lab_cgnx_CompletedTechnologyMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_820ed156-50e9-4839-b976-0476987a66e3_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets Other Noncurrent</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsOtherNoncurrent_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets other non current.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:to="lab_cgnx_DeferredTaxAssetsOtherNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_be3d9393-add2-4fbc-95ae-2e79ffdd42f2_negatedLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fulfillment of warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualPayments_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Decrease for Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualPayments" xlink:to="lab_us-gaap_ProductWarrantyAccrualPayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_339909d5-f684-4118-93aa-22edf16f2010_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected dividend yield</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CAD_a432f7d1-9366-41a9-8d8f-d4e77223cbcd_terseLabel_en-US" xlink:label="lab_currency_CAD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Canadian Dollar [Member]</link:label>
    <link:label id="lab_currency_CAD_label_en-US" xlink:label="lab_currency_CAD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Canada, Dollars</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CAD"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CAD" xlink:to="lab_currency_CAD" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MajorCustomersAxis_bed34dac-056d-4333-ae02-ee5e44ffb9d4_terseLabel_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Axis]</link:label>
    <link:label id="lab_srt_MajorCustomersAxis_label_en-US" xlink:label="lab_srt_MajorCustomersAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MajorCustomersAxis" xlink:to="lab_srt_MajorCustomersAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_de6ce82a-19de-43e5-a387-473696356107_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract" xlink:to="lab_us-gaap_LiabilitiesCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_3d482a51-0df4-48e2-ae2e-b7972b7757f0_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax reserves</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_25a49fc9-72c7-4e23-93ff-172f52762133_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Federal Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredFederalIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_1d8363b5-5764-4f9c-aad8-447fe6055dbb_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeDomain_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeDomain" xlink:to="lab_us-gaap_SubsequentEventTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_62fb3ebc-830b-41d4-a383-e6c1e5c33210_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_bca79718-dede-4ec1-a928-718abacf938b_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividendsCommonStock_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments of Ordinary Dividends, Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividendsCommonStock" xlink:to="lab_us-gaap_PaymentsOfDividendsCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_0d588633-61c8-4d95-83c8-8c68519ba208_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_f63dadd4-be9b-4fff-b191-f3baef7acd4a_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDiluted_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDiluted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDiluted" xlink:to="lab_us-gaap_EarningsPerShareDiluted" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_fb37362c-5a87-4ac0-bc08-47d695c43748_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable, allowance for credit losses of $583 and $730 in 2023 and 2022, respectively</link:label>
    <link:label id="lab_us-gaap_AccountsReceivableNetCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsReceivableNetCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, after Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsReceivableNetCurrent" xlink:to="lab_us-gaap_AccountsReceivableNetCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_1794f270-70cd-4b24-ba92-5cf09104928a_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Contracts, Liability, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:to="lab_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_8f6deea5-a125-4bf0-b8cd-3a2922298fe2_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2022</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2022 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2022Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2022</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramMarch2022Member" xlink:to="lab_cgnx_RepurchaseProgramMarch2022Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_53b6fa10-168d-4753-ba12-b7d5286d33da_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment for Contingent Consideration Liability, Operating Activities</link:label>
    <link:label id="lab_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_label_en-US" xlink:label="lab_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment for Contingent Consideration Liability, Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:to="lab_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_610ca8f0-f95e-4cd3-9501-6850d81347fe_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:to="lab_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_a6db553a-e51a-4754-8808-c4a04e9d5e63_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsAbstract_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract" xlink:to="lab_srt_ValuationAndQualifyingAccountsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_TradingSymbol_6eff7811-3bad-4e04-af17-4762b1cf8fce_terseLabel_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Symbol</link:label>
    <link:label id="lab_dei_TradingSymbol_label_en-US" xlink:label="lab_dei_TradingSymbol" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Symbol</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_TradingSymbol" xlink:to="lab_dei_TradingSymbol" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringPlanDomain_57132622-0533-461a-ae19-7b0b1944748b_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringPlanDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Domain]</link:label>
    <link:label id="lab_us-gaap_RestructuringPlanDomain_label_en-US" xlink:label="lab_us-gaap_RestructuringPlanDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringPlanDomain" xlink:to="lab_us-gaap_RestructuringPlanDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_9370944b-88c5-40c6-ac0c-9574791864d4_terseLabel_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-compete agreements</link:label>
    <link:label id="lab_us-gaap_NoncompeteAgreementsMember_label_en-US" xlink:label="lab_us-gaap_NoncompeteAgreementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncompete Agreements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncompeteAgreementsMember" xlink:to="lab_us-gaap_NoncompeteAgreementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_cb8a1670-fdcb-440d-90a8-0ce01672e496_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_6acf4e2a-1cd3-46e2-baa4-0b6d368c94b2_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_1262b3c3-bd97-4820-a358-f016b17d54b4_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresAbstract_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Disclosures [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract" xlink:to="lab_us-gaap_FairValueDisclosuresAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_8e66acd8-2e5b-4b18-b7ba-6b3411dd3a68_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible asset in connection with change in tax structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Intangible Asset, Change in Tax Structure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:to="lab_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_AllCurrenciesDomain_a652a106-2953-4e56-9329-9d7f65044481_terseLabel_en-US" xlink:label="lab_currency_AllCurrenciesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:label id="lab_currency_AllCurrenciesDomain_label_en-US" xlink:label="lab_currency_AllCurrenciesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Currencies [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_AllCurrenciesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_AllCurrenciesDomain" xlink:to="lab_currency_AllCurrenciesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_aaa90d10-3f94-4eaf-a110-a411c17373be_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current investments, amortized cost</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_ae92e685-8e9b-47ad-8515-a7fb0f259e6d_terseLabel_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money Market Instruments Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money market instruments fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:href="cgnx-20231231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:to="lab_cgnx_MoneyMarketInstrumentsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_bc3d2549-ba0f-45c7-b1ca-1764dd42035d_terseLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shareholders&#8217; equity:</link:label>
    <link:label id="lab_us-gaap_StockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity, Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquityAbstract" xlink:to="lab_us-gaap_StockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_37dc1794-9f92-4fb5-8daf-2a666bd1a9d4_terseLabel_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_label_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</link:label>
    <link:label id="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_documentation_en-US" xlink:label="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:href="cgnx-20231231.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:to="lab_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_ecb0acf0-6139-4074-a2cb-427a80c8e899_terseLabel_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-compete Agreements [Member]</link:label>
    <link:label id="lab_us-gaap_OtherIntangibleAssetsMember_label_en-US" xlink:label="lab_us-gaap_OtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Intangible Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherIntangibleAssetsMember" xlink:to="lab_us-gaap_OtherIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_2649f469-ad56-4461-804b-d5d95895959e_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:to="lab_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_17a4f999-f2fb-49cb-859c-35e83d703291_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">1-2 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_terseLabel_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Executive Category:</link:label>
    <link:label id="lab_ecd_ExecutiveCategoryAxis_label_en-US" xlink:label="lab_ecd_ExecutiveCategoryAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Executive Category [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="lab_ecd_ExecutiveCategoryAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_4b38fc4d-28ab-48eb-b0f9-23d92b0ba6f2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Calculation of Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Weighted Average Number of Shares [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_8ab2e902-d78e-4266-8b3d-edd954ae1069_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_3c581ce8-84fc-4370-91e1-b0b6964d1432_terseLabel_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Significant Accounting Policies</link:label>
    <link:label id="lab_us-gaap_SignificantAccountingPoliciesTextBlock_label_en-US" xlink:label="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Significant Accounting Policies [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:to="lab_us-gaap_SignificantAccountingPoliciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_fcf5ff49-194a-404d-952a-a11b2b4a5d50_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_953c2012-3686-4d02-8cf9-40f29d574928_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Quoted&#160;Prices&#160;in Active Markets for Identical Assets (Level&#160;1)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel1Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 1 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel1Member" xlink:to="lab_us-gaap_FairValueInputsLevel1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_GBP_ddb12ae5-fb4a-4eba-9289-aa3c86fbe44f_terseLabel_en-US" xlink:label="lab_currency_GBP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">British Pound [Member]</link:label>
    <link:label id="lab_currency_GBP_label_en-US" xlink:label="lab_currency_GBP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">United Kingdom, Pounds</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_GBP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_GBP" xlink:to="lab_currency_GBP" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_42cf5761-9b79-4209-b963-8e0202d60a82_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_b94340c2-b772-4f64-b629-f7539ea789a5_terseLabel_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:label id="lab_us-gaap_StatementEquityComponentsAxis_label_en-US" xlink:label="lab_us-gaap_StatementEquityComponentsAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Components [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementEquityComponentsAxis" xlink:to="lab_us-gaap_StatementEquityComponentsAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_52c84c2a-05e7-4fc2-aadd-ea26381988bb_terseLabel_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_label_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_GrossLossFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_GrossLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes" xlink:href="cgnx-20231231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GrossLossFromCatastrophes" xlink:to="lab_cgnx_GrossLossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchMember_2011bf2f-c8de-4826-b783-6a4bf3dc33ef_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:label id="lab_us-gaap_ResearchMember_label_en-US" xlink:label="lab_us-gaap_ResearchMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research Tax Credit Carryforward [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchMember" xlink:to="lab_us-gaap_ResearchMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_f5820992-bd96-4433-a69b-f492963bd9ed_terseLabel_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:label id="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_label_en-US" xlink:label="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instruments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:to="lab_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional 402(v) Disclosure</link:label>
    <link:label id="lab_ecd_Additional402vDisclosureTextBlock_label_en-US" xlink:label="lab_ecd_Additional402vDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional 402(v) Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Additional402vDisclosureTextBlock" xlink:to="lab_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_14fceb01-ae60-4b12-bbea-86e703d53bf9_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Accrued Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_dd5795eb-364c-4eca-a707-526898856d08_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares available for grant under stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentTypeAxis_1bdaa768-13b7-4d83-89b0-53ffe4674e31_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeAxis_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeAxis" xlink:to="lab_us-gaap_InvestmentTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntitySmallBusiness_8d09a9da-114d-45be-8e34-844657be788a_terseLabel_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntitySmallBusiness_label_en-US" xlink:label="lab_dei_EntitySmallBusiness" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Small Business</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntitySmallBusiness" xlink:to="lab_dei_EntitySmallBusiness" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_b00ee2d5-3ada-4800-b058-d72186df17f6_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_6e9be25b-4cc2-4a8f-ba9e-714191d36271_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Type Categorization [Domain]</link:label>
    <link:label id="lab_us-gaap_InvestmentTypeCategorizationMember_label_en-US" xlink:label="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember" xlink:to="lab_us-gaap_InvestmentTypeCategorizationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_LocalPhoneNumber_09a77d81-95ac-427d-acda-ca9f60aaa5dc_terseLabel_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Local Phone Number</link:label>
    <link:label id="lab_dei_LocalPhoneNumber_label_en-US" xlink:label="lab_dei_LocalPhoneNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Local Phone Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_LocalPhoneNumber" xlink:to="lab_dei_LocalPhoneNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RecoveryOfErrCompDisclosureLineItems_label_en-US" xlink:label="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Recovery of Erroneously Awarded Compensation Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="lab_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_Customer2Member_1a1c47e1-ca82-4c98-ba34-2a7dfc5bb7bf_terseLabel_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 2 [Member]</link:label>
    <link:label id="lab_cgnx_Customer2Member_label_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 2 [Member]</link:label>
    <link:label id="lab_cgnx_Customer2Member_documentation_en-US" xlink:label="lab_cgnx_Customer2Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 2</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member" xlink:href="cgnx-20231231.xsd#cgnx_Customer2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Customer2Member" xlink:to="lab_cgnx_Customer2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeNotionalAmount_20afbe17-f025-4a65-bf4d-74e4b4fb2937_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative, notional amount</link:label>
    <link:label id="lab_us-gaap_DerivativeNotionalAmount_label_en-US" xlink:label="lab_us-gaap_DerivativeNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative, Notional Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeNotionalAmount" xlink:to="lab_us-gaap_DerivativeNotionalAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_9b26f2f8-d778-4bfa-9c34-f427b41c60a5_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByMeasurementFrequencyAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measurement Frequency [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:to="lab_us-gaap_FairValueByMeasurementFrequencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_48347635-5046-4ec7-b485-fcf751f273d0_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Losses on currency swaps, net of gains on long-term intercompany loans</link:label>
    <link:label id="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_label_en-US" xlink:label="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment for Long-Term Intercompany Transactions, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:to="lab_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_59943d0c-2fe5-49ab-8a77-cb7ddad6fa62_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax credit carryforwards</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_e031e3aa-78f4-47b7-8947-5fd700cbda41_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:label id="lab_us-gaap_RestrictedStockUnitsRSUMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock Units (RSUs) [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:to="lab_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_0ad9b03f-02e6-4cd7-9e93-c2742db5eb36_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Performance Restricted Stock Units</link:label>
    <link:label id="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Violation of Home Country Law, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedLiabilitiesMember_3ea31c82-9b6e-4184-8314-ad1dbf498af4_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities [Member]</link:label>
    <link:label id="lab_us-gaap_AccruedLiabilitiesMember_label_en-US" xlink:label="lab_us-gaap_AccruedLiabilitiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Liabilities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedLiabilitiesMember" xlink:to="lab_us-gaap_AccruedLiabilitiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Depreciation_ac4ce0e2-bf1c-4f0f-ae9a-3649078b9ffa_terseLabel_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_Depreciation_label_en-US" xlink:label="lab_us-gaap_Depreciation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Depreciation" xlink:to="lab_us-gaap_Depreciation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TrademarksMember_e0059c7f-824f-4105-9836-56a2c91d98ec_terseLabel_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trademarks</link:label>
    <link:label id="lab_us-gaap_TrademarksMember_label_en-US" xlink:label="lab_us-gaap_TrademarksMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trademarks [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TrademarksMember" xlink:to="lab_us-gaap_TrademarksMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_36fa55f9-929e-4cac-8e02-dceaa18adc99_terseLabel_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:label id="lab_us-gaap_CompensationAndRetirementDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:to="lab_us-gaap_CompensationAndRetirementDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_20449f5f-ca37-4cc5-9523-0db7182c0f5a_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionTable_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessor, Lease, Description [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable" xlink:to="lab_us-gaap_LessorLeaseDescriptionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_6f2d41cf-1382-43b2-9b61-490d0326a207_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax expense related to tax return filings</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_745f67b8-3337-4a66-80dc-b88ad4e94f38_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseComponents_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseComponents" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Components</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseComponents" xlink:to="lab_cgnx_LesseeOperatingLeaseComponents" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_40b9f430-5264-42fb-b0d9-2c5bbc4c81ba_terseLabel_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_label_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_documentation_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Lost Inventory And Other Losses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:to="lab_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_2b1f7f03-be1f-4203-b126-b5560168f3a1_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative liability gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability, Subject to Master Netting Arrangement, Collateral, Right to Reclaim Cash Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:to="lab_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_2669f27e-9170-4d61-894f-e697d7ad1a54_negatedLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Realized (gain) loss on sale of investments</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfInvestments_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gain (Loss) on Sale of Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfInvestments" xlink:to="lab_us-gaap_GainLossOnSaleOfInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_36e66d17-261f-4f7b-9075-93d529614fa6_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Income Taxes, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesCurrent" xlink:to="lab_us-gaap_AccruedIncomeTaxesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenMember" xlink:to="lab_cgnx_JoergKuechenMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_terseLabel_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Available</link:label>
    <link:label id="lab_ecd_TrdArrSecuritiesAggAvailAmt_label_en-US" xlink:label="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Securities Aggregate Available Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:to="lab_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_dba41313-e896-40bd-956b-9798b042f721_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research, development, and engineering expenses</link:label>
    <link:label id="lab_us-gaap_ResearchAndDevelopmentExpenseMember_label_en-US" xlink:label="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development Expense [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:to="lab_us-gaap_ResearchAndDevelopmentExpenseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Not Adopted [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:to="lab_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringReserve_4c1236a1-5337-4227-9502-6e46f10abd08_periodStartLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve, Beginning Balance</link:label>
    <link:label id="lab_us-gaap_RestructuringReserve_2a3ed896-dde7-4dff-9689-3e388bc67a7e_periodEndLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve, Ending Balance</link:label>
    <link:label id="lab_us-gaap_RestructuringReserve_label_en-US" xlink:label="lab_us-gaap_RestructuringReserve" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserve" xlink:to="lab_us-gaap_RestructuringReserve" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_8be893b2-9e80-4053-ac80-a80f5e372242_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock options to purchase anti-dilutive common stock</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AwardTypeAxis_3c2d2ae3-bea5-42d3-a4b8-4e7905b483ea_terseLabel_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:label id="lab_us-gaap_AwardTypeAxis_label_en-US" xlink:label="lab_us-gaap_AwardTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="lab_us-gaap_AwardTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_c6cf6342-a048-4c19-a583-051b13f7587e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_206c06f3-959f-4926-ae73-9369d1789b12_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset gross amount offset</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Subject to Master Netting Arrangement, Collateral, Obligation to Return Cash, Offset Against Derivative Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:to="lab_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_c7519e34-d91b-4dd8-a1f6-394e56887626_terseLabel_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_label_en-US" xlink:label="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:to="lab_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractTerminationMember_5c2a4900-10dc-43e8-a6a3-ae3a5b62970c_terseLabel_en-US" xlink:label="lab_us-gaap_ContractTerminationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Termination [Member]</link:label>
    <link:label id="lab_us-gaap_ContractTerminationMember_label_en-US" xlink:label="lab_us-gaap_ContractTerminationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Termination [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractTerminationMember" xlink:to="lab_us-gaap_ContractTerminationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_52d88791-1816-4507-a2da-24569562c2ac_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Measurements, Fair Value Hierarchy [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:to="lab_us-gaap_FairValueMeasurementsFairValueHierarchyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_81ea30a9-bfb6-4b28-945c-cac612378e68_terseLabel_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:label id="lab_dei_IcfrAuditorAttestationFlag_label_en-US" xlink:label="lab_dei_IcfrAuditorAttestationFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ICFR Auditor Attestation Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_IcfrAuditorAttestationFlag" xlink:to="lab_dei_IcfrAuditorAttestationFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_HedgingDesignationAxis_11abacd6-09b3-47c9-8724-bfb553482a91_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationAxis_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hedging Designation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationAxis" xlink:to="lab_us-gaap_HedgingDesignationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillLineItems_5b4f8cd5-9e25-4ef6-9b5e-08c315b44862_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:label id="lab_us-gaap_GoodwillLineItems_label_en-US" xlink:label="lab_us-gaap_GoodwillLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillLineItems" xlink:to="lab_us-gaap_GoodwillLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_d89c67c2-b57a-4217-8e1e-2d94d66305ae_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant and equipment, gross</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentGross_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentGross" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_65c20639-bd98-4453-b891-d1e8f7547923_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoActuallyPaidCompAmt_label_en-US" xlink:label="lab_ecd_PeoActuallyPaidCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Actually Paid Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoActuallyPaidCompAmt" xlink:to="lab_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_c75d6815-b2e9-4429-99df-9a4f56cfea20_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativesFairValueLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativesFairValueLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivatives, Fair Value [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesFairValueLineItems" xlink:to="lab_us-gaap_DerivativesFairValueLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_18fe9b96-b9c7-4a1b-ba87-ae95bcaf4f1b_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Constituents of Provision for Income Taxes</link:label>
    <link:label id="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_a67e3c37-8014-48cd-baac-44871d8b61a2_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock, not yet settled (in shares)</link:label>
    <link:label id="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_label_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares Not Yet Settled</link:label>
    <link:label id="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_documentation_en-US" xlink:label="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares Not Yet Settled</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:to="lab_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_829e0735-5e19-405a-be80-f1f37617f682_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated forfeiture rate for unvested options for senior management.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_ad7a9de8-0f14-48e4-9180-6ae99aa6a45a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:to="lab_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_706e7a33-f4ec-470b-a97e-5d27740b3bc1_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityCurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_e665bc31-193b-4e58-bfe4-cfa70e33758f_terseLabel_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Application-specific customer solutions</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_label_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:label id="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember_documentation_en-US" xlink:label="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Application of Customer Specific Solutions [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:href="cgnx-20231231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:to="lab_cgnx_ApplicationofCustomerSpecificSolutionsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_10879c5d-93ed-42f4-8a73-f210a61f357f_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, $0.01 par value - Authorized: 400 shares in 2023 and 2022, respectively, no shares issued and outstanding</link:label>
    <link:label id="lab_us-gaap_PreferredStockValueOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Value, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockValueOutstanding" xlink:to="lab_us-gaap_PreferredStockValueOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_28819eea-72c8-48d0-a9e7-ac487fe94220_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_b93fbcb4-112d-4142-93f7-47b61628071a_totalLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsNet_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_b894ae0a-ea32-4d90-b937-c347d1e504e0_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentLineItems_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_e361c438-32bd-48ce-a4f2-c5e7987e8e32_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">New Accounting Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">New Accounting Pronouncements, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_9f62af49-6ebe-4856-a314-45c3c1ada2cc_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Valuation Allowance [Member]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_label_en-US" xlink:label="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:to="lab_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_d12f96ad-dc61-4b53-bf5c-14139e901b2c_terseLabel_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_UnbilledReceivablesCurrent_label_en-US" xlink:label="lab_us-gaap_UnbilledReceivablesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled Receivables, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnbilledReceivablesCurrent" xlink:to="lab_us-gaap_UnbilledReceivablesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_14e8cc4a-d6c2-4aa1-aa33-ea88107cd715_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:label id="lab_us-gaap_DerivativeAssetNotionalAmount_label_en-US" xlink:label="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Notional Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssetNotionalAmount" xlink:to="lab_us-gaap_DerivativeAssetNotionalAmount" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_2d2284cb-dd6f-4f43-b0dd-0364d53c36a7_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Amortization</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets, Accumulated Amortization</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_c8b72c3f-ed59-40da-bb96-c3d60224b5ea_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherInventoryPurchasedGoods_89a66b00-7e01-4edb-a82a-28327a92a41b_terseLabel_en-US" xlink:label="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Inventory, Purchased Goods, Gross</link:label>
    <link:label id="lab_us-gaap_OtherInventoryPurchasedGoods_label_en-US" xlink:label="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Inventory, Purchased Goods, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherInventoryPurchasedGoods" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherInventoryPurchasedGoods"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherInventoryPurchasedGoods" xlink:to="lab_us-gaap_OtherInventoryPurchasedGoods" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Price or TSR Estimation Method</link:label>
    <link:label id="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock_label_en-US" xlink:label="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Price or TSR Estimation Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:to="lab_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_a2117028-a3f8-41e1-9e50-dabbf88d63ed_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_0f93598c-979e-4951-b551-2880c0253a48_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationConsiderationTransferred1_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Consideration Transferred</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:to="lab_us-gaap_BusinessCombinationConsiderationTransferred1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GrossProfit_0148e1b2-aa7f-4972-a63c-df8f1a4be6d2_totalLabel_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross margin</link:label>
    <link:label id="lab_us-gaap_GrossProfit_label_en-US" xlink:label="lab_us-gaap_GrossProfit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Profit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GrossProfit" xlink:to="lab_us-gaap_GrossProfit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_22ccea8a-e7ca-4724-9e30-f07a8669965b_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_5b2b1e6e-9d95-4570-b4e0-d7a8b0012b99_periodStartLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_7e2a1b50-213b-4652-a0cf-1f032d656918_periodEndLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">End balance</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:to="lab_us-gaap_ContractWithCustomerLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_0626ad99-0e42-4398-94d2-6decb97f7bac_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset acquisition, contingent consideration, liability, current</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Acquisition, Contingent Consideration, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:to="lab_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_559aec65-bb1f-4da0-8e7c-7fee34598c4a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_accdee24-d478-4464-ad80-083d12ec1096_terseLabel_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general, and administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_label_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling General And Administrative [Member]</link:label>
    <link:label id="lab_cgnx_SellingGeneralAndAdministrativeMember_documentation_en-US" xlink:label="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general, and administrative.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember" xlink:href="cgnx-20231231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SellingGeneralAndAdministrativeMember" xlink:to="lab_cgnx_SellingGeneralAndAdministrativeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_SecurityExchangeName_56cb8f37-455a-4daf-9ce4-d50d0dc64f69_terseLabel_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Exchange Name</link:label>
    <link:label id="lab_dei_SecurityExchangeName_label_en-US" xlink:label="lab_dei_SecurityExchangeName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Security Exchange Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_SecurityExchangeName" xlink:to="lab_dei_SecurityExchangeName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue_c57c1a66-0348-4005-8384-abaa59d74ed9_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Redeemed or Called During Period, Value</link:label>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue_label_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Redeemed or Called During Period, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:to="lab_us-gaap_StockRedeemedOrCalledDuringPeriodValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_7966468b-af92-4aac-b82d-1f89e9d41123_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:to="lab_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_85b810f2-5dc6-4f55-8eb5-723135c385f3_terseLabel_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, general, and administrative expenses</link:label>
    <link:label id="lab_us-gaap_SellingGeneralAndAdministrativeExpense_label_en-US" xlink:label="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Selling, General and Administrative Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:to="lab_us-gaap_SellingGeneralAndAdministrativeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_954d0b52-5c96-41fa-b323-1ec2a480ba7e_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated other comprehensive loss, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CHF_b1cfb0e0-d1d9-42ad-8a76-3aea7ed0b134_terseLabel_en-US" xlink:label="lab_currency_CHF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Switzerland, Francs</link:label>
    <link:label id="lab_currency_CHF_label_en-US" xlink:label="lab_currency_CHF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Switzerland, Francs</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CHF"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CHF" xlink:to="lab_currency_CHF" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_e8c8300e-37a1-4088-ae63-2b31bf7ecef0_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_466dc219-c04b-4149-88ac-c854c5249d67_verboseLabel_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Compensation Plan [Member]</link:label>
    <link:label id="lab_us-gaap_EmployeeStockOptionMember_label_en-US" xlink:label="lab_us-gaap_EmployeeStockOptionMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Stock Option [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeStockOptionMember" xlink:to="lab_us-gaap_EmployeeStockOptionMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_57f5c3b4-dbe9-49df-9c41-86c409a6ddff_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_9b8a3012-b05e-4669-ba88-a8adac755251_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentPolicyTextBlock" xlink:to="lab_us-gaap_InvestmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_0b2dc509-92c7-4333-940f-3484ecd4ee0e_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Economic hedge forward contracts</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Contract, Asset, Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:to="lab_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MaximumMember_45973d34-d5e8-44a8-b094-5569f9aa802b_terseLabel_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum [Member]</link:label>
    <link:label id="lab_srt_MaximumMember_label_en-US" xlink:label="lab_srt_MaximumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MaximumMember" xlink:to="lab_srt_MaximumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_92ee5f5c-b515-4e12-9ad5-6fe2917aff3c_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Costs</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Costs [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentType_a80d144d-d800-4514-bb1e-ba484be9eda4_terseLabel_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Type</link:label>
    <link:label id="lab_dei_DocumentType_label_en-US" xlink:label="lab_dei_DocumentType" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Type</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentType" xlink:to="lab_dei_DocumentType" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TabularListTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tabular List, Table</link:label>
    <link:label id="lab_ecd_TabularListTableTextBlock_label_en-US" xlink:label="lab_ecd_TabularListTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tabular List [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TabularListTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TabularListTableTextBlock" xlink:to="lab_ecd_TabularListTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_14a9eee8-e182-4514-9663-477b917d8348_terseLabel_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_label_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_documentation_en-US" xlink:label="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:href="cgnx-20231231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:to="lab_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_8f662d6b-fa1d-4b3d-a05f-af27e0a93cbe_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryPolicyTextBlock" xlink:to="lab_us-gaap_InventoryPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_87c6eae5-bb7e-4a5b-9e7c-a72d8530e02e_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesNameDomain_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:to="lab_us-gaap_AntidilutiveSecuritiesNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_4043e73f-9035-4dc7-a6af-ff1c85d50cdc_terseLabel_en-US" xlink:label="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Realized Gain (Loss) on Investments</link:label>
    <link:label id="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Realized Gain (Loss) on Investments [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RealizedGainLossOnInvestmentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:to="lab_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_af2a760b-6d45-4c9a-99e2-b25353e97b99_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-Based Compensation</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_7d29278a-f88c-4c55-b012-813cde0c5e0c_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Federal</link:label>
    <link:label id="lab_us-gaap_CurrentFederalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Federal Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentFederalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_289a640d-f510-48ea-ad0d-2e77df164a60_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:to="lab_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_8e8f72bd-4fe8-499e-8d6d-95bb4cdc7c71_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAxis_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAxis" xlink:to="lab_us-gaap_BusinessAcquisitionAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DueFromForeignBanks_90f0748f-46ae-42b1-b382-353e0bf63719_terseLabel_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash balance included foreign bank balance</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_label_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Due From Foreign Banks</link:label>
    <link:label id="lab_cgnx_DueFromForeignBanks_documentation_en-US" xlink:label="lab_cgnx_DueFromForeignBanks" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Due from foreign banks.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks" xlink:href="cgnx-20231231.xsd#cgnx_DueFromForeignBanks"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DueFromForeignBanks" xlink:to="lab_cgnx_DueFromForeignBanks" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_d46dd6d9-14ca-4efa-91c4-fac2266a3546_verboseLabel_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from a single customer, percentage</link:label>
    <link:label id="lab_us-gaap_CustomerConcentrationRiskMember_label_en-US" xlink:label="lab_us-gaap_CustomerConcentrationRiskMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Concentration Risk [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerConcentrationRiskMember" xlink:to="lab_us-gaap_CustomerConcentrationRiskMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeTable_1f3823ff-4923-4e5b-a5a8-38b7877e0b45_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeTable_label_en-US" xlink:label="lab_us-gaap_DerivativeTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeTable" xlink:to="lab_us-gaap_DerivativeTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_40a8cfe1-dc90-4bd7-87df-82bb89f1ef6a_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred State and Local Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryLineItems_6bdda1b4-d752-49be-854d-5c4cb8d67281_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory [Line Items]</link:label>
    <link:label id="lab_us-gaap_InventoryLineItems_label_en-US" xlink:label="lab_us-gaap_InventoryLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryLineItems" xlink:to="lab_us-gaap_InventoryLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_6782665c-97e0-4d9d-bced-a5a16e2c28ee_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Raw materials</link:label>
    <link:label id="lab_us-gaap_InventoryRawMaterialsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Raw Materials, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:to="lab_us-gaap_InventoryRawMaterialsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_Security12bTitle_bc28e52d-8a58-4727-884d-b852b508a51f_terseLabel_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:label id="lab_dei_Security12bTitle_label_en-US" xlink:label="lab_dei_Security12bTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title of 12(b) Security</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_Security12bTitle" xlink:to="lab_dei_Security12bTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_da15da6e-e48f-4a57-aaaa-148b5294dda2_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveLineItems_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Cost and Reserve [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems" xlink:to="lab_us-gaap_RestructuringCostAndReserveLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_2518ad2b-f603-4921-a258-361332301f73_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_52323af4-5206-4afb-b5ee-8a3e63b370f5_terseLabel_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_label_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:label id="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_documentation_en-US" xlink:label="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technologies And Other Intangible Assets [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:to="lab_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_3d6ab809-d4c1-4005-8bb5-e2ffeadd38ec_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisitions</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:to="lab_us-gaap_BusinessCombinationDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined</link:label>
    <link:label id="lab_ecd_AggtErrCompNotYetDeterminedTextBlock_label_en-US" xlink:label="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Not Yet Determined [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:to="lab_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_b46fee77-0774-43dd-81f5-ac5909d5e866_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested beginning balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_c854f64c-5f1a-445b-9585-605518b636f4_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested ending balance, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_58036780-eb8f-4ff2-8948-59218d002b10_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract" xlink:to="lab_us-gaap_IncomeTaxDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Expense of Enforcement, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_67b036c7-76b7-4f93-afcc-b9a7a1fb4370_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GILTI tax basis differences</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_ed88a7e8-2776-42ed-b0dd-6c834c6e6659_negatedTerseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">GILTI tax basis differences in connection with change in tax structure</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_label_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:label id="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:to="lab_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_7d0853e3-be4e-4721-829a-d95b68cbe8bb_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax effect of unrealized gain (loss) on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_4c209794-30c6-4f15-ae6f-e2814f022b4f_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax effect of unrealized gain on available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_cd21fd5d-48fd-4655-b0dd-9905360f82dd_terseLabel_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_label_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:label id="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_documentation_en-US" xlink:label="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Option to Renew, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:to="lab_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_52905b20-4a81-483e-8407-6999f2ed0315_terseLabel_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disclosure of Compensation Related Costs, Share-based Payments [Abstract]</link:label>
    <link:label id="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_label_en-US" xlink:label="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:to="lab_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_f35222d9-f1bf-497b-867a-87560e59ca02_terseLabel_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:label id="lab_dei_EntityTaxIdentificationNumber_label_en-US" xlink:label="lab_dei_EntityTaxIdentificationNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Tax Identification Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityTaxIdentificationNumber" xlink:to="lab_dei_EntityTaxIdentificationNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_bcce71db-2a62-45c5-8f21-b2ec8a416f19_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_label_en-US" xlink:label="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:to="lab_us-gaap_GoodwillForeignCurrencyTranslationGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_1403d629-6c83-4c80-b9a6-e1d84ff95c16_terseLabel_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of groups within the employee population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_label_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number Of Groups Within Employee Population</link:label>
    <link:label id="lab_cgnx_NumberOfGroupsWithinEmployeePopulation_documentation_en-US" xlink:label="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of groups within employee population.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:href="cgnx-20231231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:to="lab_cgnx_NumberOfGroupsWithinEmployeePopulation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_091b3818-5935-4f0e-83bc-c3e5495844a8_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory and revenue related</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsInventory_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsInventory" xlink:to="lab_us-gaap_DeferredTaxAssetsInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeAxis_76da3179-b890-4ffe-ba8d-6d67cdaebd36_terseLabel_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Range [Axis]</link:label>
    <link:label id="lab_srt_RangeAxis_label_en-US" xlink:label="lab_srt_RangeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statistical Measurement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeAxis" xlink:to="lab_srt_RangeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InsuranceRecoveries_9538dcf2-f2e5-4683-af86-d38d502788e6_terseLabel_en-US" xlink:label="lab_us-gaap_InsuranceRecoveries" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries</link:label>
    <link:label id="lab_us-gaap_InsuranceRecoveries_label_en-US" xlink:label="lab_us-gaap_InsuranceRecoveries" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InsuranceRecoveries"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InsuranceRecoveries" xlink:to="lab_us-gaap_InsuranceRecoveries" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_5c82a472-8e3e-4736-ac1e-16db21dbba21_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationDomain_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationDomain" xlink:to="lab_us-gaap_BalanceSheetLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_8f9db830-c1d0-4520-9c69-9665a599df03_terseLabel_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:label id="lab_dei_EntityInteractiveDataCurrent_label_en-US" xlink:label="lab_dei_EntityInteractiveDataCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Interactive Data Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityInteractiveDataCurrent" xlink:to="lab_dei_EntityInteractiveDataCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_f6a13acd-f751-418d-981a-bc681af0ed9b_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTable_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable" xlink:to="lab_us-gaap_DisaggregationOfRevenueTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_71727d8e-9a54-4c03-9f45-f31046b98b7a_terseLabel_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:label id="lab_dei_EntityWellKnownSeasonedIssuer_label_en-US" xlink:label="lab_dei_EntityWellKnownSeasonedIssuer" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Well-known Seasoned Issuer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityWellKnownSeasonedIssuer" xlink:to="lab_dei_EntityWellKnownSeasonedIssuer" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_9c6a2932-493a-4404-bcd6-4b60143323de_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureAxis_terseLabel_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure:</link:label>
    <link:label id="lab_ecd_MeasureAxis_label_en-US" xlink:label="lab_ecd_MeasureAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureAxis" xlink:to="lab_ecd_MeasureAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_79e50e43-0069-4fa5-a67f-8abbca2ddeaa_terseLabel_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign bonds</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_SovereignBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure" xlink:href="cgnx-20231231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SovereignBondsFairValueDisclosure" xlink:to="lab_cgnx_SovereignBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_05f7c16e-dd66-4bda-af66-dcf3efbe5f03_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryIndName_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryIndName" xlink:to="lab_ecd_OutstandingRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_f7466947-d7e2-43e0-b7be-3928e5838e91_terseLabel_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:label id="lab_dei_EntityIncorporationStateCountryCode_label_en-US" xlink:label="lab_dei_EntityIncorporationStateCountryCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Incorporation, State or Country Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityIncorporationStateCountryCode" xlink:to="lab_dei_EntityIncorporationStateCountryCode" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_MXN_67793c23-705b-455a-8726-52092525f1e6_terseLabel_en-US" xlink:label="lab_currency_MXN" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Mexican Peso [Member]</link:label>
    <link:label id="lab_currency_MXN_label_en-US" xlink:label="lab_currency_MXN" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Mexico, Pesos</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_MXN"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_MXN" xlink:to="lab_currency_MXN" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_ed2a074e-3cde-45ac-8f65-4c779750f149_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingExpense_ac914973-5e07-4698-8a97-e92f30944a60_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingExpense_label_en-US" xlink:label="lab_us-gaap_AdvertisingExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingExpense" xlink:to="lab_us-gaap_AdvertisingExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_13131d8f-5e90-49f9-b2d3-cc4cea8319f0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Constituents of Deferred Tax Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Deferred Tax Assets and Liabilities [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemDomain_add42307-bcd3-4cdd-b027-d9e9eaad8194_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Domain]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemDomain_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain" xlink:to="lab_us-gaap_UnusualOrInfrequentItemDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_19009d19-4bdd-400a-88a0-55d44ba22b47_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments</link:label>
    <link:label id="lab_us-gaap_DerivativesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_DerivativesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivatives, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativesPolicyTextBlock" xlink:to="lab_us-gaap_DerivativesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_4aab95eb-259b-4701-8d86-b97e36d7f451_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_848d8aff-ef36-4440-90e8-572638e41667_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeasePayments_1e3cb6d8-6be9-4d5c-bbcf-52a8803454da_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease payments</link:label>
    <link:label id="lab_us-gaap_OperatingLeasePayments_label_en-US" xlink:label="lab_us-gaap_OperatingLeasePayments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeasePayments" xlink:to="lab_us-gaap_OperatingLeasePayments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_7dde5513-46cc-4bca-a173-f1f3d0eb6208_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net unrealized gain (loss) on available-for-sale investments, net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_fbbb020b-b24d-4599-b801-b9555c42075d_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesOutstanding" xlink:to="lab_us-gaap_CommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_a0dfcb46-03f5-4ade-befe-ca9b70c77c94_terseLabel_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:label id="lab_us-gaap_CapitalizedContractCostGross_label_en-US" xlink:label="lab_us-gaap_CapitalizedContractCostGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capitalized Contract Cost, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CapitalizedContractCostGross" xlink:to="lab_us-gaap_CapitalizedContractCostGross" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_26559f25-e133-471d-b543-527e3060071b_totalLabel_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_label_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income tax assets (liabilities), net</link:label>
    <link:label id="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_documentation_en-US" xlink:label="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income tax assets (liabilities), net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:href="cgnx-20231231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:to="lab_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoMember_terseLabel_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO</link:label>
    <link:label id="lab_ecd_PeoMember_label_en-US" xlink:label="lab_ecd_PeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoMember" xlink:to="lab_ecd_PeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorLocation_8b058f23-8e0c-410e-9f98-8c5cff46b133_terseLabel_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Location</link:label>
    <link:label id="lab_dei_AuditorLocation_label_en-US" xlink:label="lab_dei_AuditorLocation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Location</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorLocation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorLocation" xlink:to="lab_dei_AuditorLocation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_46a4dcd6-fc10-4c87-a2a2-70cc01dec022_terseLabel_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Savings Plan</link:label>
    <link:label id="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Benefits [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:to="lab_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_7facc46e-e895-4520-a43e-b08c5a8ce4a1_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign net operating losses</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Operating Loss Carryforwards, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:to="lab_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_94d3911e-5ea9-4188-85ec-8ac1801f0242_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock par value, in dollars per share</link:label>
    <link:label id="lab_us-gaap_CommonStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_CommonStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_edb2f582-b9e0-49c1-a850-0e225e15726e_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash provided by (used in) investing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingAggtErrCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingAggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingAggtErrCompAmt" xlink:to="lab_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_e159bc13-a954-4622-ae7a-3404a9603865_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:label id="lab_us-gaap_RevenueCommissionersIrelandMember_label_en-US" xlink:label="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Commissioners, Ireland [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueCommissionersIrelandMember" xlink:to="lab_us-gaap_RevenueCommissionersIrelandMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_ce154dab-c598-47bd-b167-9026a1f1b412_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax liabilities:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_2f95233a-0629-435c-8cf4-da74b27e271f_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Axis]</link:label>
    <link:label id="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_label_en-US" xlink:label="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:to="lab_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_88c83f44-6c7e-4004-a5ce-6538b1a62af0_terseLabel_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_SovereignDebtSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sovereign Debt Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SovereignDebtSecuritiesMember" xlink:to="lab_us-gaap_SovereignDebtSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Liabilities_3c832535-4532-4157-aee7-c4d45dfc4548_totalLabel_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total liabilities</link:label>
    <link:label id="lab_us-gaap_Liabilities_label_en-US" xlink:label="lab_us-gaap_Liabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Liabilities" xlink:to="lab_us-gaap_Liabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_c7b05f7f-2bdf-435f-9356-418bfc4cb94c_totalLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_050dffe5-1316-4825-8523-c06dcdac09dd_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected volatility</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_982f9509-da83-4322-aa1d-fbab809d8905_terseLabel_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shareholders' Equity</link:label>
    <link:label id="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_label_en-US" xlink:label="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shareholders' Equity and Share-Based Payments [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:to="lab_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_7cfdd029-4446-4e94-bb6c-92442150d9be_totalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss Position</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_b7bf180b-4765-4ef5-967d-b505162c5e43_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Measurement Frequency [Domain]</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementFrequencyDomain_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measurement Frequency [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain" xlink:to="lab_us-gaap_FairValueMeasurementFrequencyDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_d2a0bca5-05a9-4129-9ad6-4ed25d7328b8_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_76833d80-5720-427d-9787-0963d9558082_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease expense for which no liability or asset was recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_label_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:label id="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Expense, No Liability Or Asset Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:to="lab_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:to="lab_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_e28fee82-41a4-4907-a8d0-1e70994212b4_terseLabel_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum investment of the company in partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_label_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum Investment Of Company In Partnership</link:label>
    <link:label id="lab_cgnx_MaximumInvestmentOfCompanyInPartnership_documentation_en-US" xlink:label="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum investment of the company in partnership.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:href="cgnx-20231231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:to="lab_cgnx_MaximumInvestmentOfCompanyInPartnership" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_faaf09d5-7041-4d25-aa72-d90fb305d620_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current investments, amortized cost</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_2c54f453-75d2-4e05-a6d3-3dda78f21760_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Type [Domain]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Tangible Asset [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_0f4a6d65-5ca7-494f-95f1-23f512770a1f_terseLabel_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:label id="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_label_en-US" xlink:label="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:to="lab_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_51cb18d7-6aae-4307-b678-7673c480b3ba_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventLineItems_label_en-US" xlink:label="lab_us-gaap_SubsequentEventLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventLineItems" xlink:to="lab_us-gaap_SubsequentEventLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_a130e6bb-eb5f-46b1-9ba7-2d9880ebc500_terseLabel_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research and Development</link:label>
    <link:label id="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Research, Development, and Computer Software, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:to="lab_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_938db1df-dd80-4e2c-953e-379158567863_terseLabel_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_StockOptionPlanExpense_label_en-US" xlink:label="lab_us-gaap_StockOptionPlanExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock or Unit Option Plan Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockOptionPlanExpense" xlink:to="lab_us-gaap_StockOptionPlanExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_81abb4b0-6f8c-46cc-b6e3-a76564280dd9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_d58f9992-066d-41b3-ad12-4076cb8ebc34_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Unrealized Loss on Investments [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Table</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_f45c52c3-bf88-49d4-8780-394a53d81657_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State</link:label>
    <link:label id="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current State and Local Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentStateAndLocalTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrent_17c8f145-736e-4014-8a90-1a102b1257d0_totalLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total current assets</link:label>
    <link:label id="lab_us-gaap_AssetsCurrent_label_en-US" xlink:label="lab_us-gaap_AssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrent" xlink:to="lab_us-gaap_AssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_5caa0dd3-beed-44e2-bf55-354010aa604c_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of two years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Contributions Vest At End Of Two Year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of two year.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfTwoYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_5b1687d7-8834-41dc-ace8-b63d2abd8d3c_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringCostAndReserveAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis" xlink:to="lab_us-gaap_RestructuringCostAndReserveAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_country_JP_0bbc49cc-d012-49a1-aa41-b15a05df7a0c_terseLabel_en-US" xlink:label="lab_country_JP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">JAPAN</link:label>
    <link:label id="lab_country_JP_label_en-US" xlink:label="lab_country_JP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">JAPAN</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_JP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_JP" xlink:to="lab_country_JP" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_672d70ad-7260-4f00-a3cc-d9e5be6040cd_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Income Per Share</link:label>
    <link:label id="lab_us-gaap_EarningsPerSharePolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerSharePolicyTextBlock" xlink:to="lab_us-gaap_EarningsPerSharePolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_7ab90411-e984-4047-8c21-fddb51779279_terseLabel_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">New Pronouncements</link:label>
    <link:label id="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_label_en-US" xlink:label="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Standards Update and Change in Accounting Principle [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:to="lab_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_d0e65e43-c0e9-4dba-b4fa-7b9ac8117a34_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock, shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_1bd42ab4-a839-4078-9172-52cd094b2a11_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodShares_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodShares" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_e28c330e-3437-4df7-883d-dd0d1a5e8015_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of positions eliminated</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Cost, Number of Positions Eliminated</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:to="lab_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_2e7194c9-6ef0-4cdd-99d4-90ec5e47f2e3_verboseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum percentage of revenue accountability</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskPercentage1_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskPercentage1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk, Percentage</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskPercentage1" xlink:to="lab_us-gaap_ConcentrationRiskPercentage1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_81324994-fcd7-4bde-a817-9bc624adece7_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current:</link:label>
    <link:label id="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_c3882120-f1e8-4762-8ae4-fee07dee696d_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State income taxes, net of federal benefit</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_21bdf2bf-f9fd-4312-8a74-29f3e0b9e80e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_b972e561-a155-44cd-acd6-14a4a0e6c8d3_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2028</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_474d73c5-130c-48f9-b2b9-4625f21bca4c_terseLabel_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_label_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long Term Investments [Member]</link:label>
    <link:label id="lab_cgnx_LongTermInvestmentsMember_documentation_en-US" xlink:label="lab_cgnx_LongTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember" xlink:href="cgnx-20231231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LongTermInvestmentsMember" xlink:to="lab_cgnx_LongTermInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_e1b535b7-436d-459a-b578-79a74145f031_terseLabel_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset-Backed Securities [Member]</link:label>
    <link:label id="lab_us-gaap_AssetBackedSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_AssetBackedSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset-Backed Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetBackedSecuritiesMember" xlink:to="lab_us-gaap_AssetBackedSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_15439874-abd4-43ca-8021-bd1c0b862bd2_terseLabel_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable</link:label>
    <link:label id="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy_label_en-US" xlink:label="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:to="lab_us-gaap_TradeAndOtherAccountsReceivablePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_f256ebb4-42d2-46e7-9ef1-c3769d0f8c6d_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash provided by operating activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_22bb4226-4705-4206-9618-47d5dd0ad201_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Amortization Expense Succeeding Fiscal Years</link:label>
    <link:label id="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:to="lab_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompRecoveryTable_terseLabel_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneously Awarded Compensation Recovery</link:label>
    <link:label id="lab_ecd_ErrCompRecoveryTable_label_en-US" xlink:label="lab_ecd_ErrCompRecoveryTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneously Awarded Compensation Recovery [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompRecoveryTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="lab_ecd_ErrCompRecoveryTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_cffeee9f-9670-4bdf-9913-376c7058b696_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Salaries and payroll taxes</link:label>
    <link:label id="lab_us-gaap_AccruedSalariesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedSalariesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Salaries, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedSalariesCurrent" xlink:to="lab_us-gaap_AccruedSalariesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_3d93d694-ff9a-451f-816c-abacbf1d22f2_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets:</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsGrossAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Gross [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:to="lab_us-gaap_DeferredTaxAssetsGrossAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_63f511c1-eb84-41e1-a240-3091ef1a4158_terseLabel_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:label id="lab_us-gaap_FurnitureAndFixturesMember_label_en-US" xlink:label="lab_us-gaap_FurnitureAndFixturesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Furniture and Fixtures [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FurnitureAndFixturesMember" xlink:to="lab_us-gaap_FurnitureAndFixturesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing, How MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing, How MNPI Considered [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:to="lab_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_49ccbf78-8536-4bc3-98f2-f91518312136_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross realized gains</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Realized Gain</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_bbce40c5-b85a-4a3d-852b-7ba4d557c539_terseLabel_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</link:label>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_label_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans [Member]</link:label>
    <link:label id="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_documentation_en-US" xlink:label="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:to="lab_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NoncurrentAssets_b53d0901-156b-49a9-8f86-683568186baa_terseLabel_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-lived assets</link:label>
    <link:label id="lab_us-gaap_NoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_NoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NoncurrentAssets" xlink:to="lab_us-gaap_NoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_1293f842-cdfb-4fd8-ba7b-8c02631a4f91_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred tax assets, valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_aacea7d4-2d55-4314-b0d7-6a2ab53122c7_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Valuation allowance</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Valuation Allowance</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_DeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_7d7dc6b4-f278-40bf-ae39-9ffb1cfe3f6a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_e436006e-fa59-42f7-a53c-a3c1e3527240_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_4d270098-68ab-4c3a-8c62-34bc8470aac0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign currency translation gain (loss)</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_52895ac9-477b-43ac-9716-85a75ef903cf_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign currency translation adjustments, net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_7b579107-7605-4c7d-9376-e36a95c26167_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income tax liabilities</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_0ecf4b70-0a0f-40b1-9a38-c03bfea12407_terseLabel_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Excess and obsolete inventory charges</link:label>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_label_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Excess and Obsolete Inventory Charges</link:label>
    <link:label id="lab_cgnx_ExcessAndObsoleteInventoryCharges_documentation_en-US" xlink:label="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Excess and Obsolete Inventory Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges" xlink:href="cgnx-20231231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExcessAndObsoleteInventoryCharges" xlink:to="lab_cgnx_ExcessAndObsoleteInventoryCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_ca52769e-24e9-4fb2-a52f-97dfaef9b7e3_verboseLabel_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset-backed securities</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Backed Securities Fair Value Disclosure</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:href="cgnx-20231231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:to="lab_cgnx_AssetBackedSecuritiesFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_034f1eb8-9fd4-4a2b-bcd4-84d07172cde7_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Type [Axis]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Lived Tangible Asset [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_c4df5e6b-077a-42f2-b735-f54003cd2726_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesIssued" xlink:to="lab_us-gaap_PreferredStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_bbd5ddd1-e373-4c17-baa8-1d90b544858a_terseLabel_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expiration period of stock option plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_label_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expiration Period Of Stock Option Plan</link:label>
    <link:label id="lab_cgnx_ExpirationPeriodOfStockOptionPlan_documentation_en-US" xlink:label="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expiration period of stock option plan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:href="cgnx-20231231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:to="lab_cgnx_ExpirationPeriodOfStockOptionPlan" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_1471ac7b-1c17-4f2c-80fe-7a0bad211e20_terseLabel_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Small Business</link:label>
    <link:label id="lab_dei_EntityEmergingGrowthCompany_label_en-US" xlink:label="lab_dei_EntityEmergingGrowthCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Emerging Growth Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityEmergingGrowthCompany" xlink:to="lab_dei_EntityEmergingGrowthCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_cdd42ce3-40a0-4ff7-999e-ba8f7978d565_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible assets, net</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible Assets, Net (Excluding Goodwill)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:to="lab_us-gaap_IntangibleAssetsNetExcludingGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_2492cdd6-dc41-485a-a743-68fa0a8ee664_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_3ab1b1b6-f05f-4c65-8988-3af651ada547_terseLabel_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_StandardProductWarrantyPolicy_label_en-US" xlink:label="lab_us-gaap_StandardProductWarrantyPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard Product Warranty, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandardProductWarrantyPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardProductWarrantyPolicy" xlink:to="lab_us-gaap_StandardProductWarrantyPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_1971d337-f861-4c0a-89dd-1c15aca7bd51_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-lived intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_25988c96-6cd0-436b-97c7-c7c0cecfc056_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2024</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTableTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure, Table</link:label>
    <link:label id="lab_ecd_PvpTableTextBlock_label_en-US" xlink:label="lab_ecd_PvpTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTableTextBlock" xlink:to="lab_ecd_PvpTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_c316805a-a13a-4800-af74-b936e8f7cd78_terseLabel_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:label id="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_label_en-US" xlink:label="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Antidilutive Securities [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:to="lab_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndTitle_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Title</link:label>
    <link:label id="lab_ecd_TrdArrIndTitle_label_en-US" xlink:label="lab_ecd_TrdArrIndTitle" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Individual Title</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndTitle"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndTitle" xlink:to="lab_ecd_TrdArrIndTitle" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OtherAsiaMember_643a3e16-2a6d-43b7-894d-4661ba3c45e4_terseLabel_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_label_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:label id="lab_cgnx_OtherAsiaMember_documentation_en-US" xlink:label="lab_cgnx_OtherAsiaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Asia [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember" xlink:href="cgnx-20231231.xsd#cgnx_OtherAsiaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherAsiaMember" xlink:to="lab_cgnx_OtherAsiaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockMember_3d235376-21ee-4665-99ee-38e85c8a27ad_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:label id="lab_us-gaap_CommonStockMember_label_en-US" xlink:label="lab_us-gaap_CommonStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockMember" xlink:to="lab_us-gaap_CommonStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_6aa8bce4-edc9-4003-b38e-876f4b1ebb08_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_fbc9f45f-c308-4a88-a486-90dab2c756fd_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-term investments</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_IndividualAxis_terseLabel_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Individual:</link:label>
    <link:label id="lab_ecd_IndividualAxis_label_en-US" xlink:label="lab_ecd_IndividualAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Individual [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_IndividualAxis" xlink:to="lab_ecd_IndividualAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_48e15a9f-8d48-459e-a623-c7491f7b73dd_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressPostalZipCode_bf6a68c9-d15e-4cc7-b78f-64307dbd99e0_terseLabel_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:label id="lab_dei_EntityAddressPostalZipCode_label_en-US" xlink:label="lab_dei_EntityAddressPostalZipCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Postal Zip Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressPostalZipCode" xlink:to="lab_dei_EntityAddressPostalZipCode" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_029e9144-3d1e-4e81-b739-728473cf9ca9_negatedLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reductions as a result of the expiration of the applicable statutes of limitations</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_c4c740a4-8782-4e0a-a6eb-dd6d8de44ce8_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationDomain_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationDomain" xlink:to="lab_us-gaap_IncomeStatementLocationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_2cd5f357-53ad-4990-9635-3a50e08e0429_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDomain_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_ab355abb-7fd4-4183-bedb-5c027cb5a45a_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">available for sale securities debt maturities after five years before seven years fair value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_HUF_547e843d-6a7c-4cc5-a7fa-54a33428b7e3_terseLabel_en-US" xlink:label="lab_currency_HUF" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hungarian Forint [Member]</link:label>
    <link:label id="lab_currency_HUF_label_en-US" xlink:label="lab_currency_HUF" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hungary, Forint</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_HUF"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_HUF" xlink:to="lab_currency_HUF" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedVacationCurrent_7e253fe3-a650-40c5-b421-e7dc07b83446_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vacation</link:label>
    <link:label id="lab_us-gaap_AccruedVacationCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedVacationCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Vacation, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedVacationCurrent" xlink:to="lab_us-gaap_AccruedVacationCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_a5dbfed8-8788-4352-b39b-1a4be1576731_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax penalties and interest expense</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_MinimumMember_0cd45d6a-4002-49d4-9252-33e2a4fa970d_terseLabel_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum [Member]</link:label>
    <link:label id="lab_srt_MinimumMember_label_en-US" xlink:label="lab_srt_MinimumMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_MinimumMember" xlink:to="lab_srt_MinimumMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_d733b287-42bf-4e5c-99ae-16c0f177c6ca_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant, and equipment, net</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_a2292c61-fb8f-45e8-b5b4-0c6bb3dc3f04_totalLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant and equipment, net, total</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentNet_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentNet" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_7ea9308b-8f02-4420-98b3-b4635b9d14b5_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted-average common and common-equivalent shares outstanding:</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_bdd0e635-2d3c-40c2-9587-3a6ce2cebc09_terseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_label_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Period Increase (Decrease)</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_documentation_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract With Customer, Liability, Period Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:href="cgnx-20231231.xsd#cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:to="lab_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_f982a3e0-730e-4bcf-9669-d58c3a5ca355_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash dividends per common share (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_CommonStockDividendsPerShareCashPaid_label_en-US" xlink:label="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Dividends, Per Share, Cash Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:to="lab_us-gaap_CommonStockDividendsPerShareCashPaid" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Cash_6f260fb8-45a8-49da-8e14-af79104bf83c_terseLabel_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash</link:label>
    <link:label id="lab_us-gaap_Cash_label_en-US" xlink:label="lab_us-gaap_Cash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Cash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Cash" xlink:to="lab_us-gaap_Cash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_56bf26ed-9a41-4a71-9ed3-0286ee6e94e2_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfCashFlowsAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Cash Flows [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract" xlink:to="lab_us-gaap_StatementOfCashFlowsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsAbstract_43db9988-cb83-47e2-9ed1-029da94b80c2_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">ASSETS</link:label>
    <link:label id="lab_us-gaap_AssetsAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsAbstract" xlink:to="lab_us-gaap_AssetsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Disclosure</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiDiscTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:to="lab_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_270e482a-7520-40be-abd7-6767441a1f93_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_2ec6bac0-3062-4d5c-9ae4-86e99160ed69_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign currency gain (loss)</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gain (Loss), Foreign Currency Transaction, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:to="lab_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_41bc8f78-1e68-4b5a-b1d8-69b34c3bad39_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash used to fund tax payments</link:label>
    <link:label id="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_label_en-US" xlink:label="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment, Tax Withholding, Share-Based Payment Arrangement</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:to="lab_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_e10e73be-6b09-4db0-9c99-4d77d176ae40_terseLabel_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule II - Valuation and Qualifying Accounts</link:label>
    <link:label id="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_label_en-US" xlink:label="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:to="lab_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_dfd53178-aece-4c1a-862b-ed876c2a567a_terseLabel_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasurySecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USTreasurySecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">US Treasury Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasurySecuritiesMember" xlink:to="lab_us-gaap_USTreasurySecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_28d1bab9-53d5-478c-9a1d-415b2793f531_totalLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net cash used in financing activities</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxAssetsNet_f3b74833-7868-4648-ba2a-cfe729e2a3dd_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income taxes</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxAssetsNet_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxAssetsNet" xlink:to="lab_us-gaap_DeferredIncomeTaxAssetsNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_f3f49927-ea12-44f6-a4cd-f4ad5616cef3_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disposals in period</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentDisposals_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Disposals</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentDisposals" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_December2022Member_ed417ec3-52b8-445a-b892-95c81ec517a3_terseLabel_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022</link:label>
    <link:label id="lab_cgnx_December2022Member_label_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022 [Member]</link:label>
    <link:label id="lab_cgnx_December2022Member_documentation_en-US" xlink:label="lab_cgnx_December2022Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">December 2022</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member" xlink:href="cgnx-20231231.xsd#cgnx_December2022Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_December2022Member" xlink:to="lab_cgnx_December2022Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_f095dafe-6c08-45a0-81b6-efeaa125cfb6_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemAxis_c4d456cd-1dbc-44e7-9440-7f5c1aa2aee9_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Axis]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemAxis_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis" xlink:to="lab_us-gaap_UnusualOrInfrequentItemAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsMember_1c7e29ef-6728-4e38-841b-e67b671f50cf_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsMember_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained Earnings [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsMember" xlink:to="lab_us-gaap_RetainedEarningsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_ea4d03e4-a976-4f53-99e1-b7e0f3df9cd8_totalLabel_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_label_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash Cash Equivalents Short Term And Long Term Investments</link:label>
    <link:label id="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_documentation_en-US" xlink:label="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, cash equivalents, short term and long term investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:href="cgnx-20231231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:to="lab_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote</link:label>
    <link:label id="lab_ecd_AdjToNonPeoNeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Non-PEO NEO Compensation Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:to="lab_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_9866c322-b81a-4e46-b942-cbe2d3c420b3_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net income (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasic_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasic" xlink:to="lab_us-gaap_EarningsPerShareBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_23ad2b79-ace8-42cd-9c6e-3c3adaa9d350_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total unrecognized compensation expense related to non-vested stock options</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_9dd1a7b7-1f61-492a-af2e-64c262fe1221_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingPoliciesAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingPoliciesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Policies [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingPoliciesAbstract" xlink:to="lab_us-gaap_AccountingPoliciesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_204cf69f-5677-4177-a9e1-f0b3b70e2aca_terseLabel_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:label id="lab_us-gaap_OneTimeTerminationBenefitsMember_label_en-US" xlink:label="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">One-time Termination Benefits [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OneTimeTerminationBenefitsMember" xlink:to="lab_us-gaap_OneTimeTerminationBenefitsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_13611c1b-b1c2-4371-8830-677684497915_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss on disposition of property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_2dafbfbe-6b70-4586-ba8b-2a8c838ee1ef_terseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss on disposition of property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnDispositionOfAssets1_label_en-US" xlink:label="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gain (Loss) on Disposition of Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnDispositionOfAssets1" xlink:to="lab_us-gaap_GainLossOnDispositionOfAssets1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneous Compensation Analysis</link:label>
    <link:label id="lab_ecd_ErrCompAnalysisTextBlock_label_en-US" xlink:label="lab_ecd_ErrCompAnalysisTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Erroneous Compensation Analysis [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ErrCompAnalysisTextBlock" xlink:to="lab_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet_ddd39860-8f78-43f2-a8fe-70658188628d_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Net, Noncurrent</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:to="lab_us-gaap_DeferredTaxAssetsLiabilitiesNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_819f457f-00b1-4eaa-b131-1f164af70773_terseLabel_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-cash, loss from catastrophes</link:label>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_label_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-cash, Loss from Catastrophes</link:label>
    <link:label id="lab_cgnx_NonCashLossFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_NonCashLossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-cash, Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes" xlink:href="cgnx-20231231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NonCashLossFromCatastrophes" xlink:to="lab_cgnx_NonCashLossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_6f0dd7fd-c7ba-4216-949e-2e2863b870cb_terseLabel_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair value adjustment on acquired inventories (Note 21)</link:label>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_label_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Adjustment on Acquired Inventories</link:label>
    <link:label id="lab_cgnx_FairValueAdjustmentOnAcquiredInventories_documentation_en-US" xlink:label="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Adjustment on Acquired Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:href="cgnx-20231231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:to="lab_cgnx_FairValueAdjustmentOnAcquiredInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_74e4d673-11e1-411b-86fd-de476730c531_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested or expected to vest</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_dd84602a-6d2f-4d2d-a02f-90007f7be458_terseLabel_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basis of Consolidation</link:label>
    <link:label id="lab_us-gaap_ConsolidationPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Consolidation, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConsolidationPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConsolidationPolicyTextBlock" xlink:to="lab_us-gaap_ConsolidationPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_e2e16ec4-67cf-4b5c-8a70-a06bb591bc14_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax expense related to rate revaluation on state tax assets</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Settlement, State and Local, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentTransitionReport_c92022b3-4d4f-474b-8fd5-722387c982c2_terseLabel_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Transition Report</link:label>
    <link:label id="lab_dei_DocumentTransitionReport_label_en-US" xlink:label="lab_dei_DocumentTransitionReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Transition Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentTransitionReport" xlink:to="lab_dei_DocumentTransitionReport" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Predetermined</link:label>
    <link:label id="lab_ecd_AwardTmgPredtrmndFlag_label_en-US" xlink:label="lab_ecd_AwardTmgPredtrmndFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Predetermined [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgPredtrmndFlag" xlink:to="lab_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_b73460da-e19a-4f44-85d6-0b8baf161a5e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Business Acquisitions, by Acquisition [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:to="lab_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_b692c8b9-f2f0-47d3-aae6-54cddb239a8b_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Accounts Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_AmericasMember_c80c97ea-ea42-4f5f-b41b-55cd0c843f43_terseLabel_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Americas [Member]</link:label>
    <link:label id="lab_srt_AmericasMember_label_en-US" xlink:label="lab_srt_AmericasMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Americas [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_AmericasMember" xlink:to="lab_srt_AmericasMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_fcb8b24b-7ae3-4e4b-b40d-26445f4fe52f_terseLabel_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</link:label>
    <link:label id="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_label_en-US" xlink:label="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Income Tax Contingencies [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:to="lab_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_country_KP_f1172554-229c-4ffa-9719-eb369836545d_terseLabel_en-US" xlink:label="lab_country_KP" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</link:label>
    <link:label id="lab_country_KP_label_en-US" xlink:label="lab_country_KP" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_KP"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_KP" xlink:to="lab_country_KP" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityPublicFloat_006dcf04-2251-4dfd-ab16-4934eaccfa4f_terseLabel_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Public Float</link:label>
    <link:label id="lab_dei_EntityPublicFloat_label_en-US" xlink:label="lab_dei_EntityPublicFloat" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Public Float</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityPublicFloat" xlink:to="lab_dei_EntityPublicFloat" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_167f7d0d-c783-4225-b8f7-ee05e378da77_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_1ef11b40-1ca9-4d09-bea1-d029aeedb04d_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentAbstract_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Liabilities Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:to="lab_us-gaap_OtherLiabilitiesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentRiskAxis_509b9085-eff9-4f1b-a7fa-54603be94f51_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentRiskAxis_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis" xlink:to="lab_us-gaap_DerivativeInstrumentRiskAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllTradingArrangementsMember_terseLabel_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Trading Arrangements</link:label>
    <link:label id="lab_ecd_AllTradingArrangementsMember_label_en-US" xlink:label="lab_ecd_AllTradingArrangementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Trading Arrangements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllTradingArrangementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="lab_ecd_AllTradingArrangementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemTable_25c697b3-dfd0-468b-ac81-dbd1238307bb_terseLabel_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Table]</link:label>
    <link:label id="lab_us-gaap_UnusualOrInfrequentItemTable_label_en-US" xlink:label="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Item, or Both [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable" xlink:to="lab_us-gaap_UnusualOrInfrequentItemTable" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllAdjToCompMember_terseLabel_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Adjustments to Compensation</link:label>
    <link:label id="lab_ecd_AllAdjToCompMember_label_en-US" xlink:label="lab_ecd_AllAdjToCompMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Adjustments to Compensation [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllAdjToCompMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllAdjToCompMember" xlink:to="lab_ecd_AllAdjToCompMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringReserveRollForward_4ec8d16b-97fa-4037-87c7-edf45270c53b_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringReserveRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_RestructuringReserveRollForward_label_en-US" xlink:label="lab_us-gaap_RestructuringReserveRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Reserve [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringReserveRollForward" xlink:to="lab_us-gaap_RestructuringReserveRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_4dd26d0c-3806-4306-a8e3-ae8ae89af21e_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, $0.002 par value &#8211; Authorized: 300,000 shares in 2023 and 2022, respectively, issued and outstanding: 171,599 and 172,631 shares in 2023 and 2022, respectively</link:label>
    <link:label id="lab_us-gaap_CommonStockValueOutstanding_label_en-US" xlink:label="lab_us-gaap_CommonStockValueOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Value, Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockValueOutstanding" xlink:to="lab_us-gaap_CommonStockValueOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_b2ebfc50-edfd-4b4c-a31a-c6d8c9e3b854_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Date Declared</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:to="lab_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RetirementAllowance_ea07303b-8559-4914-8265-bb84476d219a_terseLabel_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign retirement obligations</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_label_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement Allowance</link:label>
    <link:label id="lab_cgnx_RetirementAllowance_documentation_en-US" xlink:label="lab_cgnx_RetirementAllowance" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retirement allowance Japan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance" xlink:href="cgnx-20231231.xsd#cgnx_RetirementAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RetirementAllowance" xlink:to="lab_cgnx_RetirementAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_terseLabel_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Amount</link:label>
    <link:label id="lab_ecd_OutstandingRecoveryCompAmt_label_en-US" xlink:label="lab_ecd_OutstandingRecoveryCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding Recovery Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OutstandingRecoveryCompAmt" xlink:to="lab_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_81d883fe-8c8b-4f39-ad85-b5493c146f95_terseLabel_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increases to the allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_ProvisionForDoubtfulAccounts_label_en-US" xlink:label="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Credit Loss Expense (Reversal)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProvisionForDoubtfulAccounts" xlink:to="lab_us-gaap_ProvisionForDoubtfulAccounts" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesReturnsAndAllowancesMember_854f7102-8a72-4e23-ad35-48347846358e_terseLabel_en-US" xlink:label="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sales Returns and Allowances [Member]</link:label>
    <link:label id="lab_us-gaap_SalesReturnsAndAllowancesMember_label_en-US" xlink:label="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Sales Returns and Allowances [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesReturnsAndAllowancesMember" xlink:to="lab_us-gaap_SalesReturnsAndAllowancesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeAssets_e29574b7-41fd-4911-ab77-1eb4a310b9da_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_e7710d23-f28b-4be4-8521-f703094d5771_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of assets presented</link:label>
    <link:label id="lab_us-gaap_DerivativeAssets_label_en-US" xlink:label="lab_us-gaap_DerivativeAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeAssets" xlink:to="lab_us-gaap_DerivativeAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_f343caf2-c5d6-4626-9460-fc641f880c7d_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited or expired, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_601a802b-9037-4b41-a1f2-fcdf46a84e43_totalLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income tax expense (benefit), Total</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_996ec45e-95f7-4f1e-9921-1dff276e7039_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTypeAxis_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTypeAxis" xlink:to="lab_us-gaap_SubsequentEventTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_dec2b99b-dffa-4036-92a3-04603ea7baa1_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:label id="lab_us-gaap_ProceedsFromStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromStockOptionsExercised" xlink:to="lab_us-gaap_ProceedsFromStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_6ce11825-25c6-413c-95b8-037a18d6b130_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Comprehensive Income [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:to="lab_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_9c10d3c1-6584-47c5-9975-d1753636230d_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:to="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_bc7bcb33-3f6d-48f3-82d3-a4f6b3b5cf6e_terseLabel_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:label id="lab_dei_DocumentFinStmtErrorCorrectionFlag_label_en-US" xlink:label="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Financial Statement Error Correction [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFinStmtErrorCorrectionFlag" xlink:to="lab_dei_DocumentFinStmtErrorCorrectionFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_636c7d00-f677-4c71-bae2-492305fdff0f_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_6e5a4594-95e3-49fd-96d6-5146c4cbe58f_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2020 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2020 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramMarch2020Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program March 2020</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramMarch2020Member" xlink:to="lab_cgnx_RepurchaseProgramMarch2020Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_4f84e23c-8fe6-412a-a0ec-9525e649915d_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Percent of employee contribution</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_58d96293-aad9-4b07-8306-911e68cfecf8_periodStartLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_28fbd4c4-5093-4337-a504-9ae9c1d7cfd0_periodEndLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending balance</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_7c931cc6-114a-4640-ac04-1708c50121fe_terseLabel_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nature of Operations</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_label_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nature Of Operations [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_NatureOfOperationsPolicyTextBlock_documentation_en-US" xlink:label="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nature of Operations.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock" xlink:href="cgnx-20231231.xsd#cgnx_NatureOfOperationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NatureOfOperationsPolicyTextBlock" xlink:to="lab_cgnx_NatureOfOperationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_47ce314e-6130-414d-934c-bce21d1a57f3_terseLabel_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset acquisition, transaction costs</link:label>
    <link:label id="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_label_en-US" xlink:label="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Asset Acquisition, Consideration Transferred, Transaction Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:to="lab_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_ff9a15d8-6253-4d4b-99ac-eeffc7321997_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Movement in Standard Product Warranty Accrual [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:to="lab_us-gaap_MovementInStandardProductWarrantyAccrualRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_931b3ee4-95df-41c3-a2f4-6e0fd4f08ccc_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Sale of Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:to="lab_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_36fd4552-7dc3-4c8a-b64e-bb9e3c5641aa_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax credits</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Credit, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsForRestructuring_64805296-dfdd-447c-b9f9-9c5b6b49faeb_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRestructuring" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash payments</link:label>
    <link:label id="lab_us-gaap_PaymentsForRestructuring_label_en-US" xlink:label="lab_us-gaap_PaymentsForRestructuring" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments for Restructuring</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRestructuring" xlink:to="lab_us-gaap_PaymentsForRestructuring" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_0388b75b-7c3c-4ef1-bb33-cec3c59f431d_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts Liability, Current</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_label_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:label id="lab_cgnx_CustomerContractsLiabilityCurrentRollForward_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts Liability Current [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:to="lab_cgnx_CustomerContractsLiabilityCurrentRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentPeriodEndDate_e6ace3b3-270c-4884-bc8b-4dfb24486dcb_terseLabel_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Period End Date</link:label>
    <link:label id="lab_dei_DocumentPeriodEndDate_label_en-US" xlink:label="lab_dei_DocumentPeriodEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Period End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentPeriodEndDate" xlink:to="lab_dei_DocumentPeriodEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrAdoptionDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adoption Date</link:label>
    <link:label id="lab_ecd_TrdArrAdoptionDate_label_en-US" xlink:label="lab_ecd_TrdArrAdoptionDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Adoption Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrAdoptionDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrAdoptionDate" xlink:to="lab_ecd_TrdArrAdoptionDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_9839dddc-3237-460c-bc3e-c020ff51cbca_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss (gain) on disposal of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_label_en-US" xlink:label="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gain (Loss) on Disposition of Property Plant Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:to="lab_us-gaap_GainLossOnSaleOfPropertyPlantEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_3affe679-e62e-47a2-84c1-3835c89b463f_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax expense on continuing operations</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_aeff3bae-d161-42dd-a9cc-b77ba6a718c6_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax expense (benefit), continuing operations, Total</link:label>
    <link:label id="lab_us-gaap_IncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_IncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_5d9456a7-9236-410c-bd28-e0d28da369e9_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_6a2d84d0-0cd1-4a51-8a05-6a5eb0e63374_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Write-offs, net of recoveries</link:label>
    <link:label id="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_label_en-US" xlink:label="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Receivable, Allowance for Credit Loss, Writeoff</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:to="lab_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_52f48376-f96f-4c1a-9848-34f75205f6ea_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyLineItems_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Liability Contingency [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems" xlink:to="lab_us-gaap_ProductLiabilityContingencyLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_d64c99cb-9ff8-40a3-a98b-8df2417110bc_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueDisclosuresTextBlock_label_en-US" xlink:label="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Disclosures [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueDisclosuresTextBlock" xlink:to="lab_us-gaap_FairValueDisclosuresTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_b91d09cf-3f76-4846-b976-73ce3d1c3f40_terseLabel_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">88,000 Square-Foot Premises</link:label>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_label_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">88,000 Square-Foot Premises [Member]</link:label>
    <link:label id="lab_cgnx_A88000SquareFootPremisesMember_documentation_en-US" xlink:label="lab_cgnx_A88000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">88,000 Square-Foot Premises</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember" xlink:href="cgnx-20231231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_A88000SquareFootPremisesMember" xlink:to="lab_cgnx_A88000SquareFootPremisesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_8c0a6ec9-c0da-41cc-b7be-30a9ccdbf864_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAbstract_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract" xlink:to="lab_us-gaap_CashAndCashEquivalentsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MoritexCorporationMember_c4911160-873c-44a8-bb6c-e74f9a0f0509_terseLabel_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Moritex Corporation</link:label>
    <link:label id="lab_cgnx_MoritexCorporationMember_label_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Moritex Corporation [Member]</link:label>
    <link:label id="lab_cgnx_MoritexCorporationMember_documentation_en-US" xlink:label="lab_cgnx_MoritexCorporationMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Moritex Corporation</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MoritexCorporationMember" xlink:to="lab_cgnx_MoritexCorporationMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_aad8be3f-d762-4a59-866b-19ac7775c746_terseLabel_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan</link:label>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_label_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan [Member]</link:label>
    <link:label id="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_documentation_en-US" xlink:label="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cognex Corporation 2023 Stock Option And Incentive Plan</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:to="lab_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_cbc69113-bd3b-4999-8c9e-ba730acd6949_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrealized Losses, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityAbstract_c01fd3c8-eaf9-4f20-9135-d038eac34f3e_terseLabel_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_EquityAbstract_label_en-US" xlink:label="lab_us-gaap_EquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityAbstract" xlink:to="lab_us-gaap_EquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_b2883a9c-afdf-4204-b394-7465e97375bb_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-sale [Line Items]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_label_en-US" xlink:label="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:to="lab_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_d2894cc4-59fb-4118-b703-3c821a8e56bb_verboseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureTextBlock" xlink:to="lab_us-gaap_InventoryDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2bff2fd6-382e-4050-af48-e660ebfc8bcf_negatedLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reclassification of net realized (gain) loss into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_a3d5656f-c002-4ea1-a764-8a2ecc7b1be3_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_e6bb57fa-cf7c-4bb0-868c-0672afe45986_verboseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net realized gains reclassified into current operations</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_c7090c19-d55d-428c-a339-ec809889f1d9_totalLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase price</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_f1507257-1e06-41bc-9568-75e00739bb0c_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, weighted average remaining lease term (years)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Weighted Average Remaining Lease Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Company Selected Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_fe008f41-a321-4cfb-9e5a-d7e99b7021ed_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Change in deferred income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Deferred Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:to="lab_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_4afbd1db-eefc-4dc6-b31a-39a29263b2bd_negatedLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrealized Losses, Less than 12 months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_345bf6f7-bd29-40e2-afba-053b0bb685ec_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_d6b310c8-7cd3-4691-848e-3506f2467d6a_totalLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:to="lab_us-gaap_CashAndCashEquivalentsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_1dc8f41c-5de1-4fa4-8009-014764c3595c_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net payments related to business acquisitions</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_deefd4ee-6f45-433e-8597-9777f13d4c84_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments related to business acquisitions</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Businesses, Net of Cash Acquired</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:to="lab_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_2a8e13e5-b7cc-4a3c-8732-62e1485af02b_terseLabel_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations of Risk</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_label_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations Of Risk Policy [Policy Text Block]</link:label>
    <link:label id="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_documentation_en-US" xlink:label="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentrations of Risk.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:href="cgnx-20231231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:to="lab_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_e4ace52e-d7b5-4cf8-aab6-f0c1fc236be4_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible Assets, Finite-Lived, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:to="lab_us-gaap_IntangibleAssetsFiniteLivedPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_48394fe9-62cd-4f70-8434-6a7ef5f6c8e3_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Other Measure</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Other Measure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_label_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member]</link:label>
    <link:label id="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember_documentation_en-US" xlink:label="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:to="lab_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_5d7179dc-ac77-4b70-91e3-52a82230fb7d_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit for release of valuation allowance</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredRevenueRefundPayments1_dddc97bd-92e9-4866-8b00-3f7a3d102d81_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Revenue, Refund Payments</link:label>
    <link:label id="lab_us-gaap_DeferredRevenueRefundPayments1_label_en-US" xlink:label="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Revenue, Refund Payments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRefundPayments1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRefundPayments1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredRevenueRefundPayments1" xlink:to="lab_us-gaap_DeferredRevenueRefundPayments1" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_415808fe-c1de-4d74-9f79-b9cd7ee304c3_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of one year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Contributions Vest At End Of One Year</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfOneYear_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Contributions Vest At End Of One Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfOneYear" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_b9e1ed21-a76e-49ec-8f74-40587665e58b_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_c645601d-d96a-483a-aa96-0d3fc2b5a0b8_terseLabel_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability</link:label>
    <link:label id="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:to="lab_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_8bc7a64a-454c-45af-8810-afe44204b86e_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_d47cbf86-6c82-491c-b303-287e1e991136_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reductions relating to settlements with taxing authorities</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_f1c91e4f-a1c7-4f81-b9c2-6f8a36148000_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional paid-in capital</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalCommonStock_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid in Capital, Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:to="lab_us-gaap_AdditionalPaidInCapitalCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_4914345a-d673-4a78-a94b-2ca8964e635c_terseLabel_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:label id="lab_us-gaap_AdditionalPaidInCapitalMember_label_en-US" xlink:label="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additional Paid-in Capital [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdditionalPaidInCapitalMember" xlink:to="lab_us-gaap_AdditionalPaidInCapitalMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentAnnualReport_c5e80e32-55c3-4e7b-b55a-117fd8a303af_terseLabel_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Annual Report</link:label>
    <link:label id="lab_dei_DocumentAnnualReport_label_en-US" xlink:label="lab_dei_DocumentAnnualReport" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Annual Report</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentAnnualReport" xlink:to="lab_dei_DocumentAnnualReport" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_5a30bcd4-c1ad-4f2c-8f02-4a2e6aaa2de1_terseLabel_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:label id="lab_us-gaap_BalanceSheetLocationAxis_label_en-US" xlink:label="lab_us-gaap_BalanceSheetLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance Sheet Location [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BalanceSheetLocationAxis" xlink:to="lab_us-gaap_BalanceSheetLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CoverAbstract_9c5ed392-d0fd-4414-9a4e-16ea415d2e54_terseLabel_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:label id="lab_dei_CoverAbstract_label_en-US" xlink:label="lab_dei_CoverAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cover [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CoverAbstract" xlink:to="lab_dei_CoverAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_4beca493-be68-41b9-9209-3875cdc9f8c5_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsTextBlock_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsTextBlock" xlink:to="lab_us-gaap_SubsequentEventsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_country_US_5ecced7c-dbce-45d7-b5d6-0281f10be908_terseLabel_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">United States [Member]</link:label>
    <link:label id="lab_country_US_label_en-US" xlink:label="lab_country_US" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">UNITED STATES</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_US" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_US" xlink:to="lab_country_US" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_aec8cc00-e41f-47b8-8f27-a88d6f55f990_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardNameDomain_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain" xlink:to="lab_us-gaap_TaxCreditCarryforwardNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_2976442c-e009-4942-a6a1-6936ab5b5432_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Measurements, Recurring</link:label>
    <link:label id="lab_us-gaap_FairValueMeasurementsRecurringMember_label_en-US" xlink:label="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Recurring [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueMeasurementsRecurringMember" xlink:to="lab_us-gaap_FairValueMeasurementsRecurringMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsOfDividends_24e009c0-fe29-4314-a87e-666bbc2bcc11_terseLabel_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments of dividends</link:label>
    <link:label id="lab_us-gaap_PaymentsOfDividends_label_en-US" xlink:label="lab_us-gaap_PaymentsOfDividends" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments of Dividends</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividends"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsOfDividends" xlink:to="lab_us-gaap_PaymentsOfDividends" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RevenuePaymentTerms_853aa2f0-3811-4588-9cc1-1bcbde711041_terseLabel_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, payment terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_label_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:label id="lab_cgnx_RevenuePaymentTerms_documentation_en-US" xlink:label="lab_cgnx_RevenuePaymentTerms" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue, Payment Terms</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms" xlink:href="cgnx-20231231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RevenuePaymentTerms" xlink:to="lab_cgnx_RevenuePaymentTerms" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_b64462e2-5be8-42f9-81d0-6e6073779d0c_terseLabel_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other liabilities</link:label>
    <link:label id="lab_us-gaap_OtherLiabilitiesNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Liabilities, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherLiabilitiesNoncurrent" xlink:to="lab_us-gaap_OtherLiabilitiesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_f4f09f9a-031b-4634-be35-2aafc1cbdb9f_terseLabel_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vote entitled for each common share outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_label_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vote Entitled For Each Common Share Outstanding</link:label>
    <link:label id="lab_cgnx_VoteEntitledForEachCommonShareOutstanding_documentation_en-US" xlink:label="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vote entitled for each common share outstanding.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:href="cgnx-20231231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:to="lab_cgnx_VoteEntitledForEachCommonShareOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_bf27fa30-ac5a-4748-997d-a6345733080a_negatedLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forfeited or expired</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_064e3b73-8a13-4d08-8b46-674181a13141_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, Payments, Due</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_d6a3ed19-8b09-4514-910f-78343f2b95ae_totalLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_8ba9c502-b3c3-41e3-9faf-8bbc07b2220c_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment and Geographic Information</link:label>
    <link:label id="lab_us-gaap_SegmentReportingDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingDisclosureTextBlock" xlink:to="lab_us-gaap_SegmentReportingDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_bb7c7912-9124-4cc6-a341-412d61de0f99_totalLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net change in cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_8d8d3084-cddb-4644-99a1-2862cf1278e0_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority, Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquityComponentDomain_58eb6a5f-c2e6-447f-b246-f55e48e2430f_terseLabel_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:label id="lab_us-gaap_EquityComponentDomain_label_en-US" xlink:label="lab_us-gaap_EquityComponentDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Component [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquityComponentDomain" xlink:to="lab_us-gaap_EquityComponentDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_7ce941bd-1ff6-42d0-83ec-5f407620c8fd_terseLabel_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Offsetting Assets</link:label>
    <link:label id="lab_us-gaap_OffsettingAssetsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Offsetting Assets [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OffsettingAssetsTableTextBlock" xlink:to="lab_us-gaap_OffsettingAssetsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_029d8182-48db-4e7d-bf5e-9be4cfa03e17_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Work-in-process</link:label>
    <link:label id="lab_us-gaap_InventoryWorkInProcessNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Work in Process, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:to="lab_us-gaap_InventoryWorkInProcessNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AgencyBondsMember_e2c8ab22-7274-4146-b7a7-a8321d09a17d_terseLabel_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_label_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency Bonds [Member]</link:label>
    <link:label id="lab_cgnx_AgencyBondsMember_documentation_en-US" xlink:label="lab_cgnx_AgencyBondsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Agency bond.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AgencyBondsMember" xlink:to="lab_cgnx_AgencyBondsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-GAAP Measure Description</link:label>
    <link:label id="lab_ecd_NonGaapMeasureDescriptionTextBlock_label_en-US" xlink:label="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-GAAP Measure Description [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:to="lab_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCurrentReportingStatus_464f1e73-95a9-468c-a5cb-b9182775750c_terseLabel_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:label id="lab_dei_EntityCurrentReportingStatus_label_en-US" xlink:label="lab_dei_EntityCurrentReportingStatus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Current Reporting Status</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCurrentReportingStatus" xlink:to="lab_dei_EntityCurrentReportingStatus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_1d1353a4-338a-45fe-8711-1774de6cec46_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTypeDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain" xlink:to="lab_us-gaap_ConcentrationRiskTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_7e61f807-b11f-4970-b0be-69b8e3524eb9_totalLabel_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating income</link:label>
    <link:label id="lab_us-gaap_OperatingIncomeLoss_label_en-US" xlink:label="lab_us-gaap_OperatingIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingIncomeLoss" xlink:to="lab_us-gaap_OperatingIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RealizedInvestmentGainsLosses_3b9a1cd5-b5d6-46bd-9bf9-5dde88037b65_terseLabel_en-US" xlink:label="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net realized gains (losses)</link:label>
    <link:label id="lab_us-gaap_RealizedInvestmentGainsLosses_label_en-US" xlink:label="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Realized Investment Gains (Losses)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedInvestmentGainsLosses" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RealizedInvestmentGainsLosses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RealizedInvestmentGainsLosses" xlink:to="lab_us-gaap_RealizedInvestmentGainsLosses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CatastrophicEventDomain_349d1191-1e5a-4ab7-bc4f-be18dbd6b3dc_terseLabel_en-US" xlink:label="lab_us-gaap_CatastrophicEventDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Domain]</link:label>
    <link:label id="lab_us-gaap_CatastrophicEventDomain_label_en-US" xlink:label="lab_us-gaap_CatastrophicEventDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophic Event [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CatastrophicEventDomain" xlink:to="lab_us-gaap_CatastrophicEventDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_country_SG_6384693c-ae14-4c97-96ae-79b76f4a9ccd_terseLabel_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SINGAPORE</link:label>
    <link:label id="lab_country_SG_label_en-US" xlink:label="lab_country_SG" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SINGAPORE</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_SG"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_country_SG" xlink:to="lab_country_SG" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_96aa27c0-9d1a-4586-bb90-ed7483162495_terseLabel_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant, and Equipment</link:label>
    <link:label id="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:to="lab_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_250f50c0-10de-4fc7-87d2-1012bd1c39ce_terseLabel_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Scenario, Unspecified [Domain]</link:label>
    <link:label id="lab_srt_ScenarioUnspecifiedDomain_label_en-US" xlink:label="lab_srt_ScenarioUnspecifiedDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Scenario [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioUnspecifiedDomain" xlink:to="lab_srt_ScenarioUnspecifiedDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery due to Disqualification of Tax Benefits, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:to="lab_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscTable_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="lab_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_92068c90-63b6-4c92-b50b-87dc9a86125f_terseLabel_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer relationships</link:label>
    <link:label id="lab_us-gaap_CustomerRelationshipsMember_label_en-US" xlink:label="lab_us-gaap_CustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CustomerRelationshipsMember" xlink:to="lab_us-gaap_CustomerRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_4012c300-f2ab-4b17-8337-08bad5aa160d_terseLabel_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:label id="lab_us-gaap_TypeOfRestructuringDomain_label_en-US" xlink:label="lab_us-gaap_TypeOfRestructuringDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Type of Restructuring [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TypeOfRestructuringDomain" xlink:to="lab_us-gaap_TypeOfRestructuringDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PayVsPerformanceDisclosureLineItems_label_en-US" xlink:label="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="lab_ecd_PayVsPerformanceDisclosureLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityVoluntaryFilers_9cacd84f-4bab-484f-b9d5-a04bbfaefd59_terseLabel_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:label id="lab_dei_EntityVoluntaryFilers_label_en-US" xlink:label="lab_dei_EntityVoluntaryFilers" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Voluntary Filers</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityVoluntaryFilers" xlink:to="lab_dei_EntityVoluntaryFilers" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_RangeMember_f783ddd7-e030-41b0-98f5-674dce4d0a35_terseLabel_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Range [Domain]</link:label>
    <link:label id="lab_srt_RangeMember_label_en-US" xlink:label="lab_srt_RangeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statistical Measurement [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_RangeMember" xlink:to="lab_srt_RangeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_terseLabel_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Security Market Price Change</link:label>
    <link:label id="lab_ecd_UndrlygSecurityMktPriceChngPct_label_en-US" xlink:label="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Security Market Price Change, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:to="lab_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_ea7cf8ec-d5e1-4c11-900d-8397490f8d64_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_f405ee85-14cc-4851-8a5d-5bba8f3e9b26_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_71c64600-9f82-4486-87dc-0824b7aad32b_terseLabel_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of Cash, Cash Equivalents and Investments</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_label_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components Of Cash Cash Equivalents And Investments Table [Table Text Block]</link:label>
    <link:label id="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_documentation_en-US" xlink:label="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Components of cash cash equivalents and investments.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:href="cgnx-20231231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:to="lab_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_aabca3ba-2dbe-4b5b-8154-6b930737be3d_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_765d270e-0ab9-489b-83b0-c631acec1cca_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested ending balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_357cfb4f-bd1b-47d7-a633-e0f3d31c904e_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Stockholders' Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract" xlink:to="lab_us-gaap_StatementOfStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_d7999a16-7711-4c87-88f8-b4ac81d028de_negatedTerseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit for audit settlements</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_38abce6f-ee31-4cd5-8c61-a2caf69876c7_terseLabel_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effect of foreign exchange rate changes on cash and cash equivalents</link:label>
    <link:label id="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_0ce5a17c-c9c7-4dc2-9ed6-37ce1a60a400_negatedTerseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reserve for income taxes</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_label_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes</link:label>
    <link:label id="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:to="lab_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_terseLabel_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value</link:label>
    <link:label id="lab_ecd_MnpiDiscTimedForCompValFlag_label_en-US" xlink:label="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">MNPI Disclosure Timed for Compensation Value [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:to="lab_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PerformanceSharesMember_fe08488e-be9c-4389-9c89-9e74e065a52f_terseLabel_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Shares</link:label>
    <link:label id="lab_us-gaap_PerformanceSharesMember_label_en-US" xlink:label="lab_us-gaap_PerformanceSharesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Performance Shares [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PerformanceSharesMember" xlink:to="lab_us-gaap_PerformanceSharesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_5b55f5bc-cdd7-4d8e-ac5b-7fb07cd3da65_terseLabel_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:label id="lab_us-gaap_SegmentReportingAbstract_label_en-US" xlink:label="lab_us-gaap_SegmentReportingAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Segment Reporting [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SegmentReportingAbstract" xlink:to="lab_us-gaap_SegmentReportingAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_48445661-949a-4ef7-a120-eeb53977e546_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts payable</link:label>
    <link:label id="lab_us-gaap_AccountsPayableCurrent_label_en-US" xlink:label="lab_us-gaap_AccountsPayableCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Payable, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableCurrent" xlink:to="lab_us-gaap_AccountsPayableCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_700414a2-a067-45fd-96fc-2373cbe0c372_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercisable, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BuildingImprovementsMember_72e2374e-d36c-4120-9e00-dafcc7d836b1_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingImprovementsMember_label_en-US" xlink:label="lab_us-gaap_BuildingImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Building Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingImprovementsMember" xlink:to="lab_us-gaap_BuildingImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDateAxis_terseLabel_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date:</link:label>
    <link:label id="lab_ecd_RestatementDateAxis_label_en-US" xlink:label="lab_ecd_RestatementDateAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDateAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDateAxis" xlink:to="lab_ecd_RestatementDateAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_98214737-0bf4-4ba1-8b41-4bf080dd1610_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax expense at U.S. federal statutory corporate tax rate</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_a0ae6d2f-f914-4bf4-b32f-93b398bf5872_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and contingencies (Note 11)</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingencies_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingencies" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingencies" xlink:to="lab_us-gaap_CommitmentsAndContingencies" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BacNinhVietnamMember_c8e5d3e1-e76a-4391-8e41-a84c84095b12_terseLabel_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Bac Ninh, Vietnam</link:label>
    <link:label id="lab_cgnx_BacNinhVietnamMember_label_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Bac Ninh, Vietnam [Member]</link:label>
    <link:label id="lab_cgnx_BacNinhVietnamMember_documentation_en-US" xlink:label="lab_cgnx_BacNinhVietnamMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Bac Ninh, Vietnam</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember" xlink:href="cgnx-20231231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BacNinhVietnamMember" xlink:to="lab_cgnx_BacNinhVietnamMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_256d84b0-b409-4d37-980a-e88d86161a1d_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Forfeiture Rate For Unvested Options For All Non Senior Management</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated forfeiture rate for unvested options for all non-senior management.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_af02ac95-8d0a-4caa-8cb5-542f8d91da41_terseLabel_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested Restricted Stock Shares Activity</link:label>
    <link:label id="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Nonvested Restricted Stock Shares Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:to="lab_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_e240e7d3-6327-4156-a2b2-ad7a4242d28b_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardTable_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable" xlink:to="lab_us-gaap_TaxCreditCarryforwardTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_b5db1e18-07c3-42ac-ba3e-ca4e472fb3cc_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable" xlink:to="lab_us-gaap_ScheduleOfGoodwillTable" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementGeographicalAxis_dcd8b568-c351-494b-b80c-2d9f0dbdf5c8_terseLabel_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:label id="lab_srt_StatementGeographicalAxis_label_en-US" xlink:label="lab_srt_StatementGeographicalAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementGeographicalAxis" xlink:to="lab_srt_StatementGeographicalAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_a59452e1-9452-4074-82be-d853e44353f5_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxDisclosureTextBlock" xlink:to="lab_us-gaap_IncomeTaxDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_a795c95f-af57-40d6-b08d-2bb4eff63445_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred revenue and customer deposits</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_49d59f63-e7c3-4083-9db9-7d217f6acf9a_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Provisions for warranties issued during the period</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Increase for Warranties Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:to="lab_us-gaap_ProductWarrantyAccrualWarrantiesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_87f90dcd-d013-478f-b1fd-71d3806a1852_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskLineItems_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskLineItems" xlink:to="lab_us-gaap_ConcentrationRiskLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_68fb2956-1f67-4f27-aa10-1777cfc35f51_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeLeasesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Leases [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeLeasesPolicyTextBlock" xlink:to="lab_us-gaap_LesseeLeasesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_58382ccc-1177-4d9b-8137-e8f69cad0863_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant and equipment acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_b56d4604-deb5-4ac1-b6ff-b6cac7255ed0_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, plant and equipment</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_88fbfe78-c59d-4118-8220-a72effe71dc7_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition</link:label>
    <link:label id="lab_us-gaap_RevenueRecognitionPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRecognitionPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:to="lab_us-gaap_RevenueRecognitionPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_736f5f10-2d3c-4446-b44f-c6f4eed08000_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock par value (in dollars per share)</link:label>
    <link:label id="lab_us-gaap_PreferredStockParOrStatedValuePerShare_label_en-US" xlink:label="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Par or Stated Value Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:to="lab_us-gaap_PreferredStockParOrStatedValuePerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_f76ae471-2390-46e1-b1f3-7eefc24731d0_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionLineItems_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems" xlink:to="lab_us-gaap_BusinessAcquisitionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_2200c444-c175-4633-896e-0f2cd0ff61ce_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted-Average Grant Fair Value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_067c67c6-3271-43f8-b5cb-4ae71f805858_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurements, Recurring and Nonrecurring [Table]</link:label>
    <link:label id="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_label_en-US" xlink:label="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Recurring and Nonrecurring [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:to="lab_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_83db0879-4772-4fe1-8403-699932bbf6e3_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability, Fair Value, Gross Liability</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeLiability_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability, Subject to Master Netting Arrangement, before Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:label id="lab_ecd_PeoTotalCompAmt_label_en-US" xlink:label="lab_ecd_PeoTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoTotalCompAmt" xlink:to="lab_ecd_PeoTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_702809e6-3b76-41ee-beda-bb24a292e8b0_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Property, Plant and Equipment [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:to="lab_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillRollForward_c472433a-c4dc-432c-9e04-1eb5e38b169d_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_GoodwillRollForward_label_en-US" xlink:label="lab_us-gaap_GoodwillRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillRollForward" xlink:to="lab_us-gaap_GoodwillRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_9929ce4c-aaa0-47bb-9a28-d83e60bfe674_terseLabel_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_label_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_HardwareAndSoftwareMember_documentation_en-US" xlink:label="lab_cgnx_HardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hardware and software.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember" xlink:href="cgnx-20231231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_HardwareAndSoftwareMember" xlink:to="lab_cgnx_HardwareAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_934f1846-66dd-4332-85c1-9ef1e443e2f4_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested or expected to vest, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrByIndTable_terseLabel_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangements, by Individual</link:label>
    <link:label id="lab_ecd_TradingArrByIndTable_label_en-US" xlink:label="lab_ecd_TradingArrByIndTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangements, by Individual [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrByIndTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="lab_ecd_TradingArrByIndTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_50ff882c-909b-44bd-b151-7e57f4a90fbf_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unobservable Inputs (Level 3)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel3Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel3Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 3 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel3Member" xlink:to="lab_us-gaap_FairValueInputsLevel3Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_645c1688-6773-40a8-a5e6-5d23448fe538_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_0bb5d39b-bfce-4ef3-a523-9b3e63604cc8_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending balance outstanding</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_8bb2783e-38fc-42cf-8b76-067f7a591571_terseLabel_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_label_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:label id="lab_cgnx_OtherGeographicAreaMember_documentation_en-US" xlink:label="lab_cgnx_OtherGeographicAreaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Geographic Area [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember" xlink:href="cgnx-20231231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OtherGeographicAreaMember" xlink:to="lab_cgnx_OtherGeographicAreaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_83dd0be3-baaa-4ae1-aa4d-c70c83a38d07_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Issuance of common stock under stock option plans</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Issued During Period, Value, Stock Options Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Compensation Actually Paid Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:to="lab_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_52c700af-0c23-4ef7-919d-0043ef7f3798_terseLabel_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance for Credit Loss</link:label>
    <link:label id="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_label_en-US" xlink:label="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financing Receivable, Allowance for Credit Loss [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:to="lab_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_524115d1-22cc-4133-83f0-b7e5b1000215_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted-average grant-date fair values of stock options granted</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetIncomeLoss_7514a4e8-5e2f-4b8e-b6dc-17cf6056d7ea_totalLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_d5ae89cb-7826-4577-86ba-9a089f976fd5_terseLabel_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net income</link:label>
    <link:label id="lab_us-gaap_NetIncomeLoss_label_en-US" xlink:label="lab_us-gaap_NetIncomeLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Income (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetIncomeLoss" xlink:to="lab_us-gaap_NetIncomeLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_abd41638-5238-4ec9-890b-742e49815fa1_terseLabel_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH</link:label>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_label_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH [Member]</link:label>
    <link:label id="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_documentation_en-US" xlink:label="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SAC Sirius Advanced Cybernetics GmbH</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:href="cgnx-20231231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:to="lab_cgnx_SACSiriusAdvancedCyberneticsGmbHMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_fa6b85f6-f06a-435f-8358-85e885672d1f_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total current liabilities</link:label>
    <link:label id="lab_us-gaap_LiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_LiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesCurrent" xlink:to="lab_us-gaap_LiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeContractTypeDomain_2739f7b8-9718-49ed-9b21-48edce614d9c_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeContractTypeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:label id="lab_us-gaap_DerivativeContractTypeDomain_label_en-US" xlink:label="lab_us-gaap_DerivativeContractTypeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Contract [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeContractTypeDomain" xlink:to="lab_us-gaap_DerivativeContractTypeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_48a72b90-fbf3-47c8-855d-962bf3b88968_terseLabel_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective maturity of investments</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_label_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:label id="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_documentation_en-US" xlink:label="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:href="cgnx-20231231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:to="lab_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_82d816b0-21e7-41cb-85ca-115bbfabd618_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions</link:label>
    <link:label id="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_90e825a4-f2df-4d9b-8623-f8ef9b5c0371_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency</link:label>
    <link:label id="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Currency Transactions and Translations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:to="lab_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changed Peer Group, Footnote</link:label>
    <link:label id="lab_ecd_ChangedPeerGroupFnTextBlock_label_en-US" xlink:label="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changed Peer Group, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:to="lab_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureName_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureName_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureName" xlink:to="lab_ecd_CoSelectedMeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_b42ee3e5-b910-4358-b617-dab0ea5bf11b_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leases</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeasesTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Leases [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeasesTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeasesTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_505ad289-2fe7-40c6-b0e8-be8f1ff51b88_terseLabel_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_CorporateBondSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_CorporateBondSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate Bond Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CorporateBondSecuritiesMember" xlink:to="lab_us-gaap_CorporateBondSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_177b5712-b546-4e83-bd3e-778491ea3628_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">LIABILITIES AND SHAREHOLDERS&#8217; EQUITY</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities and Equity [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquityAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_9c162b80-e2b6-4fee-9ce2-b590331309cc_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_9989eab1-7da3-4ce3-b75e-3a172af8c447_negatedLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_b2942f66-957f-479e-bb62-3a10b7cde48c_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Value</link:label>
    <link:label id="lab_us-gaap_StockRepurchasedDuringPeriodValue_label_en-US" xlink:label="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchased During Period, Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchasedDuringPeriodValue" xlink:to="lab_us-gaap_StockRepurchasedDuringPeriodValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_241a4914-0785-4f86-991c-125be025fd8b_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:to="lab_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_95f0159e-b4a0-4990-b793-4efb445a51a7_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskBenchmarkDomain_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:to="lab_us-gaap_ConcentrationRiskBenchmarkDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_872858fb-05e0-4bb8-ae89-b1883d08a244_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_f1803bc6-f39e-4787-88e8-ba3f21f3daaa_terseLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Issuance of common stock under stock option plans, shares</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_c945a5bf-ab6f-434c-b208-56c877a70e5a_negatedLabel_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercised</link:label>
    <link:label id="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_label_en-US" xlink:label="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:to="lab_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_238c8f8a-f1ea-44fa-a65f-dcd3b1a9af45_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic income from continuing operations before taxes</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Domestic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_87ee2484-f34c-45f6-9c02-491885cb4267_terseLabel_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost of revenue</link:label>
    <link:label id="lab_us-gaap_CostOfGoodsAndServicesSold_label_en-US" xlink:label="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cost of Goods and Services Sold</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostOfGoodsAndServicesSold" xlink:to="lab_us-gaap_CostOfGoodsAndServicesSold" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_dfc87c43-4372-4a63-bcc0-3151ee4015ff_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vesting period for stock option plans</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_337845ce-d0ec-4e0a-8e53-0e59f7c5fc82_terseLabel_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible assets, useful life</link:label>
    <link:label id="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_label_en-US" xlink:label="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:to="lab_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_f936ebec-01ef-44d0-bbd8-f7ff95c349c2_terseLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Comprehensive Income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Comprehensive Income, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:to="lab_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MeasureName_terseLabel_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_MeasureName_label_en-US" xlink:label="lab_ecd_MeasureName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Measure Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MeasureName" xlink:to="lab_ecd_MeasureName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryIndName_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryIndName" xlink:to="lab_ecd_ForgoneRecoveryIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_5fcab246-6c7a-450f-88bd-f1e3a7ea31df_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Noncurrent Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Goodwill_a8e85863-6608-4ad3-9fc0-1ce630801c0f_terseLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_Goodwill_d314d03d-7989-4e77-b47a-e8393f1258bf_periodStartLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Beginning Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_f56ca9a2-cf88-4db8-96c2-f734bb6a7a82_periodEndLabel_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Ending Balance</link:label>
    <link:label id="lab_us-gaap_Goodwill_label_en-US" xlink:label="lab_us-gaap_Goodwill" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Goodwill" xlink:to="lab_us-gaap_Goodwill" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_fb00c9e2-04bb-4bee-afa9-d201552ed3c0_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additions as a result of tax positions taken in prior periods</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_terseLabel_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Underlying Securities</link:label>
    <link:label id="lab_ecd_AwardUndrlygSecuritiesAmt_label_en-US" xlink:label="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Underlying Securities Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:to="lab_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_37142efd-2eb3-4bfa-8d6c-af8fe4c096c0_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccountsReceivable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Accounts Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccountsReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_ded9cca8-1aae-4c46-b9db-a90c43bebc66_terseLabel_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Enterprise value</link:label>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_label_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Enterprise Value</link:label>
    <link:label id="lab_cgnx_BusinessCombinationEnterpriseValue_documentation_en-US" xlink:label="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Enterprise Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_BusinessCombinationEnterpriseValue" xlink:to="lab_cgnx_BusinessCombinationEnterpriseValue" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ScenarioForecastMember_acafb768-3742-4631-898b-2524d6600dd6_terseLabel_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forecast</link:label>
    <link:label id="lab_srt_ScenarioForecastMember_label_en-US" xlink:label="lab_srt_ScenarioForecastMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forecast [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ScenarioForecastMember" xlink:to="lab_srt_ScenarioForecastMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_afe260eb-f940-4c42-94e8-bee2192828fe_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax expense related to employee stock-based compensation</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_cb488b60-6b74-48ea-a576-7495d382c03f_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:to="lab_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_a0448dbc-5a63-4e33-9f21-2512cadd04a4_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current operating lease liabilities</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiabilityNoncurrent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:to="lab_us-gaap_OperatingLeaseLiabilityNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_c6e5491c-8a89-4170-8292-296b4fc81e7f_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Maturity Dates of Available-for-Sale Investments</link:label>
    <link:label id="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_label_en-US" xlink:label="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investments Classified by Contractual Maturity Date [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:to="lab_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_b74c2f60-4433-46ed-8471-d89efd32e02d_verboseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementLocationAxis_label_en-US" xlink:label="lab_us-gaap_IncomeStatementLocationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement Location [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementLocationAxis" xlink:to="lab_us-gaap_IncomeStatementLocationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_8e6dc5c4-e3c1-4045-a7d5-d70e3d301f2f_terseLabel_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contingencies</link:label>
    <link:label id="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Commitments and Contingencies, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:to="lab_us-gaap_CommitmentsAndContingenciesPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_e742d63a-85c2-4a07-bebe-dfc923518999_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of lease payments</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_b34f1362-4ea3-4283-a38d-4107a1ee45d2_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effect of dilutive stock options</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted, Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:to="lab_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignExchangeForwardMember_e25fee4c-90f0-42a9-aebe-ee623739b458_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignExchangeForwardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Exchange Forward</link:label>
    <link:label id="lab_us-gaap_ForeignExchangeForwardMember_label_en-US" xlink:label="lab_us-gaap_ForeignExchangeForwardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Exchange Forward [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignExchangeForwardMember" xlink:to="lab_us-gaap_ForeignExchangeForwardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_EuropeMember_42a0b2c4-c65b-4bb6-87fe-bb5b457e2686_terseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_ed365f78-b70c-4bd8-83f9-8670e3704a01_verboseLabel_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Europe [Member]</link:label>
    <link:label id="lab_srt_EuropeMember_label_en-US" xlink:label="lab_srt_EuropeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Europe [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EuropeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_EuropeMember" xlink:to="lab_srt_EuropeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_acc07153-e42a-4a44-817e-1d7e64cb57fe_terseLabel_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, and Investments</link:label>
    <link:label id="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and Cash Equivalents, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:to="lab_us-gaap_CashAndCashEquivalentsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_98fd3148-f70f-4487-8ae6-cfefde7d4220_terseLabel_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payables and Accruals [Abstract]</link:label>
    <link:label id="lab_us-gaap_PayablesAndAccrualsAbstract_label_en-US" xlink:label="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payables and Accruals [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract" xlink:to="lab_us-gaap_PayablesAndAccrualsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductsAndServicesDomain_6ab5f524-c63b-4498-9b8e-bb1169dca9bc_terseLabel_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:label id="lab_srt_ProductsAndServicesDomain_label_en-US" xlink:label="lab_srt_ProductsAndServicesDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductsAndServicesDomain" xlink:to="lab_srt_ProductsAndServicesDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:label id="lab_ecd_OtherPerfMeasureAmt_label_en-US" xlink:label="lab_ecd_OtherPerfMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Performance Measure, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_OtherPerfMeasureAmt" xlink:to="lab_ecd_OtherPerfMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_791b61cc-73d7-4d68-b83b-6125991abc38_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInInventories_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInInventories" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Inventories</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInInventories" xlink:to="lab_us-gaap_IncreaseDecreaseInInventories" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_a1940026-edc3-4348-b469-712ca8c60442_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net change related to available-for-sale investments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_3e1435de-0a54-4ffe-98e0-32e309c030f2_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash flows from investing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Investing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_9110e6cd-debd-4ffc-bf4b-e5be7677237b_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Credit Carryforwards, State</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:to="lab_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_16dfc7a8-51e2-465b-b2ee-07799a095fe5_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercisable, aggregate intrinsic value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:href="cgnx-20231231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_e4fc83e2-fad6-4357-a4a5-1c683d3d7504_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments and Hedging Activities Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:to="lab_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameDomain_257db5bf-b9d9-4a0f-a543-a02db199bf56_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:label id="lab_us-gaap_PlanNameDomain_label_en-US" xlink:label="lab_us-gaap_PlanNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameDomain" xlink:to="lab_us-gaap_PlanNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_SouthboroughMassachusettsMember_89b0ee6e-001e-420c-a6d6-f61d47acae74_terseLabel_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts</link:label>
    <link:label id="lab_cgnx_SouthboroughMassachusettsMember_label_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts [Member]</link:label>
    <link:label id="lab_cgnx_SouthboroughMassachusettsMember_documentation_en-US" xlink:label="lab_cgnx_SouthboroughMassachusettsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Southborough, Massachusetts</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember" xlink:href="cgnx-20231231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_SouthboroughMassachusettsMember" xlink:to="lab_cgnx_SouthboroughMassachusettsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_94a0643f-d3c5-490a-a0f6-d41831588b3f_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_fd4ea016-3eb0-4c3d-9bd6-7bb0b7b2811c_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TradingArrAxis_terseLabel_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement:</link:label>
    <link:label id="lab_ecd_TradingArrAxis_label_en-US" xlink:label="lab_ecd_TradingArrAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TradingArrAxis" xlink:to="lab_ecd_TradingArrAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UseOfEstimates_24ace9a0-da16-4e45-b8ff-f2bf69e61e52_terseLabel_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Use of Estimates in the Preparation of Financial Statements</link:label>
    <link:label id="lab_us-gaap_UseOfEstimates_label_en-US" xlink:label="lab_us-gaap_UseOfEstimates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Use of Estimates, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UseOfEstimates" xlink:to="lab_us-gaap_UseOfEstimates" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFileNumber_790bb109-8348-49e9-b795-a4a11a1165df_terseLabel_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity File Number</link:label>
    <link:label id="lab_dei_EntityFileNumber_label_en-US" xlink:label="lab_dei_EntityFileNumber" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity File Number</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFileNumber" xlink:to="lab_dei_EntityFileNumber" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_e84cbf20-88df-4c17-a7cc-1b9186c92b92_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Thereafter</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, after Year Five</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_c355364f-19c1-4600-a93e-33de2db0c69c_terseLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Warranty obligations</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Warranty Accrual, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:to="lab_us-gaap_ProductWarrantyAccrualClassifiedCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_f7a042e0-82ab-4454-a5fc-9ea1d3f54583_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Allowance for credit loss</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_12006b3a-ba9d-4750-8c87-51d1f874dcdf_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reductions as a result of tax positions taken in prior periods</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorFirmId_5afbc2c6-040a-4b7c-a773-20cffd163b8c_terseLabel_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:label id="lab_dei_AuditorFirmId_label_en-US" xlink:label="lab_dei_AuditorFirmId" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Firm ID</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorFirmId"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorFirmId" xlink:to="lab_dei_AuditorFirmId" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_41923db7-86f7-40fa-95b2-8904f6547fa8_terseLabel_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization of intangible assets</link:label>
    <link:label id="lab_us-gaap_AmortizationOfIntangibleAssets_label_en-US" xlink:label="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization of Intangible Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AmortizationOfIntangibleAssets" xlink:to="lab_us-gaap_AmortizationOfIntangibleAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityShellCompany_2af24a0a-af16-4090-a0eb-26e2e4db274d_terseLabel_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Shell Company</link:label>
    <link:label id="lab_dei_EntityShellCompany_label_en-US" xlink:label="lab_dei_EntityShellCompany" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Shell Company</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityShellCompany" xlink:to="lab_dei_EntityShellCompany" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LongTermInvestments_23627004-58d5-4e9c-96ab-7646f157b741_terseLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current investments, amortized cost of $250,790 and $476,148 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_9403e2ae-3236-484a-8320-f63d4a827e23_totalLabel_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current investments</link:label>
    <link:label id="lab_us-gaap_LongTermInvestments_label_en-US" xlink:label="lab_us-gaap_LongTermInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Long-Term Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LongTermInvestments" xlink:to="lab_us-gaap_LongTermInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_23993168-ce5d-4bb8-928c-e53e8916e826_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:label id="lab_us-gaap_BusinessAcquisitionAcquireeDomain_label_en-US" xlink:label="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisition, Acquiree [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:to="lab_us-gaap_BusinessAcquisitionAcquireeDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_SGD_5c1b743a-95f8-4239-bc15-9e0c81bf57ec_terseLabel_en-US" xlink:label="lab_currency_SGD" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Singapore Dollar [Member]</link:label>
    <link:label id="lab_currency_SGD_label_en-US" xlink:label="lab_currency_SGD" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Singapore, Dollars</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_SGD"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_SGD" xlink:to="lab_currency_SGD" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_daa0554e-ade9-497f-b471-0959e0dd68fb_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reduction of accumulated depreciation due to disposals</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_RestatementDeterminationDate_terseLabel_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:label id="lab_ecd_RestatementDeterminationDate_label_en-US" xlink:label="lab_ecd_RestatementDeterminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restatement Determination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDeterminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_RestatementDeterminationDate" xlink:to="lab_ecd_RestatementDeterminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_0d9c6ae2-923d-4e90-87d9-39601a96d854_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued income taxes</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Income Taxes Payable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:to="lab_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_f23a4a81-ebff-4915-aee6-18ac7971564e_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Additions as a result of tax positions taken in the current period</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted</link:label>
    <link:label id="lab_ecd_Rule10b51ArrAdoptedFlag_label_en-US" xlink:label="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Rule 10b5-1 Arrangement Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:to="lab_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_d6c87a53-37ed-4b18-be69-fc00d3fdf7c3_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring and Related Costs [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:to="lab_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_826cadcf-2ddf-4733-b88d-7ea644844d89_periodStartLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents at beginning of year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_dffafc47-62a2-4fcf-88a6-986fa8f0d99b_periodEndLabel_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash and cash equivalents at end of year</link:label>
    <link:label id="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_label_en-US" xlink:label="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:to="lab_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_7d0e08b9-ba10-4139-8d8f-db041bc92601_negatedTerseLabel_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Recognition of revenue deferred in prior period</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_label_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Current And Prior Period Revenue Recognized</link:label>
    <link:label id="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_documentation_en-US" xlink:label="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract with Customer, Liability, Current And Prior Period Revenue Recognized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:href="cgnx-20231231.xsd#cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:to="lab_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_a1a9e69d-69f8-4b29-979f-0f271b20659b_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Greater than 12 Months</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_6ffaf696-3029-4558-95ae-163cd8c54d1d_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares issued (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_cdd97b63-9db9-403c-b6dd-b6869335ef02_periodStartLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance, shares (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_de2837e8-902f-45c4-851f-cdccb3c6458e_periodEndLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance, shares (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesIssued_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesIssued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares, Issued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesIssued" xlink:to="lab_us-gaap_CommonStockSharesIssued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_936de96b-f4bf-4c02-b0a9-e1551c46ff27_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested (in shares)</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_5dd3fa68-daa7-4d70-86c1-35248006d0e6_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_af6553e3-4120-4d37-bf5b-aef195e56c83_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maturities and sales of investments</link:label>
    <link:label id="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_label_en-US" xlink:label="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds from Sale, Maturity and Collection of Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:to="lab_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_bb6f54d1-ce8c-4f5a-84fd-fece44206691_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrealized Losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_daa32c9f-a331-43ff-910e-1c9e08fa2487_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company match percent</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined Contribution Plan, Employer Matching Contribution, Percent of Match</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:to="lab_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_d8119fb5-2fd5-4d06-b973-d01af69ba6ed_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable, allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_cd00354d-0ad2-4a87-b637-839105e20d84_periodStartLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance&#160;at Beginning of Period</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_351ba79a-d8ef-4878-958e-9badfe84d488_periodEndLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance&#160;at End of Period</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesBalance_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesBalance" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesBalance" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_56c2d09d-7296-4d36-ae48-f63b702d1a98_terseLabel_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury notes</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury Bills Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_TreasuryBillsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury bills fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure" xlink:href="cgnx-20231231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_TreasuryBillsFairValueDisclosure" xlink:to="lab_cgnx_TreasuryBillsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_9e7171ce-e086-4db7-b427-9731b126877a_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Recognition period for unrecognized compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_24e5450e-2905-4290-b703-4ba3314b7fa7_totalLabel_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total comprehensive income</link:label>
    <link:label id="lab_us-gaap_ComprehensiveIncomeNetOfTax_label_en-US" xlink:label="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Comprehensive Income (Loss), Net of Tax, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ComprehensiveIncomeNetOfTax" xlink:to="lab_us-gaap_ComprehensiveIncomeNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_af1f0128-5198-4587-aa26-13c0fb648608_terseLabel_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_label_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:label id="lab_cgnx_ContractLiabilityForeignExchangeRateChanges_documentation_en-US" xlink:label="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Contract Liability Foreign Exchange Rate Changes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:href="cgnx-20231231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:to="lab_cgnx_ContractLiabilityForeignExchangeRateChanges" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DomesticCountryMember_cf6b4325-19a2-4e85-84bd-81e8b606be70_terseLabel_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:label id="lab_us-gaap_DomesticCountryMember_label_en-US" xlink:label="lab_us-gaap_DomesticCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Domestic Tax Authority [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DomesticCountryMember" xlink:to="lab_us-gaap_DomesticCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressAddressLine1_1219a12b-580b-4379-b487-cc15194af506_terseLabel_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:label id="lab_dei_EntityAddressAddressLine1_label_en-US" xlink:label="lab_dei_EntityAddressAddressLine1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, Address Line One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressAddressLine1" xlink:to="lab_dei_EntityAddressAddressLine1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventTable_bcce0aaa-4025-4b3f-99dc-fe1be7a44f83_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventTable_label_en-US" xlink:label="lab_us-gaap_SubsequentEventTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventTable" xlink:to="lab_us-gaap_SubsequentEventTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_2bbf1f81-a6b2-4bdc-881c-e193950c49e7_terseLabel_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase order outstanding</link:label>
    <link:label id="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_label_en-US" xlink:label="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchase Commitment, Remaining Minimum Amount Committed</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:to="lab_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_79886a44-f91c-4ec1-8956-2e3365bae75c_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventMember_6f3e0ecf-1711-43c1-8339-7cf1d44c308e_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventMember_label_en-US" xlink:label="lab_us-gaap_SubsequentEventMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Event [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventMember" xlink:to="lab_us-gaap_SubsequentEventMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_ac0d1ef4-068d-4492-9804-6a17aea3d284_terseLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest and penalties, gross</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:to="lab_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_6cbc521c-7bd2-4e32-ac04-1be7f8cfe194_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortized Intangible Assets</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_f8e0be6d-74ae-4f7b-8c69-98c91d5655df_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:label id="lab_us-gaap_IncomeStatementAbstract_label_en-US" xlink:label="lab_us-gaap_IncomeStatementAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Statement [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeStatementAbstract" xlink:to="lab_us-gaap_IncomeStatementAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_eaf8422a-aaaf-4cd9-96b3-0f5d96ea6d29_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unbilled revenue</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Contract with Customer, Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:to="lab_us-gaap_IncreaseDecreaseInContractWithCustomerAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_terseLabel_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Adopted</link:label>
    <link:label id="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag_label_en-US" xlink:label="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Policies and Procedures Adopted [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:to="lab_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_3b9ccac9-fb6f-47ca-b59e-d8ac84ac6229_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring Reserve by Type of Cost</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Restructuring Reserve by Type of Cost [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:to="lab_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLiabilities_87f3fef5-62bc-4a68-97d7-e96bc01fcda6_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_2ec1d622-adec-4dca-980d-8bfd7685f57e_totalLabel_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net amount of liabilities presented</link:label>
    <link:label id="lab_us-gaap_DerivativeLiabilities_label_en-US" xlink:label="lab_us-gaap_DerivativeLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLiabilities" xlink:to="lab_us-gaap_DerivativeLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_97e9e35e-c610-4e0c-963f-44718330645f_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardLineItems_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems" xlink:to="lab_us-gaap_TaxCreditCarryforwardLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_a4da8b59-2696-452b-8d90-4653540c7738_terseLabel_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Networks and Customer Relationships</link:label>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_label_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Networks and Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember_documentation_en-US" xlink:label="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Networks and Customer Relationships</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:href="cgnx-20231231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:to="lab_cgnx_DistributionNetworksAndCustomerRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_49a3a5c4-fda9-42f8-97ea-8051b12ce7bc_terseLabel_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:label id="lab_us-gaap_ClassOfStockLineItems_label_en-US" xlink:label="lab_us-gaap_ClassOfStockLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Class of Stock [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ClassOfStockLineItems" xlink:to="lab_us-gaap_ClassOfStockLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_0e6cb41c-8622-4d71-a86e-8aa838af4411_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Diluted earnings per weighted-average common and common-equivalent share (1):</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareDilutedAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Diluted [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract" xlink:to="lab_us-gaap_EarningsPerShareDilutedAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryNet_39003704-434c-4f82-b25e-76c27f072d29_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_a5172b53-410a-45ff-9ab2-6fcc4957d0c5_totalLabel_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_InventoryNet_label_en-US" xlink:label="lab_us-gaap_InventoryNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryNet" xlink:to="lab_us-gaap_InventoryNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LandMember_9bd3b984-c193-4814-94bf-1fc359828965_terseLabel_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Land [Member]</link:label>
    <link:label id="lab_us-gaap_LandMember_label_en-US" xlink:label="lab_us-gaap_LandMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Land [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LandMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LandMember" xlink:to="lab_us-gaap_LandMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_3249b133-b641-417a-bf06-740f480b3c88_terseLabel_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:label id="lab_us-gaap_FinancialInstrumentAxis_label_en-US" xlink:label="lab_us-gaap_FinancialInstrumentAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Financial Instrument [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FinancialInstrumentAxis" xlink:to="lab_us-gaap_FinancialInstrumentAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InterestReceivable_f3687d17-fb58-4a15-a656-2168ebf862bb_terseLabel_en-US" xlink:label="lab_us-gaap_InterestReceivable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest Receivable</link:label>
    <link:label id="lab_us-gaap_InterestReceivable_label_en-US" xlink:label="lab_us-gaap_InterestReceivable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Interest Receivable</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestReceivable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InterestReceivable" xlink:to="lab_us-gaap_InterestReceivable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_6f18ef36-314b-400d-83a6-083c642a1cef_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_28ceab7c-6441-4c18-ab5a-c13e28c8b25b_terseLabel_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising Costs</link:label>
    <link:label id="lab_us-gaap_AdvertisingCostsPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Advertising Cost [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:to="lab_us-gaap_AdvertisingCostsPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnAmt" xlink:to="lab_ecd_TotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_0b0b777f-2b3b-45d1-a9b4-579092676724_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of common stock</link:label>
    <link:label id="lab_us-gaap_PaymentsForRepurchaseOfCommonStock_label_en-US" xlink:label="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments for Repurchase of Common Stock</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:to="lab_us-gaap_PaymentsForRepurchaseOfCommonStock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_f3ef7626-7382-4081-9822-362cd30e7592_terseLabel_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:label id="lab_dei_EntityCommonStockSharesOutstanding_label_en-US" xlink:label="lab_dei_EntityCommonStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Common Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCommonStockSharesOutstanding" xlink:to="lab_dei_EntityCommonStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment To PEO Compensation, Footnote</link:label>
    <link:label id="lab_ecd_AdjToPeoCompFnTextBlock_label_en-US" xlink:label="lab_ecd_AdjToPeoCompFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment To PEO Compensation, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToPeoCompFnTextBlock" xlink:to="lab_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_c52b0713-c631-4fd9-bf2d-0d0b81b98aea_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Foreign Income Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:to="lab_us-gaap_DeferredForeignIncomeTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_JPY_bc353d68-4297-4a35-973b-0059ceecd928_terseLabel_en-US" xlink:label="lab_currency_JPY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Japanese Yen [Member]</link:label>
    <link:label id="lab_currency_JPY_label_en-US" xlink:label="lab_currency_JPY" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Japan, Yen</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_JPY"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_JPY" xlink:to="lab_currency_JPY" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_73a0e2f9-4a31-418a-ba6a-62e9bf01ba95_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_InventoryDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_InventoryDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryDisclosureAbstract" xlink:to="lab_us-gaap_InventoryDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_6bfeb8d9-0abf-43ec-9e53-f1ec55dba9e1_verboseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_01f621c6-22e9-427f-9f4f-7d8cec5385c8_terseLabel_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_label_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:label id="lab_cgnx_CustomerContractsAndRelationshipsMember_documentation_en-US" xlink:label="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer Contracts And Relationships [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CustomerContractsAndRelationshipsMember" xlink:to="lab_cgnx_CustomerContractsAndRelationshipsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_4ceb6791-989a-4395-91b8-e667299f8969_terseLabel_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maturities of forward of contracts</link:label>
    <link:label id="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_label_en-US" xlink:label="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum Remaining Maturity of Foreign Currency Derivatives</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:to="lab_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_1c1fe472-b4b2-4305-9d4b-f328aed5c255_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:label id="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis_label_en-US" xlink:label="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Hierarchy and NAV [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:to="lab_us-gaap_FairValueByFairValueHierarchyLevelAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Recognition and Deferred Revenue [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRecognitionAndDeferredRevenueAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:to="lab_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_e007c8be-69da-404f-b59d-81bc78f24321_terseLabel_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained earnings</link:label>
    <link:label id="lab_us-gaap_RetainedEarningsAccumulatedDeficit_label_en-US" xlink:label="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Retained Earnings (Accumulated Deficit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:to="lab_us-gaap_RetainedEarningsAccumulatedDeficit" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_016242d1-fa48-4e90-86fe-5e4a3cfb5cab_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current assets:</link:label>
    <link:label id="lab_us-gaap_AssetsCurrentAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsCurrentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets, Current [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsCurrentAbstract" xlink:to="lab_us-gaap_AssetsCurrentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeasesAbstract_acd35279-eb16-4825-a16b-0b9f67939fc4_terseLabel_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">New Accounting Pronouncements or Change in Accounting Principle [Table]</link:label>
    <link:label id="lab_us-gaap_LeasesAbstract_label_en-US" xlink:label="lab_us-gaap_LeasesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leases [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeasesAbstract" xlink:to="lab_us-gaap_LeasesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressStateOrProvince_52502b73-5a3e-4ac6-9dea-cd7b2619d6be_terseLabel_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:label id="lab_dei_EntityAddressStateOrProvince_label_en-US" xlink:label="lab_dei_EntityAddressStateOrProvince" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, State or Province</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressStateOrProvince" xlink:to="lab_dei_EntityAddressStateOrProvince" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Total Shareholder Return [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_f6eaa23e-f1bf-4f27-b224-f46f734e1af3_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Revenues from External Customers and Long-Lived Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:to="lab_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_90f1d853-6a94-421f-9cef-70988a747fe7_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash flows from operating activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_VariableLeasePayment_e47d28a0-0503-41ab-88ca-4470130c17fe_terseLabel_en-US" xlink:label="lab_us-gaap_VariableLeasePayment" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Lease, Payment</link:label>
    <link:label id="lab_us-gaap_VariableLeasePayment_label_en-US" xlink:label="lab_us-gaap_VariableLeasePayment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Variable Lease, Payment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeasePayment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableLeasePayment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_VariableLeasePayment" xlink:to="lab_us-gaap_VariableLeasePayment" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_2fb2b9c4-b818-4777-bce6-c9a2b3e9d5ba_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGross_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGross" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_51f09d72-04b9-4e23-87e7-966c001676bb_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Income per weighted-average common and common-equivalent share:</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareBasicAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share, Basic [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract" xlink:to="lab_us-gaap_EarningsPerShareBasicAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_d3e509a6-42b7-422a-9101-ad4f96f01eb7_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Capitalization of R&amp;D expenses</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Capitalization Of Research And Development Expenses</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Capitalization Of Research And Development Expenses</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:to="lab_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillOtherIncreaseDecrease_df199fdf-48f2-403e-b410-2d9be5f053e4_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Other Increase (Decrease)</link:label>
    <link:label id="lab_us-gaap_GoodwillOtherIncreaseDecrease_label_en-US" xlink:label="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill, Other Increase (Decrease)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillOtherIncreaseDecrease" xlink:to="lab_us-gaap_GoodwillOtherIncreaseDecrease" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_604ef0d6-532b-426c-85a0-a39c5866a48d_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_ee9fba6a-ac7e-4347-837f-f351b0d40b0d_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Fair Value, Gross Asset</link:label>
    <link:label id="lab_us-gaap_DerivativeFairValueOfDerivativeAsset_label_en-US" xlink:label="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Asset, Subject to Master Netting Arrangement, before Offset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:to="lab_us-gaap_DerivativeFairValueOfDerivativeAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_113b7ff7-5ae5-4867-b68a-42857dfacac3_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum contribution by company expressed as percentage of employee pre-tax salary</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:to="lab_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_7cceb6b1-79e9-41af-9ac3-b7a41a45ad74_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net change related to foreign currency translation adjustments</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_03f4d8fc-bb8f-438b-a911-efdfe4501f7f_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Other Adjustments, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_ad156fb8-3fc8-4f83-9e3d-cb6588cb0c0d_verboseLabel_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Treasury Bills [Member]</link:label>
    <link:label id="lab_us-gaap_USTreasuryBillSecuritiesMember_label_en-US" xlink:label="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">US Treasury Bill Securities [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_USTreasuryBillSecuritiesMember" xlink:to="lab_us-gaap_USTreasuryBillSecuritiesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_9c0182bf-bcbd-4be8-b109-f8858998abb9_terseLabel_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Domain]</link:label>
    <link:label id="lab_srt_NameOfMajorCustomerDomain_label_en-US" xlink:label="lab_srt_NameOfMajorCustomerDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_NameOfMajorCustomerDomain" xlink:to="lab_srt_NameOfMajorCustomerDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_b4d14b8b-4b87-4be5-9861-3af08a2ba16f_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Inventory, Current [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfInventoryCurrentTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_744e570e-c7e5-4189-a9f3-7c47bf5d6faf_terseLabel_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:label id="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_label_en-US" xlink:label="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenues from External Customers and Long-Lived Assets [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:to="lab_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_113afcd8-e11e-43a0-8148-775ff7971f5e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LossFromCatastrophes_f91687ba-c7ce-416b-bc23-c56f6fa1e437_terseLabel_en-US" xlink:label="lab_us-gaap_LossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss from Catastrophes</link:label>
    <link:label id="lab_us-gaap_LossFromCatastrophes_label_en-US" xlink:label="lab_us-gaap_LossFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss from Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LossFromCatastrophes" xlink:to="lab_us-gaap_LossFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_c6dc1819-35ec-4891-b1ee-919c27460ae9_totalLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax expense</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateContinuingOperations" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_37effab9-f1fb-4b20-b2bf-3ddec7261e7f_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, liability</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseLiability_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseLiability" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseLiability" xlink:to="lab_us-gaap_OperatingLeaseLiability" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_9ce360ee-e86d-45ee-bd57-c5375e5701a7_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_label_en-US" xlink:label="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liability for Uncertainty in Income Taxes, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:to="lab_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_terseLabel_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Vs Peer Group</link:label>
    <link:label id="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock_label_en-US" xlink:label="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Shareholder Return Vs Peer Group [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:to="lab_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_83987327-96bc-4f95-993f-e0acf4239477_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_cef4523f-56f5-43e0-a3f5-d95416ac5863_verboseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories acquired</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_394eb488-181e-404c-a52d-2c9ae5dbeae7_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventories</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_54aebfa0-31b3-4396-9772-45f589eece01_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Loss [Member]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">AOCI Attributable to Parent [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_f7e62a0b-fb6d-4c2a-9555-3da9f0a78b23_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Prepaid Expense and Other Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:to="lab_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AggtErrCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:label id="lab_ecd_AggtErrCompAmt_label_en-US" xlink:label="lab_ecd_AggtErrCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Aggregate Erroneous Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AggtErrCompAmt" xlink:to="lab_ecd_AggtErrCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_a9a4f095-3fd8-4635-adad-f96cb2bb40c7_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Charged&#160;to Costs and Expenses</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_8349e87e-464e-4ff5-b634-a82605fbb5fa_terseLabel_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions to employee savings plan</link:label>
    <link:label id="lab_us-gaap_DefinedContributionPlanCostRecognized_label_en-US" xlink:label="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Defined Contribution Plan, Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DefinedContributionPlanCostRecognized" xlink:to="lab_us-gaap_DefinedContributionPlanCostRecognized" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_terseLabel_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Executive Categories</link:label>
    <link:label id="lab_ecd_AllExecutiveCategoriesMember_label_en-US" xlink:label="lab_ecd_AllExecutiveCategoriesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Executive Categories [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="lab_ecd_AllExecutiveCategoriesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_4f54c3de-d04d-4895-977d-2155937c3988_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Incentive compensation</link:label>
    <link:label id="lab_us-gaap_AccruedBonusesCurrent_label_en-US" xlink:label="lab_us-gaap_AccruedBonusesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Bonuses, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedBonusesCurrent" xlink:to="lab_us-gaap_AccruedBonusesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_cf59a8f8-672e-4bc9-8952-bb59a3451969_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss) [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PlanNameAxis_78d8c916-9835-4235-9cf5-cc8c3322a31a_terseLabel_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:label id="lab_us-gaap_PlanNameAxis_label_en-US" xlink:label="lab_us-gaap_PlanNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Plan Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PlanNameAxis" xlink:to="lab_us-gaap_PlanNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_b608b0cb-c682-46ba-b80c-aaf89a708f16_terseLabel_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Expenses</link:label>
    <link:label id="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts Payable and Accrued Liabilities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:to="lab_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_d7c5433f-8e6c-43db-97f5-33cb575cf480_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax benefit recognized related to stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expense, Tax Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_667c922a-3541-4192-9a98-1ae8e604f303_terseLabel_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of reportable segments</link:label>
    <link:label id="lab_us-gaap_NumberOfReportableSegments_label_en-US" xlink:label="lab_us-gaap_NumberOfReportableSegments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Number of Reportable Segments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NumberOfReportableSegments" xlink:to="lab_us-gaap_NumberOfReportableSegments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_61baaa6c-14c1-4d7f-b2e6-9af31654cdf1_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareAbstract_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareAbstract" xlink:to="lab_us-gaap_EarningsPerShareAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_c3cd0f07-706b-43c5-bbb4-576061ec8eb5_terseLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale investments:</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:to="lab_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember_edebdd97-a60f-42b8-b677-fabeaca77371_terseLabel_en-US" xlink:label="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Damage from Fire, Explosion or Other Hazard</link:label>
    <link:label id="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember_label_en-US" xlink:label="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Damage from Fire, Explosion or Other Hazard [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:to="lab_us-gaap_DamageFromFireExplosionOrOtherHazardMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_e8e4c842-3d3f-4ad0-a369-5e9a0a674b0e_terseLabel_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_label_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:label id="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_documentation_en-US" xlink:label="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Estimated Forfeiture Rate for Unvested Options for CEO</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:to="lab_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_b550ddaa-abfe-4ecd-acb0-8c5a5b7b9cfe_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred:</link:label>
    <link:label id="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_label_en-US" xlink:label="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:to="lab_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_97cec49f-d4cd-42ff-9c29-2aafea9ac1f2_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Discrete tax benefit related to GILTI adjustments</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, GILTI, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_f50ed719-3963-4862-b345-ae95ec09d0f7_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerAbstract_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AllIndividualsMember_terseLabel_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Individuals</link:label>
    <link:label id="lab_ecd_AllIndividualsMember_label_en-US" xlink:label="lab_ecd_AllIndividualsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">All Individuals [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="lab_ecd_AllIndividualsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_4a940e54-8238-4594-9b6d-da007d9d3b6b_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Bonuses, commissions, and other compensation</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_2ebc7f8f-cb5c-4a7e-bb49-b90fa7a36534_terseLabel_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other income (expense)</link:label>
    <link:label id="lab_us-gaap_OtherNonoperatingIncomeExpense_label_en-US" xlink:label="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Nonoperating Income (Expense)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherNonoperatingIncomeExpense" xlink:to="lab_us-gaap_OtherNonoperatingIncomeExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityFilerCategory_7aa60af6-62df-4452-b778-3b2425919996_terseLabel_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Filer Category</link:label>
    <link:label id="lab_dei_EntityFilerCategory_label_en-US" xlink:label="lab_dei_EntityFilerCategory" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Filer Category</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityFilerCategory" xlink:to="lab_dei_EntityFilerCategory" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:label id="lab_ecd_NonPeoNeoAvgTotalCompAmt_label_en-US" xlink:label="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO Average Total Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:to="lab_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementTable_1064661e-bfc8-4466-866d-e8c6ad7372ab_terseLabel_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Table]</link:label>
    <link:label id="lab_us-gaap_StatementTable_label_en-US" xlink:label="lab_us-gaap_StatementTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementTable" xlink:to="lab_us-gaap_StatementTable" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_28fd1c9b-28b4-4284-92a4-3257ed45cb16_terseLabel_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:label id="lab_dei_CurrentFiscalYearEndDate_label_en-US" xlink:label="lab_dei_CurrentFiscalYearEndDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Fiscal Year End Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CurrentFiscalYearEndDate" xlink:to="lab_dei_CurrentFiscalYearEndDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_e4ec5c51-1cf4-44f6-b258-a57d1e9310d8_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase of authorized common stock</link:label>
    <link:label id="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Authorized Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:to="lab_us-gaap_StockRepurchaseProgramAuthorizedAmount1" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StandardProductandServicesMember_b65b871a-8522-40d8-bd08-60dc3d1a42a9_terseLabel_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard products and services</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_label_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:label id="lab_cgnx_StandardProductandServicesMember_documentation_en-US" xlink:label="lab_cgnx_StandardProductandServicesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard Product and Services [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember" xlink:href="cgnx-20231231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StandardProductandServicesMember" xlink:to="lab_cgnx_StandardProductandServicesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_2ea73571-5981-4d26-8731-5569ca1ae7e2_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_a5cd7b15-667d-474f-9422-58d4fe17e61b_periodStartLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_af8cda90-1aca-4b88-9252-9ded05dfc24d_periodEndLabel_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance of reserve for income taxes</link:label>
    <link:label id="lab_us-gaap_UnrecognizedTaxBenefits_label_en-US" xlink:label="lab_us-gaap_UnrecognizedTaxBenefits" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UnrecognizedTaxBenefits" xlink:to="lab_us-gaap_UnrecognizedTaxBenefits" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_dd2c4be8-32bb-4c16-a01e-f7d82ef15e29_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeoName_terseLabel_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Name</link:label>
    <link:label id="lab_ecd_PeoName_label_en-US" xlink:label="lab_ecd_PeoName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">PEO Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeoName" xlink:to="lab_ecd_PeoName" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_6da27671-9ebd-44f9-8bf2-37ead2a82a3d_terseLabel_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, liability, discounted present value</link:label>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_label_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Discounted Present Value</link:label>
    <link:label id="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_documentation_en-US" xlink:label="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Liability, Discounted Present Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:to="lab_cgnx_OperatingLeaseLiabilityDiscountedPresentValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_cec3f3a9-b2d8-43c2-80e5-78eb54f0016a_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Authorized shares (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesAuthorized" xlink:to="lab_us-gaap_PreferredStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_2399db23-b19a-4702-afcc-15ebe0022aa9_terseLabel_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Depreciation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_label_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncurrent Deferred Tax Assets Deprecation</link:label>
    <link:label id="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation_documentation_en-US" xlink:label="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Noncurrent deferred tax assets deprecation.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:href="cgnx-20231231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:to="lab_cgnx_NoncurrentDeferredTaxAssetsDeprecation" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BuildingMember_0deff6c7-330d-4a43-88f9-c47b1de4d2ad_terseLabel_en-US" xlink:label="lab_us-gaap_BuildingMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Building [Member]</link:label>
    <link:label id="lab_us-gaap_BuildingMember_label_en-US" xlink:label="lab_us-gaap_BuildingMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Building [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BuildingMember" xlink:to="lab_us-gaap_BuildingMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_545d8779-a3bf-419a-b7bd-3d3485ef8b6a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in the Carrying Value of Goodwill</link:label>
    <link:label id="lab_us-gaap_ScheduleOfGoodwillTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Goodwill [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfGoodwillTextBlock" xlink:to="lab_us-gaap_ScheduleOfGoodwillTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_5f98ade4-1e0c-4dd7-ade0-de3a5b49e22e_terseLabel_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred stock, shares outstanding (in shares)</link:label>
    <link:label id="lab_us-gaap_PreferredStockSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_PreferredStockSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Preferred Stock, Shares Outstanding</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PreferredStockSharesOutstanding" xlink:to="lab_us-gaap_PreferredStockSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_fe75945a-2936-41e2-b0f0-3e00c6e6a43f_terseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_label_en-US" xlink:label="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:to="lab_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_0d33bda7-9b6a-48d0-aa53-2c9225f4f35b_negatedLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deductions</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesDeductions_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesDeductions" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_29b2ab79-1e09-4e27-a4c2-d177855e51a9_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">3-4 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale securities, debt maturities after third year but before fourth year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_3bab6497-af7f-4ea3-9de9-b2e76ec2f761_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current investments, amortized cost of $132,799 and $223,545 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_ff1a1bb5-2edc-409c-8b67-7ffed47c44ca_verboseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt securities, available-for-sale, current</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_146756a6-83fd-47cd-b965-5d1d2fd21e47_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_OtherAccruedLiabilitiesCurrent_label_en-US" xlink:label="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Accrued Liabilities, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:to="lab_us-gaap_OtherAccruedLiabilitiesCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CatastropheTextBlock_ccc14a69-9333-4f08-b6bb-75e7fca824de_terseLabel_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss from Fire</link:label>
    <link:label id="lab_cgnx_CatastropheTextBlock_label_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophe [Text Block]</link:label>
    <link:label id="lab_cgnx_CatastropheTextBlock_documentation_en-US" xlink:label="lab_cgnx_CatastropheTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Catastrophe</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock" xlink:href="cgnx-20231231.xsd#cgnx_CatastropheTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CatastropheTextBlock" xlink:to="lab_cgnx_CatastropheTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_0fcb4dc9-6872-4507-aafb-818f00e63cd9_terseLabel_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:label id="lab_srt_ValuationAndQualifyingAccountsDisclosureTable_label_en-US" xlink:label="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:to="lab_srt_ValuationAndQualifyingAccountsDisclosureTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_686a3e3b-2087-4d4e-b454-98b1a96d0e62_negatedLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Other Operating Assets and Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:to="lab_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_74ab7643-0bcd-4bf7-8007-08ff7c003c48_terseLabel_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Limitation on deduction for executive compensation</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_label_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</link:label>
    <link:label id="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_documentation_en-US" xlink:label="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:to="lab_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_0b44d519-e7f6-448b-9535-bac5fcf3fbf7_terseLabel_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_label_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum Decrease In Income Tax Expense Due To Release In Reserves</link:label>
    <link:label id="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_documentation_en-US" xlink:label="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Maximum decrease in income tax expense due to release in reserves.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:href="cgnx-20231231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:to="lab_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_EUR_33ced6e7-d324-4c4d-a4db-6ad53b1d775a_terseLabel_en-US" xlink:label="lab_currency_EUR" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Euro [Member]</link:label>
    <link:label id="lab_currency_EUR_label_en-US" xlink:label="lab_currency_EUR" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Euro Member Countries, Euro</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_EUR"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_EUR" xlink:to="lab_currency_EUR" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_cbce825b-1f36-4dfd-a56a-bbc8f15a92ec_periodStartLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_7cc6b405-78a4-45de-87b3-a347c9da9114_periodEndLabel_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending Balance</link:label>
    <link:label id="lab_us-gaap_ProductWarrantyAccrual_label_en-US" xlink:label="lab_us-gaap_ProductWarrantyAccrual" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard and Extended Product Warranty Accrual</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductWarrantyAccrual" xlink:to="lab_us-gaap_ProductWarrantyAccrual" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_e029f905-85ee-4345-b64b-6062c3111223_terseLabel_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:label id="lab_us-gaap_StatementOfFinancialPositionAbstract_label_en-US" xlink:label="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement of Financial Position [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract" xlink:to="lab_us-gaap_StatementOfFinancialPositionAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_3e3adecc-dbbf-41f3-927e-22613a125526_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current investment, allowance for credit loss</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_64128571-da00-4a2c-a9cc-82b5c9a0f866_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred income tax assets</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockholdersEquity_fe0898fa-f799-405b-b03c-b6cf46ef4c0e_totalLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total shareholders&#8217; equity</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_5351b8cc-69c0-41ff-bfee-992c5157c26a_periodStartLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning Balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_43863128-9513-4390-9ccf-e30bc70c27d8_periodEndLabel_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Balance</link:label>
    <link:label id="lab_us-gaap_StockholdersEquity_label_en-US" xlink:label="lab_us-gaap_StockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity, Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockholdersEquity" xlink:to="lab_us-gaap_StockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_afc4c516-848a-44d3-92e6-d9359261e71e_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Finite-Lived Intangible Assets [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:to="lab_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_339a5d72-2ac8-4f0e-965f-890039124e4a_terseLabel_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</link:label>
    <link:label id="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_label_en-US" xlink:label="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:to="lab_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestrictedStockMember_4500122a-9168-4682-88fb-66d755eb0030_terseLabel_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:label id="lab_us-gaap_RestrictedStockMember_label_en-US" xlink:label="lab_us-gaap_RestrictedStockMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restricted Stock [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestrictedStockMember" xlink:to="lab_us-gaap_RestrictedStockMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_6da984ee-b43f-4edc-9c56-3a276fbaa3f2_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets, Major Class Name [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_4300efec-57d5-4dee-98e9-2eddc550f8d1_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfStockByClassTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfStockByClassTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Stock by Class [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable" xlink:to="lab_us-gaap_ScheduleOfStockByClassTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_cccc573c-5b2b-40d3-997c-5f0d5ec08776_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByTypeAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Type [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis" xlink:to="lab_us-gaap_ConcentrationRiskByTypeAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_fdc22174-d0da-423b-a55a-abde59ae40f4_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Expected term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_8b86c40a-f25a-41df-84fd-3e0638855f16_terseLabel_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:label id="lab_us-gaap_SubsequentEventsAbstract_label_en-US" xlink:label="lab_us-gaap_SubsequentEventsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Subsequent Events [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SubsequentEventsAbstract" xlink:to="lab_us-gaap_SubsequentEventsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_9e26cf24-fdd6-4b03-bc0a-474ea3a3eb8b_totalLabel_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income before income tax expense</link:label>
    <link:label id="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_label_en-US" xlink:label="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:to="lab_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NondesignatedMember_4eae24d1-9f7b-4ec3-be33-5c15eaad744b_terseLabel_en-US" xlink:label="lab_us-gaap_NondesignatedMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:label id="lab_us-gaap_NondesignatedMember_label_en-US" xlink:label="lab_us-gaap_NondesignatedMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Not Designated as Hedging Instrument [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NondesignatedMember" xlink:to="lab_us-gaap_NondesignatedMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_5727b464-494b-4928-8080-1db9af48b52c_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_baf97eea-99aa-47e5-8895-0fca5b7842d1_terseLabel_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:label id="lab_us-gaap_HedgingDesignationDomain_label_en-US" xlink:label="lab_us-gaap_HedgingDesignationDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Hedging Designation [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_HedgingDesignationDomain" xlink:to="lab_us-gaap_HedgingDesignationDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_fd62517c-3344-42b2-ad53-a4ecb0aca167_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Significant&#160;Other Observable Inputs (Level&#160;2)</link:label>
    <link:label id="lab_us-gaap_FairValueInputsLevel2Member_label_en-US" xlink:label="lab_us-gaap_FairValueInputsLevel2Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Inputs, Level 2 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueInputsLevel2Member" xlink:to="lab_us-gaap_FairValueInputsLevel2Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GuaranteesAbstract_d16a4557-82e3-4813-9aaa-65611ec82eb4_terseLabel_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:label id="lab_us-gaap_GuaranteesAbstract_label_en-US" xlink:label="lab_us-gaap_GuaranteesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Guarantees [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GuaranteesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GuaranteesAbstract" xlink:to="lab_us-gaap_GuaranteesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FireMember_3ce0d6e9-e3aa-4e33-9af5-74b71f6f7e92_terseLabel_en-US" xlink:label="lab_us-gaap_FireMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fire</link:label>
    <link:label id="lab_us-gaap_FireMember_label_en-US" xlink:label="lab_us-gaap_FireMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fire [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FireMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FireMember" xlink:to="lab_us-gaap_FireMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_f5f69a15-5ef7-41b7-a148-9d9ca3498db3_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Changes in Warranty Obligations</link:label>
    <link:label id="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Product Warranty Liability [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_aa1b79e1-2b8f-4370-a0a1-ca1dc5421413_terseLabel_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_label_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:label id="lab_cgnx_InsuranceRecoveriesBusinessInterruption_documentation_en-US" xlink:label="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insurance Recoveries, Business Interruption</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:to="lab_cgnx_InsuranceRecoveriesBusinessInterruption" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_ba6d43e1-97f0-4bab-a91c-e3f9f20f59ec_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss)</link:label>
    <link:label id="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative Instruments, Gain (Loss) [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:to="lab_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_5a29e66e-2df5-4ffa-a7c6-66547d72874d_terseLabel_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_label_en-US" xlink:label="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) in Stockholders' Equity [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:to="lab_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Named Executive Officers, Footnote</link:label>
    <link:label id="lab_ecd_NamedExecutiveOfficersFnTextBlock_label_en-US" xlink:label="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Named Executive Officers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:to="lab_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_1be839af-e3b0-480e-8e7d-e412fada26f1_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalPeriodFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalPeriodFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Period Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalPeriodFocus" xlink:to="lab_dei_DocumentFiscalPeriodFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_9e359559-348c-4a4a-9fd5-b6ad337cee28_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:label id="lab_us-gaap_DividendsPayableAmountPerShare_label_en-US" xlink:label="lab_us-gaap_DividendsPayableAmountPerShare" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Amount Per Share</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableAmountPerShare" xlink:to="lab_us-gaap_DividendsPayableAmountPerShare" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_712395c1-f79a-43af-8de7-3c479ab9ad19_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Useful Life</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetUsefulLife" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_79404edc-7a70-41c3-a489-8cff0e7fe903_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2027</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Year Four</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_51a33980-4a6b-4b13-a5e8-a132aff229fa_periodStartLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodStartLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Beginning balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2ea0bc74-8ab6-4230-80f5-a5df4517cd72_periodEndLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/periodEndLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Ending balance outstanding, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_ae129c27-7a29-4415-8ce8-2f2ff7f12ce9_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease expense</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseExpense_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseExpense" xlink:to="lab_us-gaap_OperatingLeaseExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ForeignCountryMember_c8643e3c-7305-467c-8846-94a73220bc7b_terseLabel_en-US" xlink:label="lab_us-gaap_ForeignCountryMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:label id="lab_us-gaap_ForeignCountryMember_label_en-US" xlink:label="lab_us-gaap_ForeignCountryMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign Tax Authority [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ForeignCountryMember" xlink:to="lab_us-gaap_ForeignCountryMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_66a2dc6c-e57b-43bd-9c61-14ff72678054_terseLabel_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current accrued income taxes</link:label>
    <link:label id="lab_us-gaap_AccruedIncomeTaxesNoncurrent_label_en-US" xlink:label="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued Income Taxes, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:to="lab_us-gaap_AccruedIncomeTaxesNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_GreaterChinaMember_088c2f38-284c-4f4c-a894-c150269baf63_terseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_3d3dd696-49b1-4105-844c-f9f081f7f47e_verboseLabel_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_label_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:label id="lab_cgnx_GreaterChinaMember_documentation_en-US" xlink:label="lab_cgnx_GreaterChinaMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Greater China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember" xlink:href="cgnx-20231231.xsd#cgnx_GreaterChinaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_GreaterChinaMember" xlink:to="lab_cgnx_GreaterChinaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_CityAreaCode_ad142788-49cc-43dd-ae38-7f9e1ac3c06f_terseLabel_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">City Area Code</link:label>
    <link:label id="lab_dei_CityAreaCode_label_en-US" xlink:label="lab_dei_CityAreaCode" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">City Area Code</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_CityAreaCode" xlink:to="lab_dei_CityAreaCode" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_ceee212c-d14a-4b57-8585-8a740de93a41_terseLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of three years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Contributions Vest At End Of Three Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of three years.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfThreeYears" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_ProductOrServiceAxis_901e6f04-b1fd-4189-9fe3-a6aa1a2dd768_terseLabel_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:label id="lab_srt_ProductOrServiceAxis_label_en-US" xlink:label="lab_srt_ProductOrServiceAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product and Service [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_ProductOrServiceAxis" xlink:to="lab_srt_ProductOrServiceAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_d23bf413-276c-4d62-99d7-e62ca006c57b_terseLabel_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Shares</link:label>
    <link:label id="lab_us-gaap_EarningsPerShareTextBlock_label_en-US" xlink:label="lab_us-gaap_EarningsPerShareTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Earnings Per Share [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EarningsPerShareTextBlock" xlink:to="lab_us-gaap_EarningsPerShareTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_DocumentFiscalYearFocus_3d3d0799-2837-426e-939c-bce4f9006518_terseLabel_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:label id="lab_dei_DocumentFiscalYearFocus_label_en-US" xlink:label="lab_dei_DocumentFiscalYearFocus" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Document Fiscal Year Focus</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_DocumentFiscalYearFocus" xlink:to="lab_dei_DocumentFiscalYearFocus" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_SegmentGeographicalDomain_482f39aa-9b19-408a-92c7-8943b391d7f1_terseLabel_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:label id="lab_srt_SegmentGeographicalDomain_label_en-US" xlink:label="lab_srt_SegmentGeographicalDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Geographical [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_SegmentGeographicalDomain" xlink:to="lab_srt_SegmentGeographicalDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_3c761566-47ca-409d-9e4a-743531af9f15_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseTermOfContract_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Term of Contract</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:to="lab_us-gaap_LesseeOperatingLeaseTermOfContract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_9852d640-7cf7-4b5f-a67e-8b13e729d14c_terseLabel_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum age to be eligible to defined contribution plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_label_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum Age To Be Eligible To Defined Contribution Plan</link:label>
    <link:label id="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_documentation_en-US" xlink:label="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Minimum age to be eligible to defined contribution plan.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:href="cgnx-20231231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:to="lab_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_91dda689-f939-4b9d-b24e-330239e1e421_terseLabel_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase in compensation expense due to revised estimated forfeiture rates</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_label_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (Decrease) In Compensation Expense Due To Revised Estimated Forfeiture Rates</link:label>
    <link:label id="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_documentation_en-US" xlink:label="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Increase (decrease) in compensation expense due to revised estimated forfeiture rates.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:href="cgnx-20231231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:to="lab_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_e786364e-3505-4aff-a477-8d8f60c62aa3_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramDomain_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain" xlink:to="lab_us-gaap_ShareRepurchaseProgramDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_b652c8a8-5170-4948-bedd-107fbd788a42_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Summary of Stock Option Activity</link:label>
    <link:label id="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Option, Activity [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardExrcPrice_terseLabel_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercise Price</link:label>
    <link:label id="lab_ecd_AwardExrcPrice_label_en-US" xlink:label="lab_ecd_AwardExrcPrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardExrcPrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardExrcPrice" xlink:to="lab_ecd_AwardExrcPrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_023f2a7a-ed35-42e6-b33b-76f0a89db2fc_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets by Major Class [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsCommonStockCash_a3ca316a-02a7-4a37-b68b-d10bb969f2ce_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payment of dividends ($0.286 per common share)</link:label>
    <link:label id="lab_us-gaap_DividendsCommonStockCash_label_en-US" xlink:label="lab_us-gaap_DividendsCommonStockCash" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends, Common Stock, Cash</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsCommonStockCash" xlink:to="lab_us-gaap_DividendsCommonStockCash" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_2b39a012-f07c-4126-ba42-79697fa4ba42_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:label id="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill and Intangible Assets Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:to="lab_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_565df165-3ac1-40bc-b7c7-aad28cd6c35e_terseLabel_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">27,000 Square-Foot Premises</link:label>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_label_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">27,000 Square-Foot Premises [Member]</link:label>
    <link:label id="lab_cgnx_A27000SquareFootPremisesMember_documentation_en-US" xlink:label="lab_cgnx_A27000SquareFootPremisesMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">27,000 Square-Foot Premises</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember" xlink:href="cgnx-20231231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_A27000SquareFootPremisesMember" xlink:to="lab_cgnx_A27000SquareFootPremisesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_3c8876e2-6f84-43bf-b0b4-238cd18717b7_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income tax paid net</link:label>
    <link:label id="lab_us-gaap_IncomeTaxesPaidNet_label_en-US" xlink:label="lab_us-gaap_IncomeTaxesPaidNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Taxes Paid, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxesPaidNet" xlink:to="lab_us-gaap_IncomeTaxesPaidNet" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_f401e9b5-85c1-4406-ab76-8d0e39e3e8bc_totalLabel_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of four years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_label_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Contributions Vest At End Of Four Years</link:label>
    <link:label id="lab_cgnx_CompanyContributionsVestAtEndOfFourYears_documentation_en-US" xlink:label="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company contributions vest at end of four years.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:to="lab_cgnx_CompanyContributionsVestAtEndOfFourYears" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_8cf18c83-ddd1-4406-88c1-86328b8a433d_terseLabel_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Completed Technologies [Member]</link:label>
    <link:label id="lab_us-gaap_DevelopedTechnologyRightsMember_label_en-US" xlink:label="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Developed Technology Rights [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DevelopedTechnologyRightsMember" xlink:to="lab_us-gaap_DevelopedTechnologyRightsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_Customer1Member_63aac792-a626-4b7a-8f23-b62f397f0202_terseLabel_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 1 [Member]</link:label>
    <link:label id="lab_cgnx_Customer1Member_label_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 1 [Member]</link:label>
    <link:label id="lab_cgnx_Customer1Member_documentation_en-US" xlink:label="lab_cgnx_Customer1Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Customer 1</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member" xlink:href="cgnx-20231231.xsd#cgnx_Customer1Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_Customer1Member" xlink:to="lab_cgnx_Customer1Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_df94dcb1-a279-458c-8a12-427828621a69_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-Based Compensation Expense</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_42c4a59e-56a2-47ff-a101-5006e0e8fa3d_negatedLabel_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization of discounts or premiums on investments</link:label>
    <link:label id="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_label_en-US" xlink:label="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accretion (Amortization) of Discounts and Premiums, Investments</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:to="lab_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_b3255b89-fb20-41de-9f69-20dca6751e54_totalLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total liabilities and shareholders' equity</link:label>
    <link:label id="lab_us-gaap_LiabilitiesAndStockholdersEquity_label_en-US" xlink:label="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities and Equity</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquity" xlink:to="lab_us-gaap_LiabilitiesAndStockholdersEquity" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_7520a73c-9e22-4b80-a797-c30924e3f6de_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortized Cost</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Amortized Cost</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_19383204-9cdf-4949-9461-e507ffb696f0_terseLabel_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other assets</link:label>
    <link:label id="lab_us-gaap_OtherAssetsNoncurrent_label_en-US" xlink:label="lab_us-gaap_OtherAssetsNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Assets, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherAssetsNoncurrent" xlink:to="lab_us-gaap_OtherAssetsNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:label id="lab_ecd_PeerGroupTotalShareholderRtnAmt_label_en-US" xlink:label="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Total Shareholder Return Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:to="lab_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_c5b849b0-9ffb-463a-a648-84d47e608023_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Risk-free rate</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_0b9f57f6-5a13-4b6e-b4a3-4f607d14a08d_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease assets</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseRightOfUseAsset_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Right-of-Use Asset</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseRightOfUseAsset" xlink:to="lab_us-gaap_OperatingLeaseRightOfUseAsset" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_19c3560d-4b98-421e-a69f-041041a44188_terseLabel_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_label_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:label id="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_documentation_en-US" xlink:label="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:to="lab_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_038ecafe-f0de-4ac9-aa39-14be1d5238fb_terseLabel_en-US" xlink:label="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:label id="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_label_en-US" xlink:label="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Costs Associated with Exit or Disposal Activity or Restructuring [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:to="lab_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote</link:label>
    <link:label id="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock_label_en-US" xlink:label="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equity Valuation Assumption Difference, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:to="lab_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_7365e33c-0fcc-40ef-9c1e-f064ab95f24b_terseLabel_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:label id="lab_us-gaap_StateAdministrationOfTaxationChinaMember_label_en-US" xlink:label="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">State Administration of Taxation, China [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:to="lab_us-gaap_StateAdministrationOfTaxationChinaMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_af3b29d4-655e-4423-9b3c-f36401d9f78f_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net unrealized losses on available-for-sale investments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_1e8a6723-5f98-4279-83c1-2c156473bec3_terseLabel_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign</link:label>
    <link:label id="lab_us-gaap_CurrentForeignTaxExpenseBenefit_label_en-US" xlink:label="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Current Foreign Tax Expense (Benefit)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:to="lab_us-gaap_CurrentForeignTaxExpenseBenefit" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_CurrencyAxis_2d98ac49-56a8-4984-bf81-413b0d6d40c4_terseLabel_en-US" xlink:label="lab_srt_CurrencyAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Currency [Axis]</link:label>
    <link:label id="lab_srt_CurrencyAxis_label_en-US" xlink:label="lab_srt_CurrencyAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Currency [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CurrencyAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_CurrencyAxis" xlink:to="lab_srt_CurrencyAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_86f03050-9a84-4b77-a2dd-948ad12e89c0_terseLabel_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
    <link:label id="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_label_en-US" xlink:label="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:to="lab_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrDuration_terseLabel_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Arrangement Duration</link:label>
    <link:label id="lab_ecd_TrdArrDuration_label_en-US" xlink:label="lab_ecd_TrdArrDuration" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrDuration"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrDuration" xlink:to="lab_ecd_TrdArrDuration" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityAddressCityOrTown_174f386b-4636-48e8-b444-dc40061932a7_terseLabel_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:label id="lab_dei_EntityAddressCityOrTown_label_en-US" xlink:label="lab_dei_EntityAddressCityOrTown" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Address, City or Town</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityAddressCityOrTown" xlink:to="lab_dei_EntityAddressCityOrTown" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Considered</link:label>
    <link:label id="lab_ecd_AwardTmgMnpiCnsdrdFlag_label_en-US" xlink:label="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing MNPI Considered [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:to="lab_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_6bd021c1-f351-411c-b35d-cfeb0dc3e79f_terseLabel_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total fair values of stock options vested</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_label_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value</link:label>
    <link:label id="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_documentation_en-US" xlink:label="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share based compensation arrangement by share based payment award options vested fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:href="cgnx-20231231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:to="lab_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryCurrentTable_ddf3cd55-06e5-45b2-b2b3-96296dd839c4_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryCurrentTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Current [Table]</link:label>
    <link:label id="lab_us-gaap_InventoryCurrentTable_label_en-US" xlink:label="lab_us-gaap_InventoryCurrentTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Current [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryCurrentTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryCurrentTable" xlink:to="lab_us-gaap_InventoryCurrentTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_60906823-9def-4beb-8319-bc6fffaecfd6_terseLabel_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Options vested or expected to vest, weighted-average remaining contractual term (in years)</link:label>
    <link:label id="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_label_en-US" xlink:label="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:to="lab_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_00809c9f-07d6-4a53-83e6-d8d64330f40a_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Cash and Cash Equivalents [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:to="lab_us-gaap_ScheduleOfCashAndCashEquivalentsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringCharges_6884c39a-d74d-4384-a8d9-70ce3d2b4fe5_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring charges</link:label>
    <link:label id="lab_us-gaap_RestructuringCharges_label_en-US" xlink:label="lab_us-gaap_RestructuringCharges" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Charges</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringCharges" xlink:to="lab_us-gaap_RestructuringCharges" xlink:type="arc" order="1"/>
    <link:label id="lab_currency_CNY_f7a0263d-886f-4d8a-a461-8d33a46ede3c_terseLabel_en-US" xlink:label="lab_currency_CNY" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">China, Yuan Renminbi</link:label>
    <link:label id="lab_currency_CNY_label_en-US" xlink:label="lab_currency_CNY" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">China, Yuan Renminbi</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CNY"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_currency_CNY" xlink:to="lab_currency_CNY" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_ab8b85bb-1567-4367-91a4-63ef092f8242_terseLabel_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value Measurements</link:label>
    <link:label id="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy_label_en-US" xlink:label="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value of Financial Instruments, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:to="lab_us-gaap_FairValueOfFinancialInstrumentsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_ea62ff44-57fc-486e-a78b-c826a9c19324_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsAbstract_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combinations [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsAbstract" xlink:to="lab_us-gaap_BusinessCombinationsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_c7ae702b-27cf-4687-9369-8a12c9acc606_terseLabel_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Remaining Authorized Repurchase Amount</link:label>
    <link:label id="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_label_en-US" xlink:label="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Remaining Authorized Repurchase Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:to="lab_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrTerminationDate_terseLabel_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Termination Date</link:label>
    <link:label id="lab_ecd_TrdArrTerminationDate_label_en-US" xlink:label="lab_ecd_TrdArrTerminationDate" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement Termination Date</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrTerminationDate"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrTerminationDate" xlink:to="lab_ecd_TrdArrTerminationDate" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_991f2613-c183-455b-b89b-3545b5102b5c_terseLabel_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax</link:label>
    <link:label id="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_label_en-US" xlink:label="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:to="lab_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_5a9e358e-c732-40de-8e3d-036346e85ad1_terseLabel_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common stock, shares authorized (in shares)</link:label>
    <link:label id="lab_us-gaap_CommonStockSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_CommonStockSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Common Stock, Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_CommonStockSharesAuthorized" xlink:to="lab_us-gaap_CommonStockSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_b11e24d9-ac63-4085-bd0a-7731b5507e60_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3822003a-6f8c-4621-966b-6566da2251ad_totalLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Fair Value, Total</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtSecurities" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_90211c36-fb0b-4f1f-bdfc-df103ada719b_terseLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign tax structure deferred tax asset</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, Foreign Tax Structure Change</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:to="lab_cgnx_DeferredTaxAssetsForeignTaxStructureChange" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract_label_en-US" xlink:label="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Unusual or Infrequent Items, or Both [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:to="lab_us-gaap_ExtraordinaryAndUnusualItemsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_46aa55dd-56e1-403f-be5f-2e29bba69d86_terseLabel_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate bonds</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_label_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate Bonds Fair Value Disclosure</link:label>
    <link:label id="lab_cgnx_CorporateBondsFairValueDisclosure_documentation_en-US" xlink:label="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Corporate bonds fair value disclosure.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure" xlink:href="cgnx-20231231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CorporateBondsFairValueDisclosure" xlink:to="lab_cgnx_CorporateBondsFairValueDisclosure" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_ce6180d7-cdb8-4a52-975e-ba5e96f5bd0d_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Unrealized Gains</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:to="lab_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_cb370f28-345f-4b52-ab85-2536558dae34_terseLabel_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-term Investments [Member]</link:label>
    <link:label id="lab_us-gaap_ShortTermInvestmentsMember_label_en-US" xlink:label="lab_us-gaap_ShortTermInvestmentsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Short-Term Investments [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShortTermInvestmentsMember" xlink:to="lab_us-gaap_ShortTermInvestmentsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_21390aa4-f3f4-4f9a-9583-d88d702a129d_terseLabel_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indemnification Provisions</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_label_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indemnification Provisions [Text Block]</link:label>
    <link:label id="lab_cgnx_IndemnificationProvisionsTextBlock_documentation_en-US" xlink:label="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock" xlink:href="cgnx-20231231.xsd#cgnx_IndemnificationProvisionsTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_IndemnificationProvisionsTextBlock" xlink:to="lab_cgnx_IndemnificationProvisionsTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_abda4888-9242-486d-9821-9b775282ed0d_terseLabel_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign currency translation adjustments:</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_label_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:label id="lab_cgnx_CurrencytranslationadjustmentAbstract_documentation_en-US" xlink:label="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Currency translation adjustment [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract" xlink:href="cgnx-20231231.xsd#cgnx_CurrencytranslationadjustmentAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract" xlink:to="lab_cgnx_CurrencytranslationadjustmentAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_aad35c3c-a6c0-44ec-ba19-0d1fb7bd889e_terseLabel_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_label_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:label id="lab_cgnx_RepurchaseProgramOctober2018Member_documentation_en-US" xlink:label="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Repurchase Program October 2018 [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_RepurchaseProgramOctober2018Member" xlink:to="lab_cgnx_RepurchaseProgramOctober2018Member" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_4ba9f770-c02e-462a-a196-f727131157d7_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustments to reconcile net income to net cash provided by operating activities:</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:to="lab_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_7bf3d29d-4053-4217-8cb8-beecd592a543_terseLabel_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:label id="lab_us-gaap_ProductLiabilityContingencyTable_label_en-US" xlink:label="lab_us-gaap_ProductLiabilityContingencyTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Liability Contingency [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable" xlink:to="lab_us-gaap_ProductLiabilityContingencyTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DistributionRightsMember_85f7b5b4-cb8d-4943-a0b3-f048a28ebcad_verboseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_7d995ccf-fea8-4198-8ca9-85c3ddcea7a4_terseLabel_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Networks [Member]</link:label>
    <link:label id="lab_us-gaap_DistributionRightsMember_label_en-US" xlink:label="lab_us-gaap_DistributionRightsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Distribution Rights [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DistributionRightsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DistributionRightsMember" xlink:to="lab_us-gaap_DistributionRightsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeLineItems_37b9969a-7600-4db2-8345-9a311003d5a3_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:label id="lab_us-gaap_DerivativeLineItems_label_en-US" xlink:label="lab_us-gaap_DerivativeLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeLineItems" xlink:to="lab_us-gaap_DerivativeLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgDiscLineItems_label_en-US" xlink:label="lab_ecd_AwardTmgDiscLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Disclosures [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="lab_ecd_AwardTmgDiscLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_e9da5e9b-9591-4733-9dbe-9935dee67dd2_terseLabel_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss (recovery) from fire</link:label>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_label_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss (Gain) From Catastrophes</link:label>
    <link:label id="lab_cgnx_LossGainFromCatastrophes_documentation_en-US" xlink:label="lab_cgnx_LossGainFromCatastrophes" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Loss (Gain) From Catastrophes</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes" xlink:href="cgnx-20231231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_LossGainFromCatastrophes" xlink:to="lab_cgnx_LossGainFromCatastrophes" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringPlanAxis_53379c49-03a1-4531-95e7-a091b4966eb2_terseLabel_en-US" xlink:label="lab_us-gaap_RestructuringPlanAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Axis]</link:label>
    <link:label id="lab_us-gaap_RestructuringPlanAxis_label_en-US" xlink:label="lab_us-gaap_RestructuringPlanAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring Plan [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringPlanAxis" xlink:to="lab_us-gaap_RestructuringPlanAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_6cd0d72d-3aad-4258-b7f0-0935bca3a6ba_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]</link:label>
    <link:label id="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_label_en-US" xlink:label="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:to="lab_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_4d523ac9-68e9-4850-bd98-2f6c0fb75834_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Taxes</link:label>
    <link:label id="lab_us-gaap_IncomeTaxPolicyTextBlock_label_en-US" xlink:label="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxPolicyTextBlock" xlink:to="lab_us-gaap_IncomeTaxPolicyTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_023072e6-8495-4028-8fe7-244334c26f95_terseLabel_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid expenses and other current assets</link:label>
    <link:label id="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_label_en-US" xlink:label="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Prepaid Expense and Other Assets, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:to="lab_us-gaap_PrepaidExpenseAndOtherAssetsCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_bcfe3ec8-bf2b-43ac-9150-a1fca7a0b8bb_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2026</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Three</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_0fb692e1-9d81-4eb4-b185-cd145b04489a_totalLabel_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total deferred tax assets</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_label_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, With Jurisdictional Netting, Gross</link:label>
    <link:label id="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_documentation_en-US" xlink:label="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Assets, With Jurisdictional Netting, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:to="lab_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MunicipalBondsMember_87d4e2c1-1ca2-478b-8b5a-7d8be408557c_terseLabel_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:label id="lab_us-gaap_MunicipalBondsMember_label_en-US" xlink:label="lab_us-gaap_MunicipalBondsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Municipal Bonds [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MunicipalBondsMember" xlink:to="lab_us-gaap_MunicipalBondsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_30bae593-2414-4b24-bd6a-32a8a4e40fe0_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">4-5 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_InsiderTradingArrLineItems_label_en-US" xlink:label="lab_ecd_InsiderTradingArrLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Insider Trading Arrangements [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="lab_ecd_InsiderTradingArrLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_ebd78309-8569-48e7-8367-2b7dff20ee04_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Outstanding, aggregate intrinsic value</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_InvestmentDurationAxis_7c1829a0-224b-4a42-9f53-20dbf7b75a11_terseLabel_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Axis]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationAxis_label_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration [Axis]</link:label>
    <link:label id="lab_cgnx_InvestmentDurationAxis_documentation_en-US" xlink:label="lab_cgnx_InvestmentDurationAxis" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Duration</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_InvestmentDurationAxis" xlink:to="lab_cgnx_InvestmentDurationAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_faea3f1f-f7f4-4a90-8d4c-34d3341b4aac_terseLabel_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other</link:label>
    <link:label id="lab_us-gaap_ValuationAllowancesAndReservesAdjustments_label_en-US" xlink:label="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:to="lab_us-gaap_ValuationAllowancesAndReservesAdjustments" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_83c9647d-6ee5-4b27-bd50-b4ed250c43c3_terseLabel_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Changes and Error Corrections [Abstract]</link:label>
    <link:label id="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_label_en-US" xlink:label="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounting Changes and Error Corrections [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:to="lab_us-gaap_AccountingChangesAndErrorCorrectionsAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityRegistrantName_d79f2741-59ee-4c3b-8e32-6fb5f669c77b_terseLabel_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:label id="lab_dei_EntityRegistrantName_label_en-US" xlink:label="lab_dei_EntityRegistrantName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Registrant Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityRegistrantName" xlink:to="lab_dei_EntityRegistrantName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_terseLabel_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Material Terms of Trading Arrangement</link:label>
    <link:label id="lab_ecd_MtrlTermsOfTrdArrTextBlock_label_en-US" xlink:label="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Material Terms of Trading Arrangement [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:to="lab_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_terseLabel_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Method</link:label>
    <link:label id="lab_ecd_AwardTmgMethodTextBlock_label_en-US" xlink:label="lab_ecd_AwardTmgMethodTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Award Timing Method [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardTmgMethodTextBlock" xlink:to="lab_ecd_AwardTmgMethodTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_a51a9e07-7c9a-4e4e-91fa-a4bcf8fab37c_terseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_f6106d92-b588-4827-a043-a96484a30185_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign tax rate differential</link:label>
    <link:label id="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_label_en-US" xlink:label="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:to="lab_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_3d36bb46-20e3-45fb-b9fc-aae48ebd1ab8_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2025</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Asset, Expected Amortization, Year Two</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAmt_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation, Amount</link:label>
    <link:label id="lab_ecd_AdjToCompAmt_label_en-US" xlink:label="lab_ecd_AdjToCompAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAmt" xlink:to="lab_ecd_AdjToCompAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AuditInformationAbstract_label_en-US" xlink:label="lab_cgnx_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Audit Information [Abstract]</link:label>
    <link:label id="lab_cgnx_AuditInformationAbstract_documentation_en-US" xlink:label="lab_cgnx_AuditInformationAbstract" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Audit Information</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract" xlink:href="cgnx-20231231.xsd#cgnx_AuditInformationAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AuditInformationAbstract" xlink:to="lab_cgnx_AuditInformationAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AuditorName_ec9e24d7-3153-472a-be1f-63a983c2b03b_terseLabel_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Name</link:label>
    <link:label id="lab_dei_AuditorName_label_en-US" xlink:label="lab_dei_AuditorName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Auditor Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AuditorName" xlink:to="lab_dei_AuditorName" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_terseLabel_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Net Income</link:label>
    <link:label id="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock_label_en-US" xlink:label="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Compensation Actually Paid vs. Net Income [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:to="lab_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_terseLabel_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Issuers, Footnote</link:label>
    <link:label id="lab_ecd_PeerGroupIssuersFnTextBlock_label_en-US" xlink:label="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Peer Group Issuers, Footnote [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:to="lab_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_8c5bf653-ecca-4444-8a69-3f20b31ada01_negatedLabel_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Less: accumulated depreciation</link:label>
    <link:label id="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:to="lab_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_113e7ce2-b0dc-471c-9b30-46d924572c13_terseLabel_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets and Liabilities Measured at Fair Value on a Recurring Basis</link:label>
    <link:label id="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_label_en-US" xlink:label="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:to="lab_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_602637db-f856-4a3b-a610-a08125a6ff0b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Exercisable, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InternalUseSoftwarePolicy_6d4378ac-e532-47e6-922b-4b8ab38bcecc_terseLabel_en-US" xlink:label="lab_us-gaap_InternalUseSoftwarePolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Internal-use Software</link:label>
    <link:label id="lab_us-gaap_InternalUseSoftwarePolicy_label_en-US" xlink:label="lab_us-gaap_InternalUseSoftwarePolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Internal Use Software, Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalUseSoftwarePolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InternalUseSoftwarePolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InternalUseSoftwarePolicy" xlink:to="lab_us-gaap_InternalUseSoftwarePolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_f61959bc-b3ac-4b13-8e16-1d7bb996408c_terseLabel_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:label id="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_label_en-US" xlink:label="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Dividends Payable, Date of Record</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:to="lab_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_EntityCentralIndexKey_859b1f25-b34f-4782-bb9d-44570a7a3b7b_terseLabel_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:label id="lab_dei_EntityCentralIndexKey_label_en-US" xlink:label="lab_dei_EntityCentralIndexKey" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Entity Central Index Key</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_EntityCentralIndexKey" xlink:to="lab_dei_EntityCentralIndexKey" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_c3d42c69-6705-4e9f-aeca-82e7e2e5ae0d_terseLabel_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities:</link:label>
    <link:label id="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Liabilities, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:to="lab_us-gaap_LiabilitiesFairValueDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_17edf52b-4e28-4ee4-a64d-33ee6444d71e_terseLabel_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gains (losses) recognized in net income</link:label>
    <link:label id="lab_us-gaap_DerivativeGainLossOnDerivativeNet_label_en-US" xlink:label="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Derivative, Gain (Loss) on Derivative, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:to="lab_us-gaap_DerivativeGainLossOnDerivativeNet" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_c1e8179d-1a93-4d8f-ade6-204a1bb24df1_verboseLabel_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AllocatedShareBasedCompensationExpense_label_en-US" xlink:label="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Expense</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AllocatedShareBasedCompensationExpense" xlink:to="lab_us-gaap_AllocatedShareBasedCompensationExpense" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_terseLabel_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated</link:label>
    <link:label id="lab_ecd_NonRule10b51ArrTrmntdFlag_label_en-US" xlink:label="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-Rule 10b5-1 Arrangement Terminated [Flag]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:to="lab_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_1c744b21-5054-41fb-9b13-555350feb34a_terseLabel_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross Carrying Value</link:label>
    <link:label id="lab_us-gaap_FiniteLivedIntangibleAssetsGross_label_en-US" xlink:label="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finite-Lived Intangible Assets, Gross</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:to="lab_us-gaap_FiniteLivedIntangibleAssetsGross" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_87dda8ae-9d56-4ea0-aab8-092ab2d39f8c_terseLabel_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Finished goods</link:label>
    <link:label id="lab_us-gaap_InventoryFinishedGoodsNetOfReserves_label_en-US" xlink:label="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Inventory, Finished Goods, Net of Reserves</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:to="lab_us-gaap_InventoryFinishedGoodsNetOfReserves" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_f426c5e6-79c4-436c-a575-4e05c666b3fc_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accounts receivable</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_4c0a7815-6c33-4080-ab77-e48e32fa4702_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityDomain_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority [Domain]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain" xlink:to="lab_us-gaap_IncomeTaxAuthorityDomain" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_b1b2f7e1-ea08-4d4f-9ef6-b773b77745b6_verboseLabel_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total Revenue</link:label>
    <link:label id="lab_us-gaap_SalesRevenueNetMember_label_en-US" xlink:label="lab_us-gaap_SalesRevenueNetMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue Benchmark [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_SalesRevenueNetMember" xlink:to="lab_us-gaap_SalesRevenueNetMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_TrdArrIndName_terseLabel_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_TrdArrIndName_label_en-US" xlink:label="lab_ecd_TrdArrIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Trading Arrangement, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_TrdArrIndName" xlink:to="lab_ecd_TrdArrIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_ed42ee77-4dcf-40f2-81b3-2b117401fbed_totalLabel_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other comprehensive income (loss), net of tax</link:label>
    <link:label id="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_label_en-US" xlink:label="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:to="lab_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_d9754f6a-47fe-43f0-8151-d5ee12a9656b_terseLabel_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue</link:label>
    <link:label id="lab_us-gaap_DisaggregationOfRevenueTableTextBlock_label_en-US" xlink:label="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Disaggregation of Revenue [Table Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:to="lab_us-gaap_DisaggregationOfRevenueTableTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_7cd21984-7e87-4f65-b817-158542d53951_terseLabel_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:label id="lab_us-gaap_LessorLeaseDescriptionLineItems_label_en-US" xlink:label="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Lessor, Lease, Description [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems" xlink:to="lab_us-gaap_LessorLeaseDescriptionLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_d0bc4a14-8827-4cbb-849e-3f816ea17788_terseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_34f06ec1-32a9-4d55-8893-79fa93507149_verboseLabel_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue</link:label>
    <link:label id="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_label_en-US" xlink:label="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Revenue from Contract with Customer, Excluding Assessed Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:to="lab_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetRentableArea_36600f0b-7337-47cd-b2f2-28370ab26028_terseLabel_en-US" xlink:label="lab_us-gaap_NetRentableArea" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Rentable Area</link:label>
    <link:label id="lab_us-gaap_NetRentableArea_label_en-US" xlink:label="lab_us-gaap_NetRentableArea" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Rentable Area</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetRentableArea"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetRentableArea" xlink:to="lab_us-gaap_NetRentableArea" xlink:type="arc" order="1"/>
    <link:label id="lab_dei_AmendmentFlag_0219b45f-48d8-4fa2-8254-498294a965e3_terseLabel_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amendment Flag</link:label>
    <link:label id="lab_dei_AmendmentFlag_label_en-US" xlink:label="lab_dei_AmendmentFlag" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amendment Flag</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_dei_AmendmentFlag" xlink:to="lab_dei_AmendmentFlag" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_dcfe2246-ddb9-4e81-a6fc-c93a27e209a7_terseLabel_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible Assets</link:label>
    <link:label id="lab_us-gaap_IntangibleAssetsDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Intangible Assets Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:to="lab_us-gaap_IntangibleAssetsDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_b3bbaad7-6699-4702-b69a-a6806ac1bc26_terseLabel_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">2-3 Years</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_label_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value</link:label>
    <link:label id="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_documentation_en-US" xlink:label="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Available-for-sale securities, debt maturities after second year but before third year, fair value.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:to="lab_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_7193b3a9-1237-4ef7-b38a-45bee9e191ae_terseLabel_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating lease, weighted average discount rate (percent)</link:label>
    <link:label id="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_label_en-US" xlink:label="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Operating Lease, Weighted Average Discount Rate, Percent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:to="lab_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_476e830c-309a-4912-ae90-2629b58098f4_terseLabel_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:label id="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward_label_en-US" xlink:label="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:to="lab_us-gaap_MovementInValuationAllowancesAndReservesRollForward" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_30a9f777-358c-4073-913c-b5cf0c656016_terseLabel_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Less than 1 Year</link:label>
    <link:label id="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_label_en-US" xlink:label="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:to="lab_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_44718b7c-b8b1-4e42-9087-3fac37729977_terseLabel_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets:</link:label>
    <link:label id="lab_us-gaap_AssetsFairValueDisclosureAbstract_label_en-US" xlink:label="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets, Fair Value Disclosure [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract" xlink:to="lab_us-gaap_AssetsFairValueDisclosureAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_d9975c31-a9d7-4394-9515-e7219730b071_terseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Acquisitions</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationsPolicy_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationsPolicy" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combinations Policy [Policy Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationsPolicy" xlink:to="lab_us-gaap_BusinessCombinationsPolicy" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_f0758f73-5c50-4f91-a484-b27e5a255133_terseLabel_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill</link:label>
    <link:label id="lab_us-gaap_GoodwillDisclosureTextBlock_label_en-US" xlink:label="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Goodwill Disclosure [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_GoodwillDisclosureTextBlock" xlink:to="lab_us-gaap_GoodwillDisclosureTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_0ba77928-12c9-4735-b404-73c34ea44725_verboseLabel_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:label id="lab_us-gaap_LeaseholdImprovementsMember_label_en-US" xlink:label="lab_us-gaap_LeaseholdImprovementsMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Leasehold Improvements [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_LeaseholdImprovementsMember" xlink:to="lab_us-gaap_LeaseholdImprovementsMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_9b141aa0-1467-48c5-896f-8dbdc3c650e6_negatedTotalLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTotalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilities_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Net</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilities" xlink:to="lab_us-gaap_DeferredTaxLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_ccb36f84-9717-401b-931f-293e0d94dbb9_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Diluted (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_9d5acedc-4f39-4235-a514-7f3d3eaf5a6b_totalLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Diluted weighted-average common and common-equivalent shares outstanding</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Diluted</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:to="lab_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_terseLabel_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability</link:label>
    <link:label id="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock_label_en-US" xlink:label="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Forgone Recovery, Explanation of Impracticability [Text Block]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:to="lab_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_77df4c10-bcfd-4f74-a8c6-62665592ba58_terseLabel_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:label id="lab_us-gaap_IncomeTaxAuthorityNameAxis_label_en-US" xlink:label="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Income Tax Authority, Name [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis" xlink:to="lab_us-gaap_IncomeTaxAuthorityNameAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_d68763bd-202d-4115-9b10-bd71c416d8e4_terseLabel_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money market instruments</link:label>
    <link:label id="lab_us-gaap_MoneyMarketFundsAtCarryingValue_label_en-US" xlink:label="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Money Market Funds, at Carrying Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:to="lab_us-gaap_MoneyMarketFundsAtCarryingValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_3a017d7f-86ef-47da-8595-8d1fc674672e_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_5b596f44-0717-4abc-9cb7-4fc1b1680afd_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Gross realized losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Realized Loss</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_96f749bf-7753-4da2-8765-b84093c1ecb7_negatedLabel_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Purchases of property, plant, and equipment</link:label>
    <link:label id="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Payments to Acquire Property, Plant, and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:to="lab_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_terseLabel_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:label id="lab_ecd_CoSelectedMeasureAmt_label_en-US" xlink:label="lab_ecd_CoSelectedMeasureAmt" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Company Selected Measure Amount</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_CoSelectedMeasureAmt" xlink:to="lab_ecd_CoSelectedMeasureAmt" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_50f5e9cb-e456-4b7b-8fcf-d95a218385dc_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Shares</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Payment Arrangement, Option, Exercise Price Range [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:to="lab_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_Assets_76d4326b-f36e-4a5d-8047-860ae664f4f5_totalLabel_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/totalLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Total assets</link:label>
    <link:label id="lab_us-gaap_Assets_label_en-US" xlink:label="lab_us-gaap_Assets" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Assets</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_Assets" xlink:to="lab_us-gaap_Assets" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_terseLabel_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Name</link:label>
    <link:label id="lab_ecd_AwardsCloseToMnpiDiscIndName_label_en-US" xlink:label="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Awards Close in Time to MNPI Disclosures, Individual Name</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:to="lab_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_68208680-4bc1-44e6-801f-7c440e14d722_terseLabel_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:label id="lab_us-gaap_ShareRepurchaseProgramAxis_label_en-US" xlink:label="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share Repurchase Program [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis" xlink:to="lab_us-gaap_ShareRepurchaseProgramAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_eb72d479-16d7-4df1-82cb-2dd5f98720eb_terseLabel_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Foreign exchange rate changes</link:label>
    <link:label id="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_label_en-US" xlink:label="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:to="lab_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_EquipmentMember_880e61b4-f496-4d2a-9293-5e4fb94236af_verboseLabel_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Manufacturing Test Equipment [Member]</link:label>
    <link:label id="lab_us-gaap_EquipmentMember_label_en-US" xlink:label="lab_us-gaap_EquipmentMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Equipment [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_EquipmentMember" xlink:to="lab_us-gaap_EquipmentMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_957d02d3-c804-4f1a-881a-e1470f0ceab0_terseLabel_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment income</link:label>
    <link:label id="lab_us-gaap_InvestmentIncomeNonoperating_label_en-US" xlink:label="lab_us-gaap_InvestmentIncomeNonoperating" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Investment Income, Nonoperating</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_InvestmentIncomeNonoperating" xlink:to="lab_us-gaap_InvestmentIncomeNonoperating" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_9de5932d-ead0-4c5d-83f3-af3bc61160dd_terseLabel_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product cost of revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_label_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Cost Of Revenue [Member]</link:label>
    <link:label id="lab_cgnx_ProductCostOfRevenueMember_documentation_en-US" xlink:label="lab_cgnx_ProductCostOfRevenueMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product cost of revenue.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember" xlink:href="cgnx-20231231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductCostOfRevenueMember" xlink:to="lab_cgnx_ProductCostOfRevenueMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_732bf4ea-622f-434d-9d23-0f2bb131276f_terseLabel_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock-based compensation expense</link:label>
    <link:label id="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_label_en-US" xlink:label="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">APIC, Share-Based Payment Arrangement, Increase for Cost Recognition</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:to="lab_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Restructuring and Related Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:to="lab_us-gaap_RestructuringAndRelatedActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_4e353867-bf73-4c74-9cba-21dbf031067b_terseLabel_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Vested, weighted-average exercise price</link:label>
    <link:label id="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_label_en-US" xlink:label="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:to="lab_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonNeosMember_terseLabel_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-NEOs</link:label>
    <link:label id="lab_ecd_NonNeosMember_label_en-US" xlink:label="lab_ecd_NonNeosMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-NEOs [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonNeosMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonNeosMember" xlink:to="lab_ecd_NonNeosMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_c3e4e1c3-0389-47bf-ad8b-12ea0816c823_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Accrued expenses</link:label>
    <link:label id="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_label_en-US" xlink:label="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:to="lab_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares_a0932d61-5c99-4ab7-b1d8-1c1d0a053da1_terseLabel_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Redeemed or Called During Period, Shares</link:label>
    <link:label id="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares_label_en-US" xlink:label="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Redeemed or Called During Period, Shares</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:to="lab_us-gaap_StockRedeemedOrCalledDuringPeriodShares" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_873648c6-8299-4434-9a15-423d2f9c8d3f_terseLabel_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Cash flows from financing activities:</link:label>
    <link:label id="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_label_en-US" xlink:label="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net Cash Provided by (Used in) Financing Activities [Abstract]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:to="lab_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_359c88bd-2536-4464-95f8-3c1ff5692a0c_terseLabel_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_label_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:label id="lab_cgnx_StockRepurchaseProgramBuybackExciseTax_documentation_en-US" xlink:label="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Stock Repurchase Program, Buyback Excise Tax</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:to="lab_cgnx_StockRepurchaseProgramBuybackExciseTax" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_NonPeoNeoMember_terseLabel_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO</link:label>
    <link:label id="lab_ecd_NonPeoNeoMember_label_en-US" xlink:label="lab_ecd_NonPeoNeoMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-PEO NEO [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_NonPeoNeoMember" xlink:to="lab_ecd_NonPeoNeoMember" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_d0f0395e-9687-4135-ae9d-97ad7ba1014a_terseLabel_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Hardware and Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_label_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Hardware And Software [Member]</link:label>
    <link:label id="lab_cgnx_ComputerHardwareAndSoftwareMember_documentation_en-US" xlink:label="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Computer Hardware and Software Member.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember" xlink:href="cgnx-20231231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ComputerHardwareAndSoftwareMember" xlink:to="lab_cgnx_ComputerHardwareAndSoftwareMember" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_AdjToCompAxis_terseLabel_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation:</link:label>
    <link:label id="lab_ecd_AdjToCompAxis_label_en-US" xlink:label="lab_ecd_AdjToCompAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Adjustment to Compensation [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="lab_ecd_AdjToCompAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_73642011-03c3-4dc2-94e6-27e4a98147fe_terseLabel_en-US" xlink:label="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred payments related to Sualab Co., Ltd. acquisition</link:label>
    <link:label id="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_label_en-US" xlink:label="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Other Deferred Compensation Arrangements, Liability, Current</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:to="lab_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_dbb94381-4c2d-4fdc-b1a0-b38bd66a9133_terseLabel_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_label_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product Warranty Period</link:label>
    <link:label id="lab_cgnx_ProductWarrantyPeriod_documentation_en-US" xlink:label="lab_cgnx_ProductWarrantyPeriod" xlink:role="http://www.xbrl.org/2003/role/documentation" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Product warranty period.</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod" xlink:href="cgnx-20231231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_cgnx_ProductWarrantyPeriod" xlink:to="lab_cgnx_ProductWarrantyPeriod" xlink:type="arc" order="1"/>
    <link:label id="lab_srt_StatementScenarioAxis_4e53a8ab-48b3-41d5-b636-eae5d187cb8c_terseLabel_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:label id="lab_srt_StatementScenarioAxis_label_en-US" xlink:label="lab_srt_StatementScenarioAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Scenario [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_srt_StatementScenarioAxis" xlink:to="lab_srt_StatementScenarioAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_cac43b60-1d96-4176-a9e0-e011bcbf2ad9_terseLabel_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Non-current investments, allowance for credit losses</link:label>
    <link:label id="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_label_en-US" xlink:label="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Debt Securities, Available-for-Sale, Allowance for Credit Loss, Noncurrent</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:to="lab_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_13da8d80-3385-4f67-80d0-0f747a6888e4_terseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basic (in shares)</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_f51962b7-3d73-479f-b7be-0c0a16ee8393_verboseLabel_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/verboseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Basic weighted-average common shares outstanding</link:label>
    <link:label id="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_label_en-US" xlink:label="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Weighted Average Number of Shares Outstanding, Basic</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:to="lab_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_aed9674c-9c2f-4472-a2aa-8f65dfcdf296_terseLabel_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Reserve for Uncollectible Accounts Receivable and Sales Return [Member]</link:label>
    <link:label id="lab_us-gaap_UncollectibleReceivablesMember_label_en-US" xlink:label="lab_us-gaap_UncollectibleReceivablesMember" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Uncollectible Receivables [Member]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_UncollectibleReceivablesMember" xlink:to="lab_us-gaap_UncollectibleReceivablesMember" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_62e8b097-8869-43ec-8a2a-83e0e4dcdb33_negatedTerseLabel_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2009/role/negatedTerseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Amortization</link:label>
    <link:label id="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_label_en-US" xlink:label="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Deferred Tax Liabilities, Property, Plant and Equipment</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:to="lab_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_398d0fe9-55fc-4e43-9971-f7171b1dbe24_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskByBenchmarkAxis_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk Benchmark [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:to="lab_us-gaap_ConcentrationRiskByBenchmarkAxis" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_f9202a15-2d58-409b-94e2-98a38fb6b33a_terseLabel_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Net payments from issuance of common stock under stock plans</link:label>
    <link:label id="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_label_en-US" xlink:label="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:to="lab_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions" xlink:type="arc" order="1"/>
    <link:label id="lab_ecd_PvpTable_terseLabel_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure</link:label>
    <link:label id="lab_ecd_PvpTable_label_en-US" xlink:label="lab_ecd_PvpTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Pay vs Performance Disclosure [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_ecd_PvpTable" xlink:to="lab_ecd_PvpTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_StatementLineItems_7e8046a5-7617-48bf-be32-327bc3b3c1b8_terseLabel_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:label id="lab_us-gaap_StatementLineItems_label_en-US" xlink:label="lab_us-gaap_StatementLineItems" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Statement [Line Items]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_StatementLineItems" xlink:to="lab_us-gaap_StatementLineItems" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_fd5662c5-9d87-4189-8c69-439150a63616_terseLabel_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:label id="lab_us-gaap_ConcentrationRiskTable_label_en-US" xlink:label="lab_us-gaap_ConcentrationRiskTable" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Concentration Risk [Table]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_ConcentrationRiskTable" xlink:to="lab_us-gaap_ConcentrationRiskTable" xlink:type="arc" order="1"/>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_36b60bb5-641a-44cd-b7d8-1abaa20e4e66_terseLabel_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/terseLabel" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:label id="lab_us-gaap_TaxCreditCarryforwardAxis_label_en-US" xlink:label="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:role="http://www.xbrl.org/2003/role/label" xlink:type="resource" xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:lang="en-US">Tax Credit Carryforward [Axis]</link:label>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:labelArc xlink:arcrole="http://www.xbrl.org/2003/arcrole/concept-label" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis" xlink:to="lab_us-gaap_TaxCreditCarryforwardAxis" xlink:type="arc" order="1"/>
  </link:labelLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EX-101.PRE
<SEQUENCE>13
<FILENAME>cgnx-20231231_pre.xml
<DESCRIPTION>XBRL TAXONOMY EXTENSION PRESENTATION LINKBASE DOCUMENT
<TEXT>
<XBRL>
<?xml version="1.0" encoding="UTF-8"?>

<!--XBRL Document Created with the Workiva Platform-->
<!--Copyright 2024 Workiva-->
<!--r:277675e4-6a1f-436c-b28b-2310559dede0,g:0aa79d6e-08a3-463e-9769-9d2f36bbe043-->
<link:linkbase xmlns:link="http://www.xbrl.org/2003/linkbase" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd">
  <link:roleRef roleURI="http://cognex.com/role/CoverPage" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CoverPage"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CoverPage" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CoverAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentType_36eb9ae1-3280-410b-9c88-3f44cfe268f6" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentType"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentType_36eb9ae1-3280-410b-9c88-3f44cfe268f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentAnnualReport_86dcbf11-02d7-4611-a3c9-dcb1e7e9f666" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentAnnualReport"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentAnnualReport_86dcbf11-02d7-4611-a3c9-dcb1e7e9f666" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentPeriodEndDate_868e57e9-ac90-4879-a310-fe64ec23d61e" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentPeriodEndDate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentPeriodEndDate_868e57e9-ac90-4879-a310-fe64ec23d61e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentTransitionReport_b289227a-6889-430c-b932-8434d7043574" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentTransitionReport"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentTransitionReport_b289227a-6889-430c-b932-8434d7043574" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFileNumber_5a41a2f5-fd09-4a3d-bd19-733f1687bb8a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFileNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityFileNumber_5a41a2f5-fd09-4a3d-bd19-733f1687bb8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityRegistrantName_0e56c32e-0acb-41dc-bbe6-ba4341693369" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityRegistrantName"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityRegistrantName_0e56c32e-0acb-41dc-bbe6-ba4341693369" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityIncorporationStateCountryCode_f1a57b8d-231e-4995-850b-980ae8d722a0" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityIncorporationStateCountryCode"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityIncorporationStateCountryCode_f1a57b8d-231e-4995-850b-980ae8d722a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityTaxIdentificationNumber_9e97a5a4-7b14-40c8-90e1-eaba5a8c36ec" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityTaxIdentificationNumber"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityTaxIdentificationNumber_9e97a5a4-7b14-40c8-90e1-eaba5a8c36ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressAddressLine1_bd477520-2648-4f50-9f21-1a672a96ece8" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressAddressLine1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityAddressAddressLine1_bd477520-2648-4f50-9f21-1a672a96ece8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressCityOrTown_c003f7e3-e4fa-49b5-8fed-44454d3d3b29" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressCityOrTown"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityAddressCityOrTown_c003f7e3-e4fa-49b5-8fed-44454d3d3b29" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressStateOrProvince_225a7f36-ad6d-4f47-adbc-f6f4438b308a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressStateOrProvince"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityAddressStateOrProvince_225a7f36-ad6d-4f47-adbc-f6f4438b308a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityAddressPostalZipCode_e69e4170-f99b-40e3-a3a1-1e37d44c7a10" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityAddressPostalZipCode"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityAddressPostalZipCode_e69e4170-f99b-40e3-a3a1-1e37d44c7a10" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CityAreaCode_6696c022-3c9a-4bb9-b5d9-f0a128d18638" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CityAreaCode"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_CityAreaCode_6696c022-3c9a-4bb9-b5d9-f0a128d18638" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_LocalPhoneNumber_723f2312-7927-475f-a652-a323a11f8a52" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_LocalPhoneNumber"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_LocalPhoneNumber_723f2312-7927-475f-a652-a323a11f8a52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_Security12bTitle_378b6825-fe6e-43e9-91ef-2ec6d0f9c27b" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_Security12bTitle"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_Security12bTitle_378b6825-fe6e-43e9-91ef-2ec6d0f9c27b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_TradingSymbol_060520ac-5c78-49d9-85cc-f9848ff6f9cb" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_TradingSymbol"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_TradingSymbol_060520ac-5c78-49d9-85cc-f9848ff6f9cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_SecurityExchangeName_94bbd7e8-4b2f-439f-8c9a-ec0e54d2c05b" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_SecurityExchangeName"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_SecurityExchangeName_94bbd7e8-4b2f-439f-8c9a-ec0e54d2c05b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityWellKnownSeasonedIssuer_99c92129-f8d3-47cd-8285-a6f0eae8a2b6" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityWellKnownSeasonedIssuer"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityWellKnownSeasonedIssuer_99c92129-f8d3-47cd-8285-a6f0eae8a2b6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityVoluntaryFilers_10f9f9d3-2546-43a1-9303-6a31c00ae77f" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityVoluntaryFilers"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityVoluntaryFilers_10f9f9d3-2546-43a1-9303-6a31c00ae77f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCurrentReportingStatus_38c412d9-dc4c-4297-9119-3918d7285ad6" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCurrentReportingStatus"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityCurrentReportingStatus_38c412d9-dc4c-4297-9119-3918d7285ad6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityInteractiveDataCurrent_53147b05-db77-454e-894d-31f6f18d5856" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityInteractiveDataCurrent"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityInteractiveDataCurrent_53147b05-db77-454e-894d-31f6f18d5856" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityFilerCategory_52bfa0d8-12a5-47df-abac-411bb8c147d7" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityFilerCategory"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityFilerCategory_52bfa0d8-12a5-47df-abac-411bb8c147d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntitySmallBusiness_47ef355a-a43f-49a5-be76-71e1cdb6847a" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntitySmallBusiness"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntitySmallBusiness_47ef355a-a43f-49a5-be76-71e1cdb6847a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityEmergingGrowthCompany_40707966-2a90-4dac-8106-6c1a48b17e37" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityEmergingGrowthCompany"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityEmergingGrowthCompany_40707966-2a90-4dac-8106-6c1a48b17e37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_IcfrAuditorAttestationFlag_f1623f6f-482c-47b3-805a-88f0d7253d20" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_IcfrAuditorAttestationFlag"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_IcfrAuditorAttestationFlag_f1623f6f-482c-47b3-805a-88f0d7253d20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityShellCompany_0d73388c-3381-4e4b-98e1-f78cd01be127" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityShellCompany"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityShellCompany_0d73388c-3381-4e4b-98e1-f78cd01be127" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityPublicFloat_4777c0d3-409b-4caa-9636-ba2f396d2149" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityPublicFloat"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityPublicFloat_4777c0d3-409b-4caa-9636-ba2f396d2149" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCommonStockSharesOutstanding_9b2c991c-f6f1-460c-9c9c-b81cd7afa7c0" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCommonStockSharesOutstanding"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityCommonStockSharesOutstanding_9b2c991c-f6f1-460c-9c9c-b81cd7afa7c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_EntityCentralIndexKey_ffaf6800-af17-4c92-b07a-3a356cf6224c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_EntityCentralIndexKey"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_EntityCentralIndexKey_ffaf6800-af17-4c92-b07a-3a356cf6224c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_CurrentFiscalYearEndDate_acb9a649-7e64-4c58-af62-c9738951611d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_CurrentFiscalYearEndDate"/>
    <link:presentationArc order="30" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_CurrentFiscalYearEndDate_acb9a649-7e64-4c58-af62-c9738951611d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalYearFocus_f76f1049-059a-4486-b924-347e7c3c5d50" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalYearFocus"/>
    <link:presentationArc order="31" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentFiscalYearFocus_f76f1049-059a-4486-b924-347e7c3c5d50" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFiscalPeriodFocus_53705c97-3b7d-4473-9565-5ddb38833a7c" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFiscalPeriodFocus"/>
    <link:presentationArc order="32" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentFiscalPeriodFocus_53705c97-3b7d-4473-9565-5ddb38833a7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AmendmentFlag_035a6d38-1238-427b-9ca4-c417c1772f95" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AmendmentFlag"/>
    <link:presentationArc order="33" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_AmendmentFlag_035a6d38-1238-427b-9ca4-c417c1772f95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_DocumentFinStmtErrorCorrectionFlag_1d8d4f0b-e4f1-4b89-a0b6-a20f798ead33" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_DocumentFinStmtErrorCorrectionFlag"/>
    <link:presentationArc order="34" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_dei_CoverAbstract_d2e62952-2ef4-4ad1-b8f6-3b362621c389" xlink:to="loc_dei_DocumentFinStmtErrorCorrectionFlag_1d8d4f0b-e4f1-4b89-a0b6-a20f798ead33" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AuditInformation" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AuditInformation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AuditInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AuditInformationAbstract_dc68270d-5563-4519-a6e2-5cb25ddf49db" xlink:href="cgnx-20231231.xsd#cgnx_AuditInformationAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorName_257f57a2-beab-44fe-b60b-12f85a67ce9d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorName"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_dc68270d-5563-4519-a6e2-5cb25ddf49db" xlink:to="loc_dei_AuditorName_257f57a2-beab-44fe-b60b-12f85a67ce9d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorLocation_0002de4a-0c0b-438c-b7d7-5ea48e1d43ac" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorLocation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_dc68270d-5563-4519-a6e2-5cb25ddf49db" xlink:to="loc_dei_AuditorLocation_0002de4a-0c0b-438c-b7d7-5ea48e1d43ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_dei_AuditorFirmId_27654ee3-b70a-4852-9811-0b331936132d" xlink:href="https://xbrl.sec.gov/dei/2023/dei-2023.xsd#dei_AuditorFirmId"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_AuditInformationAbstract_dc68270d-5563-4519-a6e2-5cb25ddf49db" xlink:to="loc_dei_AuditorFirmId_27654ee3-b70a-4852-9811-0b331936132d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFOPERATIONS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_872a498d-f33d-477c-b678-81b80027fba4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_872a498d-f33d-477c-b678-81b80027fba4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostOfGoodsAndServicesSold_a30c87a0-13cf-4a24-b719-e79ac168ec84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostOfGoodsAndServicesSold"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_CostOfGoodsAndServicesSold_a30c87a0-13cf-4a24-b719-e79ac168ec84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GrossProfit_6f64c9c5-0967-407d-9efa-5c112220d525" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GrossProfit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_GrossProfit_6f64c9c5-0967-407d-9efa-5c112220d525" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpense_e703c439-f203-40b9-a90c-f83df387949f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpense"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpense_e703c439-f203-40b9-a90c-f83df387949f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SellingGeneralAndAdministrativeExpense_31888d0a-6f63-4c19-988f-705027a8af64" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SellingGeneralAndAdministrativeExpense"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_SellingGeneralAndAdministrativeExpense_31888d0a-6f63-4c19-988f-705027a8af64" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LossGainFromCatastrophes_5a5ea5a4-cc47-4927-8993-8b9ec111e4b5" xlink:href="cgnx-20231231.xsd#cgnx_LossGainFromCatastrophes"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_cgnx_LossGainFromCatastrophes_5a5ea5a4-cc47-4927-8993-8b9ec111e4b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_0a55bb1c-c5de-4456-9546-4f9df0fd59ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_RestructuringCharges_0a55bb1c-c5de-4456-9546-4f9df0fd59ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingIncomeLoss_3ef632ef-0bb2-4537-8d6b-12f39f91109a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingIncomeLoss"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_OperatingIncomeLoss_3ef632ef-0bb2-4537-8d6b-12f39f91109a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_0b7db54d-1f83-4dff-8c5d-32faff24ba9c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionGainLossBeforeTax"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_ForeignCurrencyTransactionGainLossBeforeTax_0b7db54d-1f83-4dff-8c5d-32faff24ba9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentIncomeNonoperating_4a71be8f-0df0-421a-8bbc-871365f48e98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentIncomeNonoperating"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_InvestmentIncomeNonoperating_4a71be8f-0df0-421a-8bbc-871365f48e98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherNonoperatingIncomeExpense_4ceb59a4-22b1-4884-89e3-9b60bce7b182" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherNonoperatingIncomeExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_OtherNonoperatingIncomeExpense_4ceb59a4-22b1-4884-89e3-9b60bce7b182" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_a1f415db-ecc2-476c-8b51-8533f22ea638" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest_a1f415db-ecc2-476c-8b51-8533f22ea638" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_72886c64-6554-42ac-be24-37a386d5b463" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_72886c64-6554-42ac-be24-37a386d5b463" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_e99c6269-8283-419c-b43d-3745b455517e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_NetIncomeLoss_e99c6269-8283-419c-b43d-3745b455517e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasicAbstract_6fb1f6ef-34cf-448e-9769-a3371d1bc5e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasicAbstract"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_EarningsPerShareBasicAbstract_6fb1f6ef-34cf-448e-9769-a3371d1bc5e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareBasic_72796cf3-4f11-4fda-b644-1e5065e671ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareBasicAbstract_6fb1f6ef-34cf-448e-9769-a3371d1bc5e1" xlink:to="loc_us-gaap_EarningsPerShareBasic_72796cf3-4f11-4fda-b644-1e5065e671ee" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDilutedAbstract_d8ae06f5-2410-423c-982c-a335692735a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDilutedAbstract"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_EarningsPerShareDilutedAbstract_d8ae06f5-2410-423c-982c-a335692735a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareDiluted_2ced878d-24d0-44ab-bb45-18e076508946" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareDiluted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareDilutedAbstract_d8ae06f5-2410-423c-982c-a335692735a0" xlink:to="loc_us-gaap_EarningsPerShareDiluted_2ced878d-24d0-44ab-bb45-18e076508946" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_422cc9ac-cb36-478d-9276-15bed9cab5c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_422cc9ac-cb36-478d-9276-15bed9cab5c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_398ad9cf-ef98-40f0-b23f-5c59280569c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_422cc9ac-cb36-478d-9276-15bed9cab5c8" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_398ad9cf-ef98-40f0-b23f-5c59280569c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_02a37bad-7e6f-48b6-bc73-3adb74735b1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract_422cc9ac-cb36-478d-9276-15bed9cab5c8" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_02a37bad-7e6f-48b6-bc73-3adb74735b1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4dbe2c10-ef08-4496-a114-3c64891393e9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementAbstract_3c8020d2-8829-465b-a367-74f3248f6bcf" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_4dbe2c10-ef08-4496-a114-3c64891393e9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_c9bcaa20-9446-46e0-85de-b619c0949e37" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:to="loc_us-gaap_NetIncomeLoss_c9bcaa20-9446-46e0-85de-b619c0949e37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_b27956cb-c9c3-40b7-81a2-2f75722c47c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_b27956cb-c9c3-40b7-81a2-2f75722c47c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_793d35b8-753e-43e5-8492-9828753a1087" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_b27956cb-c9c3-40b7-81a2-2f75722c47c2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_793d35b8-753e-43e5-8492-9828753a1087" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8a150f31-2d3b-43ac-a47b-3671201393eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_b27956cb-c9c3-40b7-81a2-2f75722c47c2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_8a150f31-2d3b-43ac-a47b-3671201393eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_9dc6c425-bffb-4662-9d61-edf31faa0bae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract_b27956cb-c9c3-40b7-81a2-2f75722c47c2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent_9dc6c425-bffb-4662-9d61-edf31faa0bae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CurrencytranslationadjustmentAbstract_3df7a5f5-dc1a-49c7-8f30-8b576f3a35a5" xlink:href="cgnx-20231231.xsd#cgnx_CurrencytranslationadjustmentAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:to="loc_cgnx_CurrencytranslationadjustmentAbstract_3df7a5f5-dc1a-49c7-8f30-8b576f3a35a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_a003d3cd-478f-4fe6-9866-20713eca3acf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_3df7a5f5-dc1a-49c7-8f30-8b576f3a35a5" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_a003d3cd-478f-4fe6-9866-20713eca3acf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_884844d8-4921-4953-93ad-6646fe16165d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CurrencytranslationadjustmentAbstract_3df7a5f5-dc1a-49c7-8f30-8b576f3a35a5" xlink:to="loc_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent_884844d8-4921-4953-93ad-6646fe16165d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_d8caa558-fa18-4dd4-be0b-3b93a5f3e123" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent_d8caa558-fa18-4dd4-be0b-3b93a5f3e123" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomeNetOfTax_c0dbb982-3a61-42cd-8fc2-ee0f8db59313" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomeNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_78a212d1-cbac-4449-881c-11b6c06f3f5e" xlink:to="loc_us-gaap_ComprehensiveIncomeNetOfTax_c0dbb982-3a61-42cd-8fc2-ee0f8db59313" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_4b03ba13-6552-47ea-9b73-9bb7231fd9ae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_a0cd45bc-0dd7-4bcd-ae1d-6efa4fc2faf1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract_4b03ba13-6552-47ea-9b73-9bb7231fd9ae" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_a0cd45bc-0dd7-4bcd-ae1d-6efa4fc2faf1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDBALANCESHEETS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_59580694-cb45-42d5-85de-1e6c6de8d606" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_59580694-cb45-42d5-85de-1e6c6de8d606" xlink:to="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fe5a9510-16b4-468e-a56d-caaa65df3bb3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_fe5a9510-16b4-468e-a56d-caaa65df3bb3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_b28507a3-e880-4e1c-9e9c-533a8f7ece3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_b28507a3-e880-4e1c-9e9c-533a8f7ece3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsReceivableNetCurrent_0c4a046e-e84b-4b3e-aef2-6866738b0321" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsReceivableNetCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_AccountsReceivableNetCurrent_0c4a046e-e84b-4b3e-aef2-6866738b0321" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnbilledReceivablesCurrent_1b532db4-80e8-4ab9-9d08-9a43eba46d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnbilledReceivablesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_UnbilledReceivablesCurrent_1b532db4-80e8-4ab9-9d08-9a43eba46d98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_c7209767-955a-404b-9b21-84ad0c136c2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_InventoryNet_c7209767-955a-404b-9b21-84ad0c136c2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_f5baf87e-cb75-46bb-bb10-0d9d97b66b6e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PrepaidExpenseAndOtherAssetsCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_PrepaidExpenseAndOtherAssetsCurrent_f5baf87e-cb75-46bb-bb10-0d9d97b66b6e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsCurrent_337911ae-e514-472a-9852-9029d4f6d446" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsCurrentAbstract_aa6dfc02-8271-467b-a39d-2342967a84af" xlink:to="loc_us-gaap_AssetsCurrent_337911ae-e514-472a-9852-9029d4f6d446" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_000a1fc3-3bca-4005-b2cb-01f2f20b25bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_LongTermInvestments_000a1fc3-3bca-4005-b2cb-01f2f20b25bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_6f3805a4-db53-4b60-9dad-f3e31a00dd05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_6f3805a4-db53-4b60-9dad-f3e31a00dd05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_c87abae9-475e-4372-9fa3-9e1b5b43045e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_c87abae9-475e-4372-9fa3-9e1b5b43045e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_3321dee6-33fc-4154-bfdb-5eb72cef8555" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_Goodwill_3321dee6-33fc-4154-bfdb-5eb72cef8555" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_999edc44-21ef-48de-8931-3a7e5ca0e638" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsNetExcludingGoodwill"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_IntangibleAssetsNetExcludingGoodwill_999edc44-21ef-48de-8931-3a7e5ca0e638" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxAssetsNet_8806d04a-1b9c-487f-8c8e-ececdd7dc22b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_DeferredIncomeTaxAssetsNet_8806d04a-1b9c-487f-8c8e-ececdd7dc22b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAssetsNoncurrent_fc3a0053-3e67-429e-bb5f-d8fcf6174163" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAssetsNoncurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_OtherAssetsNoncurrent_fc3a0053-3e67-429e-bb5f-d8fcf6174163" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Assets_51b469aa-28a1-4e44-b500-04da47defdb4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Assets"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsAbstract_5710e7a9-fbd1-4a04-9686-6fcaab0065f1" xlink:to="loc_us-gaap_Assets_51b469aa-28a1-4e44-b500-04da47defdb4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquityAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_59580694-cb45-42d5-85de-1e6c6de8d606" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableCurrent_0b70edee-9eca-43b6-ad75-d3e3819c6aec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_AccountsPayableCurrent_0b70edee-9eca-43b6-ad75-d3e3819c6aec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_1da4ef8d-71ac-4234-a9be-cfcffcccc33e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_1da4ef8d-71ac-4234-a9be-cfcffcccc33e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesCurrent_524b86ec-d000-452f-99b6-6b4d4bca196d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_AccruedIncomeTaxesCurrent_524b86ec-d000-452f-99b6-6b4d4bca196d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_c40cc691-5cdf-4f58-9bae-0e817eead2c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_c40cc691-5cdf-4f58-9bae-0e817eead2c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityCurrent_0e87d05d-4f49-4916-8745-d6a883fe5a82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_OperatingLeaseLiabilityCurrent_0e87d05d-4f49-4916-8745-d6a883fe5a82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesCurrent_5873ec2f-67f3-4be8-89c5-5c064514229d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesCurrentAbstract_d48fd13a-a819-46b7-b2b7-69e6a97452f6" xlink:to="loc_us-gaap_LiabilitiesCurrent_5873ec2f-67f3-4be8-89c5-5c064514229d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_64cbba8f-b1a1-45fd-aad4-70379f86c425" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiabilityNoncurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_OperatingLeaseLiabilityNoncurrent_64cbba8f-b1a1-45fd-aad4-70379f86c425" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_7215489b-e972-42ad-9c31-0fdea3e04331" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_DeferredIncomeTaxLiabilitiesNet_7215489b-e972-42ad-9c31-0fdea3e04331" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_d54321d3-fa77-4f24-8aca-3d871be1fd76" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForUncertainTaxPositionsNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_LiabilityForUncertainTaxPositionsNoncurrent_d54321d3-fa77-4f24-8aca-3d871be1fd76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedIncomeTaxesNoncurrent_516615fe-c16e-44bc-a7e7-2d971c18112f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedIncomeTaxesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_AccruedIncomeTaxesNoncurrent_516615fe-c16e-44bc-a7e7-2d971c18112f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesNoncurrent_74d6fa34-53e6-42b2-bbd7-812531700946" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesNoncurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_OtherLiabilitiesNoncurrent_74d6fa34-53e6-42b2-bbd7-812531700946" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Liabilities_d72b8197-dc80-429b-b1f5-e65cbdf92350" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Liabilities"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_Liabilities_d72b8197-dc80-429b-b1f5-e65cbdf92350" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingencies_5ae14688-379e-47b8-adc4-1a86e2b484b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingencies"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_CommitmentsAndContingencies_5ae14688-379e-47b8-adc4-1a86e2b484b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_ab733305-e896-4fc7-962f-894e091e2195" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_ab733305-e896-4fc7-962f-894e091e2195" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7d1e05b1-5193-4b4a-81b0-33f72ed19a3f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_7d1e05b1-5193-4b4a-81b0-33f72ed19a3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquityAbstract"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockValueOutstanding_8e5b2831-f1fa-4181-bdab-b332f7525b39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockValueOutstanding"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_PreferredStockValueOutstanding_8e5b2831-f1fa-4181-bdab-b332f7525b39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockValueOutstanding_63db81d1-3691-4233-a863-58fe79d77158" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockValueOutstanding"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_CommonStockValueOutstanding_63db81d1-3691-4233-a863-58fe79d77158" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalCommonStock_84ea1c2f-656b-422a-8c73-9b326c577bea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_AdditionalPaidInCapitalCommonStock_84ea1c2f-656b-422a-8c73-9b326c577bea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f7be53af-970e-4820-8fdf-fde33a3b16c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsAccumulatedDeficit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_RetainedEarningsAccumulatedDeficit_f7be53af-970e-4820-8fdf-fde33a3b16c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_ede72792-b94f-4316-9924-87219e1a2d6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax_ede72792-b94f-4316-9924-87219e1a2d6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_fe6be0d9-fa49-4983-8f8e-a659aa8b02e5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StockholdersEquityAbstract_d175d995-8346-47a7-a417-fa4655da3345" xlink:to="loc_us-gaap_StockholdersEquity_fe6be0d9-fa49-4983-8f8e-a659aa8b02e5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesAndStockholdersEquity_f66b9f47-9023-4bf3-a463-f78bd4b2f717" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesAndStockholdersEquity"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesAndStockholdersEquityAbstract_acb3ad87-bef6-4bc4-b673-023ccf18a47e" xlink:to="loc_us-gaap_LiabilitiesAndStockholdersEquity_f66b9f47-9023-4bf3-a463-f78bd4b2f717" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDBALANCESHEETSParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfFinancialPositionAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_bf797121-2883-479e-9e8f-fda44e54b408" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent_bf797121-2883-479e-9e8f-fda44e54b408" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_10709a7a-ff34-491f-bced-a3605bc54397" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent_10709a7a-ff34-491f-bced-a3605bc54397" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_8d709206-df97-4314-b4e2-57baa13c19c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_8d709206-df97-4314-b4e2-57baa13c19c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_ddcad8bd-7103-4058-bd6f-cdc042f0eb79" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent_ddcad8bd-7103-4058-bd6f-cdc042f0eb79" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_a2166832-9dcc-439f-b976-2e90eb767a24" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent_a2166832-9dcc-439f-b976-2e90eb767a24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesIssued_d1df5469-98d6-4b71-80ed-04db0bc52fe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesIssued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_PreferredStockSharesIssued_d1df5469-98d6-4b71-80ed-04db0bc52fe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesOutstanding_4fa5e63b-2fc5-41e0-adbf-f27ce89f6bc3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesOutstanding"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_PreferredStockSharesOutstanding_4fa5e63b-2fc5-41e0-adbf-f27ce89f6bc3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_ed7dd541-0109-4d08-a8c7-964af3aff8d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_ed7dd541-0109-4d08-a8c7-964af3aff8d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_ea568398-a69d-4af8-87cf-bc1217e754dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_ea568398-a69d-4af8-87cf-bc1217e754dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_2c89a525-abe6-45f4-846d-a5c77739fe69" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_CommonStockSharesIssued_2c89a525-abe6-45f4-846d-a5c77739fe69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesOutstanding_36ad0cbd-5d12-42e8-bf73-c178d41c6e1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesOutstanding"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfFinancialPositionAbstract_c76146e7-b0f1-4a16-9089-75337af24054" xlink:to="loc_us-gaap_CommonStockSharesOutstanding_36ad0cbd-5d12-42e8-bf73-c178d41c6e1d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFCASHFLOWS"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfCashFlowsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_fbfb9146-a478-4a84-b126-63749099ee55" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_fbfb9146-a478-4a84-b126-63749099ee55" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_373dab2c-71a5-4a08-9645-702e8478008b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_fbfb9146-a478-4a84-b126-63749099ee55" xlink:to="loc_us-gaap_NetIncomeLoss_373dab2c-71a5-4a08-9645-702e8478008b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_fbfb9146-a478-4a84-b126-63749099ee55" xlink:to="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockOptionPlanExpense_0f9d3167-bae1-4b8e-b98a-0e875d896e22" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockOptionPlanExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_StockOptionPlanExpense_0f9d3167-bae1-4b8e-b98a-0e875d896e22" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Depreciation_22ffdafc-cf3a-479b-9ca2-15ce0731aecd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Depreciation"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_Depreciation_22ffdafc-cf3a-479b-9ca2-15ce0731aecd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_6d7d2910-5794-4871-b411-de4aebf31e3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfPropertyPlantEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_GainLossOnSaleOfPropertyPlantEquipment_6d7d2910-5794-4871-b411-de4aebf31e3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AmortizationOfIntangibleAssets_cf93db71-33fd-4b05-989a-10a19b785fbf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AmortizationOfIntangibleAssets"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_AmortizationOfIntangibleAssets_cf93db71-33fd-4b05-989a-10a19b785fbf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NonCashLossFromCatastrophes_ec8aefad-06a7-47f7-b81f-c5da541ee640" xlink:href="cgnx-20231231.xsd#cgnx_NonCashLossFromCatastrophes"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_cgnx_NonCashLossFromCatastrophes_ec8aefad-06a7-47f7-b81f-c5da541ee640" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExcessAndObsoleteInventoryCharges_287d5005-1ea5-4e5d-813a-df63bf26d8fd" xlink:href="cgnx-20231231.xsd#cgnx_ExcessAndObsoleteInventoryCharges"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_cgnx_ExcessAndObsoleteInventoryCharges_287d5005-1ea5-4e5d-813a-df63bf26d8fd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_d13cc782-44bf-470b-8d62-9bbbeaeec080" xlink:href="cgnx-20231231.xsd#cgnx_FairValueAdjustmentOnAcquiredInventories"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_cgnx_FairValueAdjustmentOnAcquiredInventories_d13cc782-44bf-470b-8d62-9bbbeaeec080" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_5f1089c3-3952-4006-b7c7-42257b30161c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments_5f1089c3-3952-4006-b7c7-42257b30161c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnSaleOfInvestments_109e47b4-a5c4-4c7c-9c00-3713fc95d465" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnSaleOfInvestments"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_GainLossOnSaleOfInvestments_109e47b4-a5c4-4c7c-9c00-3713fc95d465" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_f52541a3-4089-4bc1-bc1e-fe6195b1ccd9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInDeferredIncomeTaxes"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes_f52541a3-4089-4bc1-bc1e-fe6195b1ccd9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_38e38108-64d7-49fa-8f07-44290e618dd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsReceivable"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsReceivable_38e38108-64d7-49fa-8f07-44290e618dd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_c2e2a5f9-9684-4a57-b434-1820050618f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerAsset"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerAsset_c2e2a5f9-9684-4a57-b434-1820050618f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInInventories_286d78df-1dbb-4d42-92cc-ac18a18b3a8e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInInventories"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInInventories_286d78df-1dbb-4d42-92cc-ac18a18b3a8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_98ef56dd-7c02-444c-81b2-804b8893118f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets_98ef56dd-7c02-444c-81b2-804b8893118f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccountsPayable_dd523ab0-69cf-459a-872a-a10ed698b52b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccountsPayable"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInAccountsPayable_dd523ab0-69cf-459a-872a-a10ed698b52b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_c1bcde39-4805-4cca-993b-8c6911080b73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedLiabilities"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedLiabilities_c1bcde39-4805-4cca-993b-8c6911080b73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_aec96439-1764-4921-b5c5-a0a67d6ea8f9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable_aec96439-1764-4921-b5c5-a0a67d6ea8f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2180e437-f200-4482-84eb-c7cc3a860644" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInContractWithCustomerLiability"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInContractWithCustomerLiability_2180e437-f200-4482-84eb-c7cc3a860644" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_4e9ed0f1-d11f-465b-b40d-b02d1c84f53b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract_86e30a74-722f-4816-ad56-19572482d66e" xlink:to="loc_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet_4e9ed0f1-d11f-465b-b40d-b02d1c84f53b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_27b3c204-68fc-4fb5-b332-c439c9ccd579" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract_fbfb9146-a478-4a84-b126-63749099ee55" xlink:to="loc_us-gaap_NetCashProvidedByUsedInOperatingActivities_27b3c204-68fc-4fb5-b332-c439c9ccd579" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireInvestments_414afc61-d84d-4d8e-95ec-f3860138e682" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireInvestments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:to="loc_us-gaap_PaymentsToAcquireInvestments_414afc61-d84d-4d8e-95ec-f3860138e682" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_98c967e6-5d4c-4d18-85d3-25bbb6f2f7c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:to="loc_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments_98c967e6-5d4c-4d18-85d3-25bbb6f2f7c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_b15ccf4c-4ed7-4061-ba6d-a6803d0e58ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquirePropertyPlantAndEquipment"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:to="loc_us-gaap_PaymentsToAcquirePropertyPlantAndEquipment_b15ccf4c-4ed7-4061-ba6d-a6803d0e58ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_316cce2f-fe88-406d-bc17-697872359d6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_316cce2f-fe88-406d-bc17-697872359d6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_ca6f98f8-f14c-4664-af23-f3a3ace5df3c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInInvestingActivities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract_7a9b3e76-5d7b-465f-abbb-4355ad3c3a4f" xlink:to="loc_us-gaap_NetCashProvidedByUsedInInvestingActivities_ca6f98f8-f14c-4664-af23-f3a3ace5df3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_246892a3-b6f5-4fbd-8f6d-fe969daaf5dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:to="loc_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions_246892a3-b6f5-4fbd-8f6d-fe969daaf5dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_17a2ebd1-8216-4754-a3de-284124c128dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRepurchaseOfCommonStock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:to="loc_us-gaap_PaymentsForRepurchaseOfCommonStock_17a2ebd1-8216-4754-a3de-284124c128dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividendsCommonStock_08820512-4fef-4b5f-a1a4-6f68920c5493" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividendsCommonStock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:to="loc_us-gaap_PaymentsOfDividendsCommonStock_08820512-4fef-4b5f-a1a4-6f68920c5493" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0a43acc8-2629-464d-86a2-43406778f64e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetCashProvidedByUsedInFinancingActivities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract_e7901720-735e-4e37-96b0-58035c38120c" xlink:to="loc_us-gaap_NetCashProvidedByUsedInFinancingActivities_0a43acc8-2629-464d-86a2-43406778f64e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c609e0c9-8e99-4ec7-9f06-40fa7182271f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_c609e0c9-8e99-4ec7-9f06-40fa7182271f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_7aacd614-2921-42ce-8791-6841fc4cca57" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect_7aacd614-2921-42ce-8791-6841fc4cca57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_875ee4d2-9802-4ed5-b6a4-7fb56c19be7c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_875ee4d2-9802-4ed5-b6a4-7fb56c19be7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_be8b6f0b-4cff-4cb4-a550-91ef566146ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfCashFlowsAbstract_f66266ea-acf3-4dfd-b64a-80f2fd8acb9e" xlink:to="loc_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents_be8b6f0b-4cff-4cb4-a550-91ef566146ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_beabcf38-b579-4441-9279-12341f05c967" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_beabcf38-b579-4441-9279-12341f05c967" xlink:to="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_2edfdb58-3290-46b7-9906-b186fb1c9d5e" xlink:to="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockMember_d23b695c-b65d-4c9f-b572-f367a9aae8e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_CommonStockMember_d23b695c-b65d-4c9f-b572-f367a9aae8e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdditionalPaidInCapitalMember_f5883e1f-2272-4f04-9278-b9de46311194" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdditionalPaidInCapitalMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_AdditionalPaidInCapitalMember_f5883e1f-2272-4f04-9278-b9de46311194" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RetainedEarningsMember_8b976740-898d-4f49-a28b-77e2a0cdcd95" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RetainedEarningsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_RetainedEarningsMember_8b976740-898d-4f49-a28b-77e2a0cdcd95" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5b4f8965-b1d0-483d-8945-11dd0a58c9a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_8de9e4ad-02dd-4885-a661-4b4441aa89fc" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_5b4f8965-b1d0-483d-8945-11dd0a58c9a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementTable_c9df8f38-9f6f-418d-aab6-f011501be9c7" xlink:to="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncreaseDecreaseInStockholdersEquityRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementLineItems_822b4e98-813e-43cb-af1a-0b91f2f9306b" xlink:to="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_a49ed8eb-56be-4532-8477-3fa8ee103fc2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockholdersEquity_a49ed8eb-56be-4532-8477-3fa8ee103fc2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_589fdc13-79be-4d72-a738-4de4f79948d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_CommonStockSharesIssued_589fdc13-79be-4d72-a738-4de4f79948d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_49cf2535-c532-4114-9177-67e2631cff30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised_49cf2535-c532-4114-9177-67e2631cff30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_a5ff17be-8cc1-48c9-8944-05e504df635f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_a5ff17be-8cc1-48c9-8944-05e504df635f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_b84c9831-ef4a-48a6-ae40-4d5641cdda39" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_b84c9831-ef4a-48a6-ae40-4d5641cdda39" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_7e41a19b-5238-418d-8ca8-fc2d992fb49a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_7e41a19b-5238-418d-8ca8-fc2d992fb49a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_d03e2dbc-3dfa-404d-88f5-e9cf83b75883" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue_d03e2dbc-3dfa-404d-88f5-e9cf83b75883" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsCommonStockCash_96dd9896-5368-4a50-b681-0e496c97a0d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsCommonStockCash"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_DividendsCommonStockCash_96dd9896-5368-4a50-b681-0e496c97a0d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss_ff5f6f24-3be4-400d-a636-4813032bc358" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_NetIncomeLoss_ff5f6f24-3be4-400d-a636-4813032bc358" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_f5586852-d84a-41c0-bf22-81a78427e162" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax_f5586852-d84a-41c0-bf22-81a78427e162" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_2a148543-59cf-4a88-ba3d-489534ded7fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_2a148543-59cf-4a88-ba3d-489534ded7fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2f987aa3-7c90-4a38-9a02-cf5fc0f5c3ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_2f987aa3-7c90-4a38-9a02-cf5fc0f5c3ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_5236e393-fe58-414b-b1b5-253373804061" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax_5236e393-fe58-414b-b1b5-253373804061" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockholdersEquity_d9bdb37b-5693-408e-8948-a6654d96c388" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockholdersEquity"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_StockholdersEquity_d9bdb37b-5693-408e-8948-a6654d96c388" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesIssued_6a04371f-b76f-4dea-84a5-f5ea415167d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesIssued"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward_9157a9e4-8185-49e3-b3b1-eea349070db2" xlink:to="loc_us-gaap_CommonStockSharesIssued_6a04371f-b76f-4dea-84a5-f5ea415167d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementOfStockholdersEquityAbstract_5f80ecb9-697a-485a-8ca4-976e0fcae37f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementOfStockholdersEquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_d59158de-237c-415c-a386-92fd7dde3212" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_5f80ecb9-697a-485a-8ca4-976e0fcae37f" xlink:to="loc_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax_d59158de-237c-415c-a386-92fd7dde3212" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_af62c18f-6b6d-4072-b885-3e1e1831fd3d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementOfStockholdersEquityAbstract_5f80ecb9-697a-485a-8ca4-976e0fcae37f" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax_af62c18f-6b6d-4072-b885-3e1e1831fd3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPolicies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_752635f7-0933-481d-8fc8-66053b1b0522" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SignificantAccountingPoliciesTextBlock_44633c6c-d831-4414-92ff-809bfd6d36aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SignificantAccountingPoliciesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_752635f7-0933-481d-8fc8-66053b1b0522" xlink:to="loc_us-gaap_SignificantAccountingPoliciesTextBlock_44633c6c-d831-4414-92ff-809bfd6d36aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/NewPronouncements" xlink:type="simple" xlink:href="cgnx-20231231.xsd#NewPronouncements"/>
  <link:presentationLink xlink:role="http://cognex.com/role/NewPronouncements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_78117a4b-92fd-4ebb-ace2-41f9a18487f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingChangesAndErrorCorrectionsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_b63387d0-db85-4d94-90d7-be2522530faf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingChangesAndErrorCorrectionsAbstract_78117a4b-92fd-4ebb-ace2-41f9a18487f3" xlink:to="loc_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock_b63387d0-db85-4d94-90d7-be2522530faf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurements" xlink:type="simple" xlink:href="cgnx-20231231.xsd#FairValueMeasurements"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_db475191-772c-484a-9c4f-a9f1fd84fbca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresTextBlock_45437f5d-8d82-4cd5-90e6-b894f4b2864b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_db475191-772c-484a-9c4f-a9f1fd84fbca" xlink:to="loc_us-gaap_FairValueDisclosuresTextBlock_45437f5d-8d82-4cd5-90e6-b894f4b2864b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestments"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_1ff51f45-1d00-4cb2-9cca-935a5774be41" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_0c2e82bd-d7a0-4f0a-b189-39d596018a85" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_1ff51f45-1d00-4cb2-9cca-935a5774be41" xlink:to="loc_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock_0c2e82bd-d7a0-4f0a-b189-39d596018a85" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/Inventories" xlink:type="simple" xlink:href="cgnx-20231231.xsd#Inventories"/>
  <link:presentationLink xlink:role="http://cognex.com/role/Inventories" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_e55330ff-c112-4b49-9dc5-9b78310fb2dd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureTextBlock_f2cb0143-6963-493e-82db-6621a5158960" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_e55330ff-c112-4b49-9dc5-9b78310fb2dd" xlink:to="loc_us-gaap_InventoryDisclosureTextBlock_f2cb0143-6963-493e-82db-6621a5158960" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipment" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipment"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipment" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_5d2c74e1-1d73-4958-949e-74eec254b82b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_ecae165f-1084-4bce-add3-7b8a19a4d7e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_5d2c74e1-1d73-4958-949e-74eec254b82b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock_ecae165f-1084-4bce-add3-7b8a19a4d7e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesLeases" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesLeases"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesLeases" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_7cec01fc-9761-4ce3-a65d-02a537f3a4a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeasesTextBlock_7f0f3985-6a59-49c5-8ecf-608b6fa91cc4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeasesTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_7cec01fc-9761-4ce3-a65d-02a537f3a4a0" xlink:to="loc_us-gaap_LesseeOperatingLeasesTextBlock_7f0f3985-6a59-49c5-8ecf-608b6fa91cc4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/Goodwill" xlink:type="simple" xlink:href="cgnx-20231231.xsd#Goodwill"/>
  <link:presentationLink xlink:role="http://cognex.com/role/Goodwill" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_692e377e-56ab-41d1-9d52-82d0f352b329" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillDisclosureTextBlock_4cd7d456-b34e-4871-a2cd-33ade52ff87a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_692e377e-56ab-41d1-9d52-82d0f352b329" xlink:to="loc_us-gaap_GoodwillDisclosureTextBlock_4cd7d456-b34e-4871-a2cd-33ade52ff87a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssets" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssets"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssets" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6414a50d-cc67-4e33-8b51-feb7701e1832" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_26cd2f14-dd14-4392-8340-69bafc98e03b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_6414a50d-cc67-4e33-8b51-feb7701e1832" xlink:to="loc_us-gaap_IntangibleAssetsDisclosureTextBlock_26cd2f14-dd14-4392-8340-69bafc98e03b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpenses" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AccruedExpenses"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpenses" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_9ef066b6-db49-4f4a-b852-4c1dfd0e85fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_aad9dd99-e6ce-46c3-8bbd-6c37130e2719" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_9ef066b6-db49-4f4a-b852-4c1dfd0e85fe" xlink:to="loc_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock_aad9dd99-e6ce-46c3-8bbd-6c37130e2719" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsandContingencies" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CommitmentsandContingencies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsandContingencies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_4955d711-33cc-45e5-81b2-1947474f0d44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_b34379e8-e42c-4018-9e5b-17b079ebfe90" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_4955d711-33cc-45e5-81b2-1947474f0d44" xlink:to="loc_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock_b34379e8-e42c-4018-9e5b-17b079ebfe90" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IndemnificationProvisions" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IndemnificationProvisions"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IndemnificationProvisions" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GuaranteesAbstract_a05be8b7-7497-40bd-90e0-53d751082d60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GuaranteesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IndemnificationProvisionsTextBlock_6e3b4a4a-2ebd-4aaa-b0a6-df97b81908a0" xlink:href="cgnx-20231231.xsd#cgnx_IndemnificationProvisionsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GuaranteesAbstract_a05be8b7-7497-40bd-90e0-53d751082d60" xlink:to="loc_cgnx_IndemnificationProvisionsTextBlock_6e3b4a4a-2ebd-4aaa-b0a6-df97b81908a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstruments" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstruments"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstruments" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a181bf42-a8dc-4348-9f0d-6653f409d449" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_70b585fa-f550-421f-b556-0f925cb74e07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_a181bf42-a8dc-4348-9f0d-6653f409d449" xlink:to="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock_70b585fa-f550-421f-b556-0f925cb74e07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognition" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognition"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognition" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_342bf71b-49a1-4a0b-ac30-476583876f4b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_0be400f0-5617-4686-abca-c3010ae4e47f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_342bf71b-49a1-4a0b-ac30-476583876f4b" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerTextBlock_0be400f0-5617-4686-abca-c3010ae4e47f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquity" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ShareholdersEquity"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquity" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_44ddd289-9bbc-4b06-a76b-957929960a6c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_f598d309-fbfe-483b-a2ed-f8c597459992" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_44ddd289-9bbc-4b06-a76b-957929960a6c" xlink:to="loc_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock_f598d309-fbfe-483b-a2ed-f8c597459992" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensation" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36252b5f-2eba-4883-b478-200db6cc72cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_9d51558c-722b-4aff-8bee-c06d5f6c8a1e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_36252b5f-2eba-4883-b478-200db6cc72cd" xlink:to="loc_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock_9d51558c-722b-4aff-8bee-c06d5f6c8a1e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="simple" xlink:href="cgnx-20231231.xsd#EmployeeSavingsPlan"/>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlan" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_678e3d49-122b-4f6f-956b-1ae05161a582" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_cbd72837-e9e4-4233-8ae1-5aea06949634" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_678e3d49-122b-4f6f-956b-1ae05161a582" xlink:to="loc_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock_cbd72837-e9e4-4233-8ae1-5aea06949634" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxes" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxes"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxes" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_9ba43f03-7f14-463f-87bc-44e9b7331d0f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureTextBlock_99c21178-9566-4170-a2d7-ddbbf622254a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_9ba43f03-7f14-463f-87bc-44e9b7331d0f" xlink:to="loc_us-gaap_IncomeTaxDisclosureTextBlock_99c21178-9566-4170-a2d7-ddbbf622254a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageShares" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageShares"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageShares" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_bd484f6a-9803-46e9-9ad4-f274cf1e5865" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareTextBlock_04621853-40db-4c17-b8c7-1a45a3b73505" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_bd484f6a-9803-46e9-9ad4-f274cf1e5865" xlink:to="loc_us-gaap_EarningsPerShareTextBlock_04621853-40db-4c17-b8c7-1a45a3b73505" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformation" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformation"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformation" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_1fd6358c-6890-498b-9a05-446f52d27ad8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingDisclosureTextBlock_b8714173-b61e-48ce-8bb2-647c570f7389" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_1fd6358c-6890-498b-9a05-446f52d27ad8" xlink:to="loc_us-gaap_SegmentReportingDisclosureTextBlock_b8714173-b61e-48ce-8bb2-647c570f7389" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitions" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitions"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitions" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_e97e33b6-268b-4eb0-85fa-ea6902c96f66" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationDisclosureTextBlock_8de6e6b3-6af7-4659-b558-e2416fee89f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_e97e33b6-268b-4eb0-85fa-ea6902c96f66" xlink:to="loc_us-gaap_BusinessCombinationDisclosureTextBlock_8de6e6b3-6af7-4659-b558-e2416fee89f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFire" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LossfromFire"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LossfromFire" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_808f0f6f-06d2-483a-aee1-f25bd5a77b80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherLiabilitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CatastropheTextBlock_81afc860-79ab-476f-b049-3f33ce9293f4" xlink:href="cgnx-20231231.xsd#cgnx_CatastropheTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_OtherLiabilitiesDisclosureAbstract_808f0f6f-06d2-483a-aee1-f25bd5a77b80" xlink:to="loc_cgnx_CatastropheTextBlock_81afc860-79ab-476f-b049-3f33ce9293f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringCharges" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringCharges"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringCharges" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_1d85b671-4bd6-4ff7-bb9f-3a43beb5c70c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_97435336-6637-41c3-b8db-85b78fc3781c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_1d85b671-4bd6-4ff7-bb9f-3a43beb5c70c" xlink:to="loc_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock_97435336-6637-41c3-b8db-85b78fc3781c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEvents" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SubsequentEvents"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEvents" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_7816090f-79ec-4987-adab-b97cd785e6d1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsTextBlock_15a7d31e-2d0f-40c4-bd7d-3d53142bcd74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_7816090f-79ec-4987-adab-b97cd785e6d1" xlink:to="loc_us-gaap_SubsequentEventsTextBlock_15a7d31e-2d0f-40c4-bd7d-3d53142bcd74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ScheduleIIValuationandQualifyingAccounts"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_0d2b93e0-c59a-465c-bc38-d8a9c3e4c48d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_44ce5bf9-d7f5-4c45-91c4-b62ee6dd6c92" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_0d2b93e0-c59a-465c-bc38-d8a9c3e4c48d" xlink:to="loc_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock_44ce5bf9-d7f5-4c45-91c4-b62ee6dd6c92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesPolicies"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NatureOfOperationsPolicyTextBlock_8db494bc-e4b0-4f3e-9441-026b868454b3" xlink:href="cgnx-20231231.xsd#cgnx_NatureOfOperationsPolicyTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_cgnx_NatureOfOperationsPolicyTextBlock_8db494bc-e4b0-4f3e-9441-026b868454b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UseOfEstimates_d69d7b7b-13f9-4ad6-808a-73fdfd559b13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UseOfEstimates"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_UseOfEstimates_d69d7b7b-13f9-4ad6-808a-73fdfd559b13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConsolidationPolicyTextBlock_cd6e815c-a7a2-4ca6-a83f-256c02cc20cb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConsolidationPolicyTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_ConsolidationPolicyTextBlock_cd6e815c-a7a2-4ca6-a83f-256c02cc20cb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_e2a9be53-8dd8-46a9-99f2-25881793492f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock_e2a9be53-8dd8-46a9-99f2-25881793492f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_536be7db-e375-468b-8700-0ddfafa86136" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueOfFinancialInstrumentsPolicy"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_FairValueOfFinancialInstrumentsPolicy_536be7db-e375-468b-8700-0ddfafa86136" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_e46b0360-c350-4757-bcff-d58f13d8af00" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsPolicyTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_CashAndCashEquivalentsPolicyTextBlock_e46b0360-c350-4757-bcff-d58f13d8af00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentPolicyTextBlock_7c045555-40a3-425d-bd87-3b6d757723c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentPolicyTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_InvestmentPolicyTextBlock_7c045555-40a3-425d-bd87-3b6d757723c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_25a036e2-1f48-4a98-b6c3-dc8521dec6f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TradeAndOtherAccountsReceivablePolicy"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_TradeAndOtherAccountsReceivablePolicy_25a036e2-1f48-4a98-b6c3-dc8521dec6f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryPolicyTextBlock_7933ed3e-c34f-40a5-8248-d13076fa88d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryPolicyTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_InventoryPolicyTextBlock_7933ed3e-c34f-40a5-8248-d13076fa88d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_865d5ca3-751d-4415-ac06-b95f10f77cf9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentPolicyTextBlock"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock_865d5ca3-751d-4415-ac06-b95f10f77cf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InternalUseSoftwarePolicy_e7887a09-56bc-4924-8f46-bb702dc1d786" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InternalUseSoftwarePolicy"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_InternalUseSoftwarePolicy_e7887a09-56bc-4924-8f46-bb702dc1d786" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeLeasesPolicyTextBlock_7eb2ff2d-6e22-4607-82ff-b9842c837a87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeLeasesPolicyTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_LesseeLeasesPolicyTextBlock_7eb2ff2d-6e22-4607-82ff-b9842c837a87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_06592d7a-9a8c-409c-9008-f770a2cc2bea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy_06592d7a-9a8c-409c-9008-f770a2cc2bea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_e8b200b2-2e0c-47fc-8612-30120d3d2939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IntangibleAssetsFiniteLivedPolicy"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_IntangibleAssetsFiniteLivedPolicy_e8b200b2-2e0c-47fc-8612-30120d3d2939" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardProductWarrantyPolicy_743cabab-d7bc-40b5-9a3e-59d40e576e27" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandardProductWarrantyPolicy"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_StandardProductWarrantyPolicy_743cabab-d7bc-40b5-9a3e-59d40e576e27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_d1b24ed8-e774-4d61-b418-741d3159da8b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesPolicyTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_CommitmentsAndContingenciesPolicyTextBlock_d1b24ed8-e774-4d61-b418-741d3159da8b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesPolicyTextBlock_0f76fe50-542c-436a-97e4-1530a5400278" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativesPolicyTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_DerivativesPolicyTextBlock_0f76fe50-542c-436a-97e4-1530a5400278" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionPolicyTextBlock_3013aa11-2bc7-4f04-940b-88e2752bc9f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRecognitionPolicyTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_RevenueRecognitionPolicyTextBlock_3013aa11-2bc7-4f04-940b-88e2752bc9f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_76351575-40b7-4ef9-9d7d-7a5c9d51954d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock_76351575-40b7-4ef9-9d7d-7a5c9d51954d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingCostsPolicyTextBlock_2b5b713f-6324-4d99-96c5-d43fd1675037" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingCostsPolicyTextBlock"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_AdvertisingCostsPolicyTextBlock_2b5b713f-6324-4d99-96c5-d43fd1675037" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_628270c6-4f7c-4d83-ab1c-00f09533c53e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy_628270c6-4f7c-4d83-ab1c-00f09533c53e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxPolicyTextBlock_994f438a-d759-42ee-8d68-8f70ae63077b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxPolicyTextBlock"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_IncomeTaxPolicyTextBlock_994f438a-d759-42ee-8d68-8f70ae63077b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerSharePolicyTextBlock_301c0bc5-4087-441e-8883-f7dcfcd57e5c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerSharePolicyTextBlock"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_EarningsPerSharePolicyTextBlock_301c0bc5-4087-441e-8883-f7dcfcd57e5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_f8d6cdbe-0348-4782-bbce-060d22c77edf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ComprehensiveIncomePolicyPolicyTextBlock"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock_f8d6cdbe-0348-4782-bbce-060d22c77edf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_d5bbb1d3-8bcd-4a18-8f96-a83759b178b3" xlink:href="cgnx-20231231.xsd#cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock_d5bbb1d3-8bcd-4a18-8f96-a83759b178b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsPolicy_33e02d26-8e7d-4e07-8b85-57d6d21c01b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsPolicy"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_BusinessCombinationsPolicy_33e02d26-8e7d-4e07-8b85-57d6d21c01b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_5b1ef84f-09d0-4b34-9853-3fc5c1cb1e59" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy_5b1ef84f-09d0-4b34-9853-3fc5c1cb1e59" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_69b1509b-ee99-4873-99fd-085e1a8f6d3d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_7d92d0a4-6bf0-457f-a500-3c92c12579d7" xlink:to="loc_us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock_69b1509b-ee99-4873-99fd-085e1a8f6d3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#FairValueMeasurementsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_01f0d9fd-4ef6-4a88-9366-f4a20eab47a0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_43913e19-41ae-4f69-b51a-a6f1eb8f2e3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_01f0d9fd-4ef6-4a88-9366-f4a20eab47a0" xlink:to="loc_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock_43913e19-41ae-4f69-b51a-a6f1eb8f2e3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_a24eb181-1652-4418-96c0-dbb63e2e68a6" xlink:href="cgnx-20231231.xsd#cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:to="loc_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock_a24eb181-1652-4418-96c0-dbb63e2e68a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_ab56b207-9302-4d51-94f1-d32c6ac3c6a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock_ab56b207-9302-4d51-94f1-d32c6ac3c6a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_f8505a4b-4096-40b1-8e26-3b066f336b2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:to="loc_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock_f8505a4b-4096-40b1-8e26-3b066f336b2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_ee3c633e-99eb-4633-8c1a-34905e73f4c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RealizedGainLossOnInvestmentsTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:to="loc_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock_ee3c633e-99eb-4633-8c1a-34905e73f4c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_1f444f04-e35d-43c8-8771-e6ff8db4010d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_3f9f59f4-bc28-40d9-86fe-e6c3d871a3dc" xlink:to="loc_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock_1f444f04-e35d-43c8-8771-e6ff8db4010d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#InventoriesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_887c8d3b-148b-4eea-ae62-2135d5af22b2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_2576e435-3ff2-441f-a341-a0ebb96e8233" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfInventoryCurrentTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_887c8d3b-148b-4eea-ae62-2135d5af22b2" xlink:to="loc_us-gaap_ScheduleOfInventoryCurrentTableTextBlock_2576e435-3ff2-441f-a341-a0ebb96e8233" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ecb21827-6188-4b05-82c6-4ac468ea5d03" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_15ef9f2c-2eab-4b2c-8a99-4107dacdcb4c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_ecb21827-6188-4b05-82c6-4ac468ea5d03" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTextBlock_15ef9f2c-2eab-4b2c-8a99-4107dacdcb4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_3b970794-c7b2-4a59-80d5-6dd7eeb54e1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_418a34e2-c144-439c-8dd1-008b2e7a4d9f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_3b970794-c7b2-4a59-80d5-6dd7eeb54e1d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock_418a34e2-c144-439c-8dd1-008b2e7a4d9f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#GoodwillTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_9a92cdaf-b5b8-4336-bed7-d3b60c549f6c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTextBlock_994fb35d-1d7f-433d-8225-8e90ee08decf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_9a92cdaf-b5b8-4336-bed7-d3b60c549f6c" xlink:to="loc_us-gaap_ScheduleOfGoodwillTextBlock_994fb35d-1d7f-433d-8225-8e90ee08decf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_848c6874-5e85-4b35-ac4e-8f266e5d186a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_6ac6283d-9bd2-47d7-bff5-6f733f19f0f9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_848c6874-5e85-4b35-ac4e-8f266e5d186a" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock_6ac6283d-9bd2-47d7-bff5-6f733f19f0f9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_18070797-2bcc-4977-838b-695c139a2309" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_848c6874-5e85-4b35-ac4e-8f266e5d186a" xlink:to="loc_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock_18070797-2bcc-4977-838b-695c139a2309" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AccruedExpensesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_190519fc-d81d-4990-9ccf-98dd835c4ca6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_8c89a132-f23b-40b6-8baa-0840f4254e6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_190519fc-d81d-4990-9ccf-98dd835c4ca6" xlink:to="loc_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock_8c89a132-f23b-40b6-8baa-0840f4254e6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_df266c39-88fb-4d6d-8a0c-50499c64ee96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_190519fc-d81d-4990-9ccf-98dd835c4ca6" xlink:to="loc_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock_df266c39-88fb-4d6d-8a0c-50499c64ee96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_ba4389fb-c81d-43e7-9ec2-e4130230e79f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_a2d48ed2-374a-42e0-acb9-14ede616d3c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_ba4389fb-c81d-43e7-9ec2-e4130230e79f" xlink:to="loc_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock_a2d48ed2-374a-42e0-acb9-14ede616d3c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_a898f74b-73a1-4b2d-b98a-833dd99019d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_ba4389fb-c81d-43e7-9ec2-e4130230e79f" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock_a898f74b-73a1-4b2d-b98a-833dd99019d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OffsettingAssetsTableTextBlock_9349ab0e-d66f-44d6-8614-716185ffdc84" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OffsettingAssetsTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_ba4389fb-c81d-43e7-9ec2-e4130230e79f" xlink:to="loc_us-gaap_OffsettingAssetsTableTextBlock_9349ab0e-d66f-44d6-8614-716185ffdc84" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_f796317b-ff14-44b0-8a4a-3611e46b032d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_ba4389fb-c81d-43e7-9ec2-e4130230e79f" xlink:to="loc_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock_f796317b-ff14-44b0-8a4a-3611e46b032d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_70dec05c-b05a-4330-a2ea-da9795e09330" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_f970187d-fe77-4906-b3b9-e10fab305ddc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_70dec05c-b05a-4330-a2ea-da9795e09330" xlink:to="loc_us-gaap_DisaggregationOfRevenueTableTextBlock_f970187d-fe77-4906-b3b9-e10fab305ddc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_1ce9a725-0a3b-40f7-8515-c62f408b7d73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_70dec05c-b05a-4330-a2ea-da9795e09330" xlink:to="loc_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock_1ce9a725-0a3b-40f7-8515-c62f408b7d73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_b958b30b-b1cf-49da-acba-9b1164181e98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_70dec05c-b05a-4330-a2ea-da9795e09330" xlink:to="loc_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock_b958b30b-b1cf-49da-acba-9b1164181e98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_2f86ee6d-ccd9-4349-925e-2caa6d8af8e8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock_2f86ee6d-ccd9-4349-925e-2caa6d8af8e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_7fa2e4d2-60da-474f-b668-f5fc12ab907a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:to="loc_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock_7fa2e4d2-60da-474f-b668-f5fc12ab907a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_3eb2ae02-9f55-43a0-9706-187f78a6c9bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:to="loc_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock_3eb2ae02-9f55-43a0-9706-187f78a6c9bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_f31be23f-56e6-4c73-a6ac-fcd2db34bd18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:to="loc_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock_f31be23f-56e6-4c73-a6ac-fcd2db34bd18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_9d122a4b-e5bf-4f2c-bbac-18c3f5c4deff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_ba67c469-972a-4ba7-b252-9e3cfe47f694" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock_9d122a4b-e5bf-4f2c-bbac-18c3f5c4deff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_322baac7-47fb-4515-8cc0-10c1e5b1ed6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_e3ac8cea-5931-495e-be12-c86276b0938b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_322baac7-47fb-4515-8cc0-10c1e5b1ed6f" xlink:to="loc_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock_e3ac8cea-5931-495e-be12-c86276b0938b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_e892ec88-7d9e-4a19-a74f-e171a166e6af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_322baac7-47fb-4515-8cc0-10c1e5b1ed6f" xlink:to="loc_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock_e892ec88-7d9e-4a19-a74f-e171a166e6af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_0e261a51-ff51-4391-a1b9-acc6047c37af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SummaryOfIncomeTaxContingenciesTextBlock"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_322baac7-47fb-4515-8cc0-10c1e5b1ed6f" xlink:to="loc_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock_0e261a51-ff51-4391-a1b9-acc6047c37af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_749bd79d-e7d2-480f-a425-b5c44b934900" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_322baac7-47fb-4515-8cc0-10c1e5b1ed6f" xlink:to="loc_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock_749bd79d-e7d2-480f-a425-b5c44b934900" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageSharesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_aa807780-a64b-48f4-a4af-cf849e1006d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_d7255269-941c-497a-988e-11bf1bedefa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_aa807780-a64b-48f4-a4af-cf849e1006d5" xlink:to="loc_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock_d7255269-941c-497a-988e-11bf1bedefa3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformationTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_a3d7d12c-b9ee-4611-b2b4-1d3a26ec7472" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_5fe7b94a-b95d-4e75-a57c-c3a0168598ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_a3d7d12c-b9ee-4611-b2b4-1d3a26ec7472" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock_5fe7b94a-b95d-4e75-a57c-c3a0168598ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_5559ac38-448c-4587-928b-1979e107c4a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_2e60b773-3fa8-464c-92bc-ae83d4eb5e07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_5559ac38-448c-4587-928b-1979e107c4a7" xlink:to="loc_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock_2e60b773-3fa8-464c-92bc-ae83d4eb5e07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesTables" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesTables"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesTables" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_5717ce6e-93af-4388-9e3e-2583104b00d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_9159f554-aa45-4ff1-95ac-9d087a625b68" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_5717ce6e-93af-4388-9e3e-2583104b00d9" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock_9159f554-aa45-4ff1-95ac-9d087a625b68" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_dc7df92c-ce64-4960-9b54-c891d589688f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_5717ce6e-93af-4388-9e3e-2583104b00d9" xlink:to="loc_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock_dc7df92c-ce64-4960-9b54-c891d589688f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_b58ae3b6-fb5a-466b-ae5f-87a5616f4198" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_b58ae3b6-fb5a-466b-ae5f-87a5616f4198" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_3f6047fe-febf-4cfb-84d6-830fac9a510b" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_15db8d00-1c01-4cbd-9ddc-d4be5944b4d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_BuildingMember_15db8d00-1c01-4cbd-9ddc-d4be5944b4d6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_6cbc5d5c-3995-4cc1-822b-3a47a78f4507" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_BuildingImprovementsMember_6cbc5d5c-3995-4cc1-822b-3a47a78f4507" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ComputerHardwareAndSoftwareMember_bbfb8793-ff77-48ca-9321-c589574ee582" xlink:href="cgnx-20231231.xsd#cgnx_ComputerHardwareAndSoftwareMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_cgnx_ComputerHardwareAndSoftwareMember_bbfb8793-ff77-48ca-9321-c589574ee582" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_c41f47bb-21d6-4005-b32c-0d262f6c7a80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_EquipmentMember_c41f47bb-21d6-4005-b32c-0d262f6c7a80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_a66eb4f0-f137-4ffb-943f-e7a3a907bc42" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_3ff9dcbe-b1ef-4d69-8efb-827dd5dd46ec" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_a66eb4f0-f137-4ffb-943f-e7a3a907bc42" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:to="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_3f96dcfb-ad56-40bf-9885-6f854a4bc07c" xlink:to="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_c22a953c-36ff-435e-8985-c0bbc16949de" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:to="loc_srt_MinimumMember_c22a953c-36ff-435e-8985-c0bbc16949de" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_0833cd4b-69d5-4752-bea9-48647ac98ed1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_6e349e31-cbbd-47b0-9040-e859af716da3" xlink:to="loc_srt_MaximumMember_0833cd4b-69d5-4752-bea9-48647ac98ed1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_c54970df-412d-4166-a2ad-ba776934caa3" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_0bf7e2b6-a7f0-4a4d-99c1-916e6530e11d" xlink:href="cgnx-20231231.xsd#cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum_0bf7e2b6-a7f0-4a4d-99c1-916e6530e11d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_eed70692-a5d2-45c0-9556-1ab9e2376041" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentUsefulLife_eed70692-a5d2-45c0-9556-1ab9e2376041" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_e27378b8-d094-47ec-a812-15c9a3e2f03f" xlink:href="cgnx-20231231.xsd#cgnx_MaximumInvestmentOfCompanyInPartnership"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_1315c580-496c-4a01-8a02-43f5ce4a56e1" xlink:to="loc_cgnx_MaximumInvestmentOfCompanyInPartnership_e27378b8-d094-47ec-a812-15c9a3e2f03f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_a190e6b2-471b-408c-9f27-2c5e36f0829c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_a190e6b2-471b-408c-9f27-2c5e36f0829c" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_307edcc9-a538-4313-8361-01d7ebe4ae88" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_a78e92df-2743-40d2-b548-a61ca6fccc15" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_DistributionRightsMember_a78e92df-2743-40d2-b548-a61ca6fccc15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_53435766-0768-433d-ae6a-6562b4adb75e" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember_53435766-0768-433d-ae6a-6562b4adb75e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_1bb63611-cef0-48d6-a185-095a3e632aa7" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_1bb63611-cef0-48d6-a185-095a3e632aa7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_0115f905-7810-4fd5-91bb-32230a584435" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_0115f905-7810-4fd5-91bb-32230a584435" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_05cb4bc8-9ad6-4707-99c6-141145a7accc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_b41309d2-a127-44d4-b552-f3258e2f02bd" xlink:to="loc_us-gaap_TrademarksMember_05cb4bc8-9ad6-4707-99c6-141145a7accc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:to="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_1a899f67-008f-432e-8904-867479d79a8f" xlink:to="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_a4108aff-fbb4-43b8-8abf-77b5f8513d36" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:to="loc_srt_MinimumMember_a4108aff-fbb4-43b8-8abf-77b5f8513d36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_9a8d3747-cb9c-4801-92db-05a81ab92bff" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_5cd57f95-cbb7-4369-a9ba-118e22abbe01" xlink:to="loc_srt_MaximumMember_9a8d3747-cb9c-4801-92db-05a81ab92bff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_5ddfce60-7080-4a4a-94c4-04d530be4b7e" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_f6ff4bc1-ecfb-4585-8e0c-e22ab2e7d7a3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetUsefulLife"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_a6e5c3c4-dad9-4220-b7c9-b5c0cd6a3fef" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetUsefulLife_f6ff4bc1-ecfb-4585-8e0c-e22ab2e7d7a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesWarrantyDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_a3325a2c-9153-4f5b-80a0-81a1276a32ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_a3325a2c-9153-4f5b-80a0-81a1276a32ab" xlink:to="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:to="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_8e90f669-4710-42fd-a0c3-fba61fae5ebd" xlink:to="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_6bf3cc80-7c7a-4d2d-8e44-c328ac3a2265" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:to="loc_srt_MinimumMember_6bf3cc80-7c7a-4d2d-8e44-c328ac3a2265" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_e4e02836-977d-400b-8b95-c6d6c66dd671" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_c9e7f02f-2b96-4cb1-84c3-bcff5fd131a4" xlink:to="loc_srt_MaximumMember_e4e02836-977d-400b-8b95-c6d6c66dd671" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductLiabilityContingencyLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyTable_69cce753-6780-4607-bc7b-56467cec72e3" xlink:to="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductWarrantyPeriod_208414fc-4340-4439-9d11-2d01f7b40aa8" xlink:href="cgnx-20231231.xsd#cgnx_ProductWarrantyPeriod"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ProductLiabilityContingencyLineItems_ead73037-b490-4c2f-b42c-e5f7a3557f70" xlink:to="loc_cgnx_ProductWarrantyPeriod_208414fc-4340-4439-9d11-2d01f7b40aa8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_ec5ebeed-27d1-449a-912d-9068d0446d10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_ec5ebeed-27d1-449a-912d-9068d0446d10" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:to="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_d54da22b-785c-4b22-8fcc-e9c05c74b388" xlink:to="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_77e80de7-65d3-4490-bcf0-99de6c656bc1" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:to="loc_srt_MinimumMember_77e80de7-65d3-4490-bcf0-99de6c656bc1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_89ece996-6a2d-4ffe-8541-4223abcdac66" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_92ac865d-ff83-4102-a43a-345ea1049dac" xlink:to="loc_srt_MaximumMember_89ece996-6a2d-4ffe-8541-4223abcdac66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_469c444d-2567-4505-b80b-85815dfd6663" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RevenuePaymentTerms_139fb2be-ff08-4803-a61c-c87cab1cd69c" xlink:href="cgnx-20231231.xsd#cgnx_RevenuePaymentTerms"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_ab1c43fd-ab01-48b1-b84c-d90162f16fb8" xlink:to="loc_cgnx_RevenuePaymentTerms_139fb2be-ff08-4803-a61c-c87cab1cd69c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_5f8604ae-1dd6-467c-8579-455f6ab2d704" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdvertisingExpense_80d62f22-0016-4321-94af-dfc11ca2c24c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdvertisingExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_5f8604ae-1dd6-467c-8579-455f6ab2d704" xlink:to="loc_us-gaap_AdvertisingExpense_80d62f22-0016-4321-94af-dfc11ca2c24c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccountingPoliciesAbstract_bc97589d-82f3-4d79-89c8-fec1fee6055c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccountingPoliciesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccountingPoliciesAbstract_bc97589d-82f3-4d79-89c8-fec1fee6055c" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StatementEquityComponentsAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:to="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityComponentDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_StatementEquityComponentsAxis_7315baf1-3bcd-4cc8-ad21-48cca8d2a7b5" xlink:to="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_1491722c-456c-43ef-9497-8d103e944656" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityComponentDomain_52f20f5f-17df-4ac5-b598-f139235db032" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeMember_1491722c-456c-43ef-9497-8d103e944656" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossTable_98b09f8c-8282-40f9-828b-cb604c51d75e" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_cd89a4fb-23bc-486b-8d0c-bd1004447183" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax_cd89a4fb-23bc-486b-8d0c-bd1004447183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f1f7ccc6-e11c-4122-9b8c-59ea029983f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax_f1f7ccc6-e11c-4122-9b8c-59ea029983f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_b319be2a-f4ed-4288-8139-7f7342e1f56f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax_b319be2a-f4ed-4288-8139-7f7342e1f56f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7480bb0e-6c0b-418e-9c0e-2700953a51f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems_c8850278-8f7a-42fc-9d9b-37f39cf4cb07" xlink:to="loc_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax_7480bb0e-6c0b-418e-9c0e-2700953a51f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueDisclosuresAbstract_5cab6cd9-994e-4940-a4a6-36f85f623bf3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueDisclosuresAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueDisclosuresAbstract_5cab6cd9-994e-4940-a4a6-36f85f623bf3" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByFairValueHierarchyLevelAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:to="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsFairValueHierarchyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByFairValueHierarchyLevelAxis_4c0e30b4-86bd-4eba-9972-480ce05a43e1" xlink:to="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel1Member_ea5fcd78-c774-43ed-91a3-5faf33380313" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel1Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel1Member_ea5fcd78-c774-43ed-91a3-5faf33380313" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel2Member_5a564e17-bf03-464d-95f9-cecc3a4a11b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel2Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel2Member_5a564e17-bf03-464d-95f9-cecc3a4a11b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueInputsLevel3Member_efa17303-be4d-49fb-b47e-0f331cbd676d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueInputsLevel3Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementsFairValueHierarchyDomain_c5720c9b-f658-4bb4-96b9-daaf28cdf4f1" xlink:to="loc_us-gaap_FairValueInputsLevel3Member_efa17303-be4d-49fb-b47e-0f331cbd676d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueByMeasurementFrequencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:to="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementFrequencyDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueByMeasurementFrequencyAxis_40d594a7-5710-4108-a92b-5a8c3addbf9e" xlink:to="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueMeasurementsRecurringMember_205d75df-fbf8-46a6-a9ec-1071ff9eb973" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueMeasurementsRecurringMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueMeasurementFrequencyDomain_dac8c615-a34a-4ec4-9c55-c1a1ea2f65ca" xlink:to="loc_us-gaap_FairValueMeasurementsRecurringMember_205d75df-fbf8-46a6-a9ec-1071ff9eb973" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable_98c52636-bb6d-4c32-a05f-971aa52bee2f" xlink:to="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetsFairValueDisclosureAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:to="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_f55f9fcc-d645-42ab-9278-7950db539322" xlink:href="cgnx-20231231.xsd#cgnx_MoneyMarketInstrumentsFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_MoneyMarketInstrumentsFairValueDisclosure_f55f9fcc-d645-42ab-9278-7950db539322" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CorporateBondsFairValueDisclosure_303eda9d-76be-4740-87b6-982dab8b5db8" xlink:href="cgnx-20231231.xsd#cgnx_CorporateBondsFairValueDisclosure"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_CorporateBondsFairValueDisclosure_303eda9d-76be-4740-87b6-982dab8b5db8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_TreasuryBillsFairValueDisclosure_432a1b3a-02b6-44f4-b95a-666433a2b54b" xlink:href="cgnx-20231231.xsd#cgnx_TreasuryBillsFairValueDisclosure"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_TreasuryBillsFairValueDisclosure_432a1b3a-02b6-44f4-b95a-666433a2b54b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_62671daf-a1ff-45de-b9ec-06fe467df124" xlink:href="cgnx-20231231.xsd#cgnx_AssetBackedSecuritiesFairValueDisclosure"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_AssetBackedSecuritiesFairValueDisclosure_62671daf-a1ff-45de-b9ec-06fe467df124" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SovereignBondsFairValueDisclosure_05beef37-67ec-441c-a558-f058b33b9db4" xlink:href="cgnx-20231231.xsd#cgnx_SovereignBondsFairValueDisclosure"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_cgnx_SovereignBondsFairValueDisclosure_05beef37-67ec-441c-a558-f058b33b9db4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_c47103ee-790a-48eb-ac38-25ccb7a78587" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractAssetFairValueDisclosure"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AssetsFairValueDisclosureAbstract_9ebd2611-b751-49b6-9af4-8f9d153fde19" xlink:to="loc_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure_c47103ee-790a-48eb-ac38-25ccb7a78587" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilitiesFairValueDisclosureAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems_2a07e5b1-75ab-4c3e-9a65-922e1319eb72" xlink:to="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_87caab89-dac6-4c16-9829-efcbc3c67603" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilitiesFairValueDisclosureAbstract_3afd7dc7-bb73-47fa-933a-9ddabf5815c3" xlink:to="loc_us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure_87caab89-dac6-4c16-9829-efcbc3c67603" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_2417a584-572b-4885-8434-9531841735a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_2417a584-572b-4885-8434-9531841735a5" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:to="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_f665bae1-5bda-4b17-9fc4-5f93fc6a41c8" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasuryBillSecuritiesMember_213e3def-70d3-4cea-a48e-987ad1c21c0a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasuryBillSecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_USTreasuryBillSecuritiesMember_213e3def-70d3-4cea-a48e-987ad1c21c0a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_59f0c133-8911-43cd-bcb9-e1c544fe85ae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_59f0c133-8911-43cd-bcb9-e1c544fe85ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_1404d9bc-e419-4fd5-92bd-81ee0573fe5f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_1404d9bc-e419-4fd5-92bd-81ee0573fe5f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_a1ff4515-ccaf-428f-912a-b576656c5ee9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_a1ff4515-ccaf-428f-912a-b576656c5ee9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_f9c5a4f2-e2d1-4398-bc97-7a886ceeb9fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_us-gaap_MunicipalBondsMember_f9c5a4f2-e2d1-4398-bc97-7a886ceeb9fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_eb48a8af-ddee-4d67-a0f7-15a50023aae1" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_327499fc-6492-49ed-a63d-76851d93ab01" xlink:to="loc_cgnx_AgencyBondsMember_eb48a8af-ddee-4d67-a0f7-15a50023aae1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_1b4b0edf-a8ba-483c-a7ce-8b50565700b1" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Cash_300ed6ca-77e5-4a3a-8b17-926f16c4ebb8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Cash"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_Cash_300ed6ca-77e5-4a3a-8b17-926f16c4ebb8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MoneyMarketFundsAtCarryingValue_237546f7-e2c7-4a29-bb82-24352abed3d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MoneyMarketFundsAtCarryingValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_MoneyMarketFundsAtCarryingValue_237546f7-e2c7-4a29-bb82-24352abed3d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_691f7928-5af8-4784-8f04-56bb26f51848" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAtCarryingValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_CashAndCashEquivalentsAtCarryingValue_691f7928-5af8-4784-8f04-56bb26f51848" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_63fdcde6-4840-421a-b741-22b95a342413" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent_63fdcde6-4840-421a-b741-22b95a342413" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87671606-5b31-49ef-8b33-99c79d24121a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent_87671606-5b31-49ef-8b33-99c79d24121a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LongTermInvestments_6937f940-1955-4ec5-9168-e80e2e5a1ec9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LongTermInvestments"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_us-gaap_LongTermInvestments_6937f940-1955-4ec5-9168-e80e2e5a1ec9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_56404642-64e9-4035-be22-24634dd16183" xlink:href="cgnx-20231231.xsd#cgnx_CashCashEquivalentsShortTermAndLongTermInvestments"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_a3d78bf0-7199-4d62-82d3-9234927e8021" xlink:to="loc_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments_56404642-64e9-4035-be22-24634dd16183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DueFromForeignBanks_1779698d-c25f-4fda-af24-e59879c5d4a0" xlink:href="cgnx-20231231.xsd#cgnx_DueFromForeignBanks"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:to="loc_cgnx_DueFromForeignBanks_1779698d-c25f-4fda-af24-e59879c5d4a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InterestReceivable_d1ced2fa-8ce2-4d32-9141-e5e9e2af81eb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InterestReceivable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:to="loc_us-gaap_InterestReceivable_d1ced2fa-8ce2-4d32-9141-e5e9e2af81eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_44257b15-2be6-44ef-a669-425fb1c0c7b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_44257b15-2be6-44ef-a669-425fb1c0c7b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_71ea2192-dc81-4118-94bc-19db9dee71d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss_71ea2192-dc81-4118-94bc-19db9dee71d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_4e1bed12-a49e-4903-894f-dff46325884a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_823cb0a9-1758-41fb-8e71-ebba07fc9d13" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_4e1bed12-a49e-4903-894f-dff46325884a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_10285765-bba9-4985-939a-d666c0ac5de8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_10285765-bba9-4985-939a-d666c0ac5de8" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_81c6628c-a488-481a-9a5f-65ba71b7ad7a" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d937473d-6762-4c7f-9774-9771f963f21a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d937473d-6762-4c7f-9774-9771f963f21a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_6173a3ca-d940-4ccf-afeb-e94c093561fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_6173a3ca-d940-4ccf-afeb-e94c093561fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_7b6d8f93-4544-4806-90bf-d527c5cbbbe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_7b6d8f93-4544-4806-90bf-d527c5cbbbe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_611770e0-1f39-4aad-8717-e1a30fc345ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_611770e0-1f39-4aad-8717-e1a30fc345ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_866e6715-caea-4cb6-81e8-e7398bae8061" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_us-gaap_MunicipalBondsMember_866e6715-caea-4cb6-81e8-e7398bae8061" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_245a8623-0cee-4159-8452-816624403f82" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_893ea5cf-1fd4-4946-ae52-fa180041faf9" xlink:to="loc_cgnx_AgencyBondsMember_245a8623-0cee-4159-8452-816624403f82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:href="cgnx-20231231.xsd#cgnx_InvestmentDurationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationAxis_5a4e3f21-55f5-4e55-b09c-2be3a855f3ed" xlink:to="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LongTermInvestmentsMember_a648c303-7b50-47f9-b6ad-f737552376cf" xlink:href="cgnx-20231231.xsd#cgnx_LongTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:to="loc_cgnx_LongTermInvestmentsMember_a648c303-7b50-47f9-b6ad-f737552376cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_7a071905-6044-4b9a-bcd6-ff9b6c12be3f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_InvestmentDurationDomain_dd0930fd-9022-4391-8c02-80809721e59f" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_7a071905-6044-4b9a-bcd6-ff9b6c12be3f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InvestmentTypeCategorizationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeAxis_aa30e19e-79e8-4316-b9b5-9bf32c29ff8a" xlink:to="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShortTermInvestmentsMember_02f51ae3-20a5-488e-b549-91544c17f0ca" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShortTermInvestmentsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InvestmentTypeCategorizationMember_0964eb04-3692-4d39-bfd9-9fef87257ea0" xlink:to="loc_us-gaap_ShortTermInvestmentsMember_02f51ae3-20a5-488e-b549-91544c17f0ca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_c71abcd8-9088-4d5e-8620-690f8386555f" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_2ce0467f-975f-4fe6-b6c6-a920bcf2d7ef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis_2ce0467f-975f-4fe6-b6c6-a920bcf2d7ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_2240bb91-78a6-4613-98e9-a3d37d566cbd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax_2240bb91-78a6-4613-98e9-a3d37d566cbd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_6158c605-654a-4e02-a625-1b14c3406b93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax_6158c605-654a-4e02-a625-1b14c3406b93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_4d4d71cc-d475-427a-a3d0-c73428ac0c1c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_1240dcd8-dfcf-4b1f-99f7-20e64871503e" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_4d4d71cc-d475-427a-a3d0-c73428ac0c1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_9015ca82-8053-4d7b-810d-6d0bd413d305" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_9015ca82-8053-4d7b-810d-6d0bd413d305" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:to="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_b5646987-98e3-4caf-94df-924e489cf499" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_d3dd0c76-8b7c-45de-97df-304970f97f54" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_d3dd0c76-8b7c-45de-97df-304970f97f54" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_0460786c-5b26-4e18-a06c-b7f630427780" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_0460786c-5b26-4e18-a06c-b7f630427780" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_9d29985a-5bbc-40de-b974-6ca6bc9df59f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_9d29985a-5bbc-40de-b974-6ca6bc9df59f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_f645da01-3baa-43ff-8d73-b401265843b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_f645da01-3baa-43ff-8d73-b401265843b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_8f40e718-cc76-4970-a3d0-76e4f499735e" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_cgnx_AgencyBondsMember_8f40e718-cc76-4970-a3d0-76e4f499735e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_56c41d63-461a-46aa-ba00-32e1f959bfd5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_a1b8ae97-049b-4078-933c-73a7a7f5b3fc" xlink:to="loc_us-gaap_MunicipalBondsMember_56c41d63-461a-46aa-ba00-32e1f959bfd5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_7c9308ea-6758-43fd-907a-9abcc1ce0069" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_a421e239-b4e7-4a59-aff0-32b50068822d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months_a421e239-b4e7-4a59-aff0-32b50068822d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ca2da39c-8747-4477-aba2-1e85c0eaf47a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss_ca2da39c-8747-4477-aba2-1e85c0eaf47a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d70862b5-07b5-499a-96a8-e444abdd26b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger_d70862b5-07b5-499a-96a8-e444abdd26b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_a98a45ea-a40d-4de7-aa3c-e424d2d305e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss_a98a45ea-a40d-4de7-aa3c-e424d2d305e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_515becdf-451b-4cf9-bb62-08bd43ff6228" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition_515becdf-451b-4cf9-bb62-08bd43ff6228" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_7f71055b-52e1-47c1-9913-a54f64fdbfe3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_e446355e-9e2c-4a80-bf46-cdf829bd572a" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss_7f71055b-52e1-47c1-9913-a54f64fdbfe3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_d09b0722-08d7-48fc-aee3-7ed7cc9fe9a8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_dbe93ac4-a633-4fb5-ab28-6970e2c6f439" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedGain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d09b0722-08d7-48fc-aee3-7ed7cc9fe9a8" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain_dbe93ac4-a633-4fb5-ab28-6970e2c6f439" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_b1c0e44b-a76d-4b17-a5e7-94741c48345e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d09b0722-08d7-48fc-aee3-7ed7cc9fe9a8" xlink:to="loc_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss_b1c0e44b-a76d-4b17-a5e7-94741c48345e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RealizedInvestmentGainsLosses_dbc4eac1-1a13-4eb7-9dfe-0a5613d197dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RealizedInvestmentGainsLosses"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_d09b0722-08d7-48fc-aee3-7ed7cc9fe9a8" xlink:to="loc_us-gaap_RealizedInvestmentGainsLosses_dbc4eac1-1a13-4eb7-9dfe-0a5613d197dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CashAndCashEquivalentsAbstract_cf251fa7-4142-4ec8-b132-acd6a98f7e7f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CashAndCashEquivalentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfCashAndCashEquivalentsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CashAndCashEquivalentsAbstract_cf251fa7-4142-4ec8-b132-acd6a98f7e7f" xlink:to="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FinancialInstrumentAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:to="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FinancialInstrumentAxis_02486fc0-ff6b-4d41-aeb7-ed5517f1af9e" xlink:to="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_USTreasurySecuritiesMember_a41f3667-cad7-4fe1-aa8b-75c4e35dc16d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_USTreasurySecuritiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_USTreasurySecuritiesMember_a41f3667-cad7-4fe1-aa8b-75c4e35dc16d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CorporateBondSecuritiesMember_310fc572-3db9-4854-a78a-185bf9f7e8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CorporateBondSecuritiesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_CorporateBondSecuritiesMember_310fc572-3db9-4854-a78a-185bf9f7e8cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetBackedSecuritiesMember_85d494b0-a03a-4f8a-b502-f7de4b701cfc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetBackedSecuritiesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_AssetBackedSecuritiesMember_85d494b0-a03a-4f8a-b502-f7de4b701cfc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SovereignDebtSecuritiesMember_043e6e8b-334c-4b17-9629-178cd2ae5ed1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SovereignDebtSecuritiesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_SovereignDebtSecuritiesMember_043e6e8b-334c-4b17-9629-178cd2ae5ed1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MunicipalBondsMember_5ea44c86-f33f-4aef-b41b-e0675776bf62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MunicipalBondsMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_us-gaap_MunicipalBondsMember_5ea44c86-f33f-4aef-b41b-e0675776bf62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AgencyBondsMember_b9d04753-6bee-4195-bdce-6544e90e5e48" xlink:href="cgnx-20231231.xsd#cgnx_AgencyBondsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain_ecad1d73-4e5b-44f9-ae16-2ad036fe48b0" xlink:to="loc_cgnx_AgencyBondsMember_b9d04753-6bee-4195-bdce-6544e90e5e48" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfCashAndCashEquivalentsTable_ad569ba4-f2cf-4abd-ada4-9da844f5ce6b" xlink:to="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c9e2dd41-e71b-4c47-9455-23d4816b29aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue_c9e2dd41-e71b-4c47-9455-23d4816b29aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_47e2d4fd-1512-49a4-a95e-4432198ae909" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue_47e2d4fd-1512-49a4-a95e-4432198ae909" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_1b887106-038a-4feb-bc0c-a5e7500cef4c" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue_1b887106-038a-4feb-bc0c-a5e7500cef4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_fa2e8422-0bcd-429d-b447-194b2af07e96" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue_fa2e8422-0bcd-429d-b447-194b2af07e96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_2c9a8d8b-e497-4ff5-bd41-3d870c65e5e4" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue_2c9a8d8b-e497-4ff5-bd41-3d870c65e5e4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3185479d-6af8-4797-8b67-0dc8df408ac4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AvailableForSaleSecuritiesDebtSecurities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_us-gaap_AvailableForSaleSecuritiesDebtSecurities_3185479d-6af8-4797-8b67-0dc8df408ac4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_28f517a2-31a2-42dc-a90b-5c5fcc03c144" xlink:href="cgnx-20231231.xsd#cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems_aa6a55e2-f48c-4da7-b965-124677f5ba96" xlink:to="loc_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue_28f517a2-31a2-42dc-a90b-5c5fcc03c144" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#InventoriesInventoriesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/InventoriesInventoriesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryDisclosureAbstract_b95c4f00-0e5c-4484-a5f8-ff829cd1caea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryCurrentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryDisclosureAbstract_b95c4f00-0e5c-4484-a5f8-ff829cd1caea" xlink:to="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_5da3045f-dec0-4dd3-a877-1ecf0adc441e" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_be8818a4-f29d-4c06-b519-b8049cc9ec13" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_ca27d7b5-6808-48cc-a9df-c522661783e2" xlink:to="loc_cgnx_MoritexCorporationMember_be8818a4-f29d-4c06-b519-b8049cc9ec13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryCurrentTable_3c6dfc6d-64ac-4779-ad56-6c5620064517" xlink:to="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f594241d-8fab-4258-9c57-b848383a02f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryRawMaterialsNetOfReserves"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryRawMaterialsNetOfReserves_f594241d-8fab-4258-9c57-b848383a02f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryWorkInProcessNetOfReserves_40cadb91-d9c3-4afc-9c98-ecf576bb2c7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryWorkInProcessNetOfReserves"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryWorkInProcessNetOfReserves_40cadb91-d9c3-4afc-9c98-ecf576bb2c7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_14878f51-ce86-4b98-85eb-591f9d95626f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryFinishedGoodsNetOfReserves"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryFinishedGoodsNetOfReserves_14878f51-ce86-4b98-85eb-591f9d95626f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InventoryNet_db24479f-c0bf-488c-8c62-fd39f209cf0b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InventoryNet"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_InventoryNet_db24479f-c0bf-488c-8c62-fd39f209cf0b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_28cfd072-12ff-4b6d-8f8e-06aa77b0f0c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_InventoryLineItems_38a96946-1403-452a-bd48-6885c77d9e13" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_28cfd072-12ff-4b6d-8f8e-06aa77b0f0c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_549fd3c2-08f4-45ee-8037-ca0f9b6f8ab2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_549fd3c2-08f4-45ee-8037-ca0f9b6f8ab2" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_bd5d5484-8c52-464d-91ef-f8971a649735" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LandMember_419a88b3-d631-4cbf-a1f5-dc0cfc2786fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_LandMember_419a88b3-d631-4cbf-a1f5-dc0cfc2786fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingMember_624aeb08-650b-48e3-999f-7c719b040fd1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_BuildingMember_624aeb08-650b-48e3-999f-7c719b040fd1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BuildingImprovementsMember_21d6ef74-2dbf-47ea-8004-2ac5048dd61d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BuildingImprovementsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_BuildingImprovementsMember_21d6ef74-2dbf-47ea-8004-2ac5048dd61d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeaseholdImprovementsMember_2c5f129b-a18c-45db-ac12-2eba70cdfbce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeaseholdImprovementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_LeaseholdImprovementsMember_2c5f129b-a18c-45db-ac12-2eba70cdfbce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_HardwareAndSoftwareMember_30c59147-ee1c-4bec-888f-f73e316f5188" xlink:href="cgnx-20231231.xsd#cgnx_HardwareAndSoftwareMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_cgnx_HardwareAndSoftwareMember_30c59147-ee1c-4bec-888f-f73e316f5188" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquipmentMember_9c625ccd-4abd-4017-a97c-933b886d4415" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquipmentMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_EquipmentMember_9c625ccd-4abd-4017-a97c-933b886d4415" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FurnitureAndFixturesMember_0100cd59-e872-490f-b2b8-99ba48662711" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FurnitureAndFixturesMember"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_44edbeda-bd85-4d3d-b967-fc8167a88a1b" xlink:to="loc_us-gaap_FurnitureAndFixturesMember_0100cd59-e872-490f-b2b8-99ba48662711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_a3fd0a19-9a6f-4ab5-b95c-6119acf6df51" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentGross_bf8936b6-cb03-40b0-a53f-edad92657ba2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentGross_bf8936b6-cb03-40b0-a53f-edad92657ba2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_89cfd570-d7ef-4cd3-8966-907fc4cf824a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment_89cfd570-d7ef-4cd3-8966-907fc4cf824a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentNet_05fed76b-8e65-41e3-9e98-2df01e7e2f88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_8a176b89-7492-4738-bacf-6fa32cc8cd3c" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentNet_05fed76b-8e65-41e3-9e98-2df01e7e2f88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#PropertyPlantandEquipmentAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentAbstract_77d6d782-0d1b-480b-baa4-11a0899a79f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_7f0a2296-17b9-4861-8751-2ed2e771f56d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_77d6d782-0d1b-480b-baa4-11a0899a79f2" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_7f0a2296-17b9-4861-8751-2ed2e771f56d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_a413930e-35d0-4d6d-a138-fab5a580d3f4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_77d6d782-0d1b-480b-baa4-11a0899a79f2" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_a413930e-35d0-4d6d-a138-fab5a580d3f4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_deee8926-2eb0-44aa-82b6-3fd667e8c336" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_77d6d782-0d1b-480b-baa4-11a0899a79f2" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_deee8926-2eb0-44aa-82b6-3fd667e8c336" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfPropertyPlantAndEquipmentTable"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentAbstract_77d6d782-0d1b-480b-baa4-11a0899a79f2" xlink:to="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:to="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CatastrophicEventDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis_d7384f97-4876-4acd-bcc1-426fb7e25cfb" xlink:to="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_c018dc48-fb39-48e9-9541-d8aa6c36df26" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DamageFromFireExplosionOrOtherHazardMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CatastrophicEventDomain_a837b500-eff6-4694-a0da-1f23dc5ceae4" xlink:to="loc_us-gaap_DamageFromFireExplosionOrOtherHazardMember_c018dc48-fb39-48e9-9541-d8aa6c36df26" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9113d465-c9af-45e0-9369-922d6935e1b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_2bf1be7f-eac0-490f-8722-70ef641b4fb5" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_857d43c9-8540-4bd5-9f4d-6c23a2d24a0e" xlink:to="loc_cgnx_MoritexCorporationMember_2bf1be7f-eac0-490f-8722-70ef641b4fb5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfPropertyPlantAndEquipmentTable_220cee43-06fd-40c2-bbc9-0e5a99eb6a51" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_7c817e22-0c3a-4852-a8a1-b7e3a82d0358" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_7c817e22-0c3a-4852-a8a1-b7e3a82d0358" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentDisposals_349dd7ab-de7a-4932-a1cb-09bf8f58dccc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentDisposals"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentDisposals_349dd7ab-de7a-4932-a1cb-09bf8f58dccc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_c44f6bd0-ad73-45a0-a2cb-bdd49de11c9c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1_c44f6bd0-ad73-45a0-a2cb-bdd49de11c9c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GainLossOnDispositionOfAssets1_d32cbcd3-571a-4bd0-96d5-f5e74e495866" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GainLossOnDispositionOfAssets1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_GainLossOnDispositionOfAssets1_d32cbcd3-571a-4bd0-96d5-f5e74e495866" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_666c393d-4d97-4404-8fac-43045146f37f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentLineItems_9482be8a-9cca-45a3-9ccd-1a084b3238da" xlink:to="loc_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment_666c393d-4d97-4404-8fac-43045146f37f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_626ed38a-bc5e-49a4-a307-705f1a10ed62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_626ed38a-bc5e-49a4-a307-705f1a10ed62" xlink:to="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_646b0bd5-3b8d-433d-842d-65bb80ccad69" xlink:to="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SouthboroughMassachusettsMember_43a4cda3-cc0e-44f7-82a1-5e3b09397428" xlink:href="cgnx-20231231.xsd#cgnx_SouthboroughMassachusettsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_cgnx_SouthboroughMassachusettsMember_43a4cda3-cc0e-44f7-82a1-5e3b09397428" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BacNinhVietnamMember_00bfaec6-2598-4fcf-a5c9-fb17c8fa145b" xlink:href="cgnx-20231231.xsd#cgnx_BacNinhVietnamMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_cgnx_BacNinhVietnamMember_00bfaec6-2598-4fcf-a5c9-fb17c8fa145b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_SG_b04fb768-44ec-4c4b-a927-c3400cdf5c5c" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_SG"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_01f480b9-82fb-4f7c-97f5-cfe9617264df" xlink:to="loc_country_SG_b04fb768-44ec-4c4b-a927-c3400cdf5c5c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_3ceb4575-c5c9-47b8-adb9-6dfb7d1fdfa1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_250c7b60-654a-4a42-a974-2d3628be7cc8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_6f4f7b19-d508-449f-a615-edc261045646" xlink:to="loc_us-gaap_ContractTerminationMember_250c7b60-654a-4a42-a974-2d3628be7cc8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentByTypeAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PropertyPlantAndEquipmentTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentByTypeAxis_d4bfc8cf-b7a3-485c-b541-d465b5a91349" xlink:to="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A88000SquareFootPremisesMember_b7c89d75-bc5b-4adc-96ee-be92b514b8e1" xlink:href="cgnx-20231231.xsd#cgnx_A88000SquareFootPremisesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:to="loc_cgnx_A88000SquareFootPremisesMember_b7c89d75-bc5b-4adc-96ee-be92b514b8e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_A27000SquareFootPremisesMember_914e808e-ecd0-43e1-9a5d-3d8f66716017" xlink:href="cgnx-20231231.xsd#cgnx_A27000SquareFootPremisesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PropertyPlantAndEquipmentTypeDomain_bdb0a951-5469-4cdb-a156-ada60b36c4ba" xlink:to="loc_cgnx_A27000SquareFootPremisesMember_914e808e-ecd0-43e1-9a5d-3d8f66716017" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LessorLeaseDescriptionLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionTable_8233e740-0e54-43bc-a1de-4eb6febc4400" xlink:to="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseExpense_6a41fca6-0d15-430e-81dc-ea34b7e701d7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseExpense_6a41fca6-0d15-430e-81dc-ea34b7e701d7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeasePayments_f5a4ad9a-d467-44b7-9de9-0d5b3b65835a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeasePayments"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeasePayments_f5a4ad9a-d467-44b7-9de9-0d5b3b65835a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_5ea8da93-3715-4732-a0ec-7879a7a24a27" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized_5ea8da93-3715-4732-a0ec-7879a7a24a27" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_e8ce8873-a020-4e5f-b588-b05637710f24" xlink:href="cgnx-20231231.xsd#cgnx_OperatingLeaseLiabilityDiscountedPresentValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_OperatingLeaseLiabilityDiscountedPresentValue_e8ce8873-a020-4e5f-b588-b05637710f24" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseLiability_29da6738-975f-4182-840a-1d053b8e261e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseLiability"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseLiability_29da6738-975f-4182-840a-1d053b8e261e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetRentableArea_ca440df9-9f35-4bf6-82cd-9e3df7cf177c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetRentableArea"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_NetRentableArea_ca440df9-9f35-4bf6-82cd-9e3df7cf177c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseTermOfContract_51ba926b-5796-4a5c-9a86-e818da64c49e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseTermOfContract"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseTermOfContract_51ba926b-5796-4a5c-9a86-e818da64c49e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_efb63e7a-8b74-41d8-9b6d-19429bd7e72f" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract_efb63e7a-8b74-41d8-9b6d-19429bd7e72f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseRightOfUseAsset_67245332-c5e7-453e-9903-2d92169573f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseRightOfUseAsset"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseRightOfUseAsset_67245332-c5e7-453e-9903-2d92169573f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_1f88e857-a06f-4550-9e07-5b32c9fe51ba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent_1f88e857-a06f-4550-9e07-5b32c9fe51ba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_dac1f3dc-b1de-4943-a44a-8ecfb5fd11ad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1_dac1f3dc-b1de-4943-a44a-8ecfb5fd11ad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_LesseeOperatingLeaseComponents_bcb3afa2-d79e-4c8b-8d5e-edce8f066899" xlink:href="cgnx-20231231.xsd#cgnx_LesseeOperatingLeaseComponents"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_cgnx_LesseeOperatingLeaseComponents_bcb3afa2-d79e-4c8b-8d5e-edce8f066899" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d85b749-fdf9-4b61-8a3f-273551b8b91b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_4d85b749-fdf9-4b61-8a3f-273551b8b91b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_0c80547f-f2d3-40db-97ab-9042ddc81b0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear_0c80547f-f2d3-40db-97ab-9042ddc81b0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_VariableLeasePayment_08ee7ebc-7e98-49d8-8ce7-21d3b3632955" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_VariableLeasePayment"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LessorLeaseDescriptionLineItems_d49d4eab-7e21-4647-8ae5-5c2d0c88351d" xlink:to="loc_us-gaap_VariableLeasePayment_08ee7ebc-7e98-49d8-8ce7-21d3b3632955" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LeasesScheduleofPaymentsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LeasesScheduleofPaymentsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LeasesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_cfe01a59-667d-45ad-a80c-4cd0a29f1b78" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths_cfe01a59-667d-45ad-a80c-4cd0a29f1b78" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_44ef4950-9110-4b55-a3d6-0eba64dd652f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo_44ef4950-9110-4b55-a3d6-0eba64dd652f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_8f195f92-4604-4a4d-90e8-b6341cb1bcde" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree_8f195f92-4604-4a4d-90e8-b6341cb1bcde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_4e6a5fb0-96b7-475a-b490-7d9ec311545d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour_4e6a5fb0-96b7-475a-b490-7d9ec311545d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_1c42d2ab-0082-480d-9136-9dd63607830a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive_1c42d2ab-0082-480d-9136-9dd63607830a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_08ae6a2b-e9f3-4135-88a0-5c8620de629d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive_08ae6a2b-e9f3-4135-88a0-5c8620de629d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_b82a9087-8833-418c-a5ea-2bfe894c5c4b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_LeasesAbstract_0820fb38-3f11-45ec-b1f3-15f2a07566fd" xlink:to="loc_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue_b82a9087-8833-418c-a5ea-2bfe894c5c4b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#GoodwillChangesintheCarryingValueofGoodwillDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_125d4373-8b3c-41fb-b638-43584d6cc61c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfGoodwillTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_125d4373-8b3c-41fb-b638-43584d6cc61c" xlink:to="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_9bfd055c-fb3b-4a06-8715-2aa27f4d26d1" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_e85395c8-3a9a-4526-b9d9-05cc24bab7f3" xlink:href="cgnx-20231231.xsd#cgnx_SACSiriusAdvancedCyberneticsGmbHMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:to="loc_cgnx_SACSiriusAdvancedCyberneticsGmbHMember_e85395c8-3a9a-4526-b9d9-05cc24bab7f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_a4f39efc-c16a-434c-8283-86578331d306" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_b54d2f63-2248-4528-87bd-b57d9b64601e" xlink:to="loc_cgnx_MoritexCorporationMember_a4f39efc-c16a-434c-8283-86578331d306" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfGoodwillTable_5429701e-3b71-43e8-816a-3193ad0b6933" xlink:to="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillLineItems_4d9f9f5f-210b-4db5-b864-26589c5f4007" xlink:to="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_93cbb894-17c4-439a-8bcf-d072eb43cb7a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_Goodwill_93cbb894-17c4-439a-8bcf-d072eb43cb7a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillOtherIncreaseDecrease_e57916f5-c015-4b50-8b8a-c0922b8dc7df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillOtherIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_GoodwillOtherIncreaseDecrease_e57916f5-c015-4b50-8b8a-c0922b8dc7df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_9ed0efc6-1e8f-468c-9f8a-2f4a1e94242d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_GoodwillForeignCurrencyTranslationGainLoss_9ed0efc6-1e8f-468c-9f8a-2f4a1e94242d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_9f35a8ed-d6a8-40ed-9ad1-67ad4e7b2c5b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillRollForward_c67a69d3-f8e8-4981-8e7b-d935d597ccda" xlink:to="loc_us-gaap_Goodwill_9f35a8ed-d6a8-40ed-9ad1-67ad4e7b2c5b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsAmortizedIntangibleAssetsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_7b1b35c6-e613-46e0-af2e-92187622205c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_7b1b35c6-e613-46e0-af2e-92187622205c" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_4c25648e-03ea-44b4-8a55-71ea7fe4f1b7" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DistributionRightsMember_8c6c4b81-c643-4e1e-927c-1afea67356a9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DistributionRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_DistributionRightsMember_8c6c4b81-c643-4e1e-927c-1afea67356a9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_5e7c58af-5546-405d-83c9-b7db9c5bc31f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_5e7c58af-5546-405d-83c9-b7db9c5bc31f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_532b20c8-5ea5-4301-bd64-cd68784edfdf" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_532b20c8-5ea5-4301-bd64-cd68784edfdf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncompeteAgreementsMember_421eaa3c-be8f-4f83-b14e-d391369e1894" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncompeteAgreementsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_NoncompeteAgreementsMember_421eaa3c-be8f-4f83-b14e-d391369e1894" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_92385586-2854-4383-b7ba-2227b2759dcc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_TrademarksMember_92385586-2854-4383-b7ba-2227b2759dcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherIntangibleAssetsMember_b9444a3b-5900-4b03-ac40-c906005a336b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherIntangibleAssetsMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_bcc59a81-32c4-4b31-9db6-6f5f94adcec8" xlink:to="loc_us-gaap_OtherIntangibleAssetsMember_b9444a3b-5900-4b03-ac40-c906005a336b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_078a7a79-4512-44db-a4c6-7879a43be0f3" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsGross_05bceb04-09cb-4e8f-a43f-bb8cae66f4c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsGross_05bceb04-09cb-4e8f-a43f-bb8cae66f4c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_675dd385-3266-448f-844a-d0f9e59ac649" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization_675dd385-3266-448f-844a-d0f9e59ac649" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_67221aea-c517-4032-beca-b1aded155273" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_637b380d-54b6-404d-a007-1fe17842fad5" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_67221aea-c517-4032-beca-b1aded155273" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsNarrativeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4b00496a-7fbe-489e-9d60-dbe892b93941" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_4b00496a-7fbe-489e-9d60-dbe892b93941" xlink:to="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_c070084b-9d56-4253-9667-581862aee37b" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DevelopedTechnologyRightsMember_0a245c6a-0923-40ea-af2b-3c554aed0370" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DevelopedTechnologyRightsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_DevelopedTechnologyRightsMember_0a245c6a-0923-40ea-af2b-3c554aed0370" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsAndRelationshipsMember_d40bfa3f-c435-40c4-a281-266a5ec8a55e" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsAndRelationshipsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_CustomerContractsAndRelationshipsMember_d40bfa3f-c435-40c4-a281-266a5ec8a55e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_1f509de5-6267-44fe-bf34-cde77128204a" xlink:href="cgnx-20231231.xsd#cgnx_DistributionNetworksAndCustomerRelationshipsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_DistributionNetworksAndCustomerRelationshipsMember_1f509de5-6267-44fe-bf34-cde77128204a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_f1c8b286-7bfb-4475-8ab3-7fa9d3362c62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_CustomerRelationshipsMember_f1c8b286-7bfb-4475-8ab3-7fa9d3362c62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_400e9b33-5b99-42da-824f-275a67c19697" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_cgnx_CompletedTechnologyMember_400e9b33-5b99-42da-824f-275a67c19697" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_bfc409c6-02e1-4093-9894-4bb9e520ede8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_32916afe-534e-497f-a168-36b47b4f04a5" xlink:to="loc_us-gaap_TrademarksMember_bfc409c6-02e1-4093-9894-4bb9e520ede8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_7eaebe14-cfc0-4cc2-aca9-f1dc9589d42c" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_36fd268c-1ff0-425a-aff1-094e6ebf405e" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_1553288c-b68b-4a7d-990b-de422228c3b3" xlink:to="loc_cgnx_MoritexCorporationMember_36fd268c-1ff0-425a-aff1-094e6ebf405e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable_a7836a5d-4b85-429d-95d6-dd1b6f2d4026" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_a91210f1-acdf-4496-a29e-7d3d0528f562" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_a91210f1-acdf-4496-a29e-7d3d0528f562" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_ade39a3d-f9fb-4bf5-9ddd-186ee9054775" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife_ade39a3d-f9fb-4bf5-9ddd-186ee9054775" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_25797bf1-de13-4bdd-b4d2-4e291351332d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsLineItems_224a96d8-dcad-4997-8ffd-b3f191db7379" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill_25797bf1-de13-4bdd-b4d2-4e291351332d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_f2725a19-53d6-4ecd-9119-e0c1018bf7b1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths_f2725a19-53d6-4ecd-9119-e0c1018bf7b1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_b7b7cc9c-71c3-45a6-a92a-c49fc1d54fcf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo_b7b7cc9c-71c3-45a6-a92a-c49fc1d54fcf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_81a82eff-c5b0-4f8f-a91e-c36d875658ef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree_81a82eff-c5b0-4f8f-a91e-c36d875658ef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_1c5c5763-1f8e-4659-a8e4-997e6754b27a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour_1c5c5763-1f8e-4659-a8e4-997e6754b27a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_d41c25d7-cf8d-4132-996f-ef0f4d9c9f88" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive_d41c25d7-cf8d-4132-996f-ef0f4d9c9f88" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_ec991d1a-e21b-4140-9203-8029999d8a05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive_ec991d1a-e21b-4140-9203-8029999d8a05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsNet_f9f0fa7f-2fa8-49bb-a79c-40f30e3a1b44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsNet"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract_023670f1-db14-4204-aa29-29bdc4005e4c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsNet_f9f0fa7f-2fa8-49bb-a79c-40f30e3a1b44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AccruedExpensesConstituentsofAccruedExpensesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_2cf2407e-15b5-4559-92b3-cafcd01f54c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrentAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_2cf2407e-15b5-4559-92b3-cafcd01f54c6" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_9beea851-7523-4bc7-85ea-8034e18579a6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent_9beea851-7523-4bc7-85ea-8034e18579a6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedBonusesCurrent_af40e025-ca59-4326-a4f1-0a17d1c7453d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedBonusesCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_AccruedBonusesCurrent_af40e025-ca59-4326-a4f1-0a17d1c7453d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedSalariesCurrent_68b90194-c823-4618-86ef-b294096b0d4a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedSalariesCurrent"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_AccruedSalariesCurrent_68b90194-c823-4618-86ef-b294096b0d4a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RetirementAllowance_f97023fc-309f-4e40-b71a-7511a7e47711" xlink:href="cgnx-20231231.xsd#cgnx_RetirementAllowance"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_cgnx_RetirementAllowance_f97023fc-309f-4e40-b71a-7511a7e47711" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedVacationCurrent_867e1cea-6308-448a-aaa5-9dc261d664df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedVacationCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_AccruedVacationCurrent_867e1cea-6308-448a-aaa5-9dc261d664df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_3065ab0c-c4fe-4b11-ac72-5b09d430ebb7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualClassifiedCurrent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_ProductWarrantyAccrualClassifiedCurrent_3065ab0c-c4fe-4b11-ac72-5b09d430ebb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherAccruedLiabilitiesCurrent_d26d39d5-42c8-404b-80cd-115d6ec3c483" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherAccruedLiabilitiesCurrent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_OtherAccruedLiabilitiesCurrent_d26d39d5-42c8-404b-80cd-115d6ec3c483" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesCurrent_5e3ad749-7bed-493d-9a3e-26abd4faab89" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesCurrent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AccruedLiabilitiesCurrentAbstract_cb2894ac-39ca-47b2-b149-aff8954aede0" xlink:to="loc_us-gaap_AccruedLiabilitiesCurrent_5e3ad749-7bed-493d-9a3e-26abd4faab89" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_109112a2-bd82-428f-acff-61fc021cafde" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_2cf2407e-15b5-4559-92b3-cafcd01f54c6" xlink:to="loc_us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent_109112a2-bd82-428f-acff-61fc021cafde" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_07369d31-24af-40bd-9466-da082fbfe59c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_2cf2407e-15b5-4559-92b3-cafcd01f54c6" xlink:to="loc_us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities_07369d31-24af-40bd-9466-da082fbfe59c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#AccruedExpensesChangesinWarrantyObligationsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PayablesAndAccrualsAbstract_fff63471-f025-400b-ace3-682f2338e611" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PayablesAndAccrualsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MovementInStandardProductWarrantyAccrualRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PayablesAndAccrualsAbstract_fff63471-f025-400b-ace3-682f2338e611" xlink:to="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_51575a25-2d31-45f2-b2e0-2497a8c860f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:to="loc_us-gaap_ProductWarrantyAccrual_51575a25-2d31-45f2-b2e0-2497a8c860f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_d75b708d-b592-4351-8f1d-a6edb859226f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualWarrantiesIssued"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:to="loc_us-gaap_ProductWarrantyAccrualWarrantiesIssued_d75b708d-b592-4351-8f1d-a6edb859226f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrualPayments_c6daf73b-65b9-476a-8a3d-5ef8caa1a751" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrualPayments"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:to="loc_us-gaap_ProductWarrantyAccrualPayments_c6daf73b-65b9-476a-8a3d-5ef8caa1a751" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_e8d36834-58ec-4192-b610-f0c3f2266c2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:to="loc_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss_e8d36834-58ec-4192-b610-f0c3f2266c2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProductWarrantyAccrual_ee1b210b-bf41-45d9-8e36-30a0dfaa8b08" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProductWarrantyAccrual"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInStandardProductWarrantyAccrualRollForward_c3c69389-d825-4ae9-a5d6-38fc43b0c790" xlink:to="loc_us-gaap_ProductWarrantyAccrual_ee1b210b-bf41-45d9-8e36-30a0dfaa8b08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#CommitmentsandContingenciesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_b318befb-263b-43dd-a40e-17fbd9ee3404" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommitmentsAndContingenciesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_b1be7366-462e-498d-b0ba-d488729f29cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_b318befb-263b-43dd-a40e-17fbd9ee3404" xlink:to="loc_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted_b1be7366-462e-498d-b0ba-d488729f29cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OtherInventoryPurchasedGoods_3ad31e00-b0e4-4936-aef7-e4b4f17802d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OtherInventoryPurchasedGoods"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CommitmentsAndContingenciesDisclosureAbstract_b318befb-263b-43dd-a40e-17fbd9ee3404" xlink:to="loc_us-gaap_OtherInventoryPurchasedGoods_3ad31e00-b0e4-4936-aef7-e4b4f17802d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsAdditionalDetailsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_36801637-1928-4109-a60f-063e9659e06c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_36801637-1928-4109-a60f-063e9659e06c" xlink:to="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:to="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_7392f08a-0a59-4fb8-b6b2-1c9869ad7c73" xlink:to="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_ebc30a89-12e3-4af8-8ff7-dfe18e04fa6f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_f8f63c84-4bc1-4a45-a9ae-d2717cd48b05" xlink:to="loc_us-gaap_NondesignatedMember_ebc30a89-12e3-4af8-8ff7-dfe18e04fa6f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentRiskAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:to="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeContractTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentRiskAxis_69de7b2a-914d-4445-9f0b-e99143042cc6" xlink:to="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignExchangeForwardMember_61e6a835-392e-4d2f-a502-4b1790dbd327" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignExchangeForwardMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeContractTypeDomain_c4a81216-0314-4a54-9fd6-b4be54290307" xlink:to="loc_us-gaap_ForeignExchangeForwardMember_61e6a835-392e-4d2f-a502-4b1790dbd327" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_569717df-fed4-4808-9946-1b9b2ae44dc7" xlink:to="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_78dd6e95-e074-4bf3-961d-fedc278fc8cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1_78dd6e95-e074-4bf3-961d-fedc278fc8cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeNotionalAmount_3dd13514-db7e-4e05-aeab-c5ceed2c0a80" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeNotionalAmount"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_DerivativeNotionalAmount_3dd13514-db7e-4e05-aeab-c5ceed2c0a80" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_32f62cec-caad-4970-8971-86b5a46ac18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_e56f1e8c-7f3b-40f8-965b-5f12c1d4942c" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_32f62cec-caad-4970-8971-86b5a46ac18d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsOutstandingForwardContractsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_35ea6a8d-23ea-430c-900e-bd2e8876ce10" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_35ea6a8d-23ea-430c-900e-bd2e8876ce10" xlink:to="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:to="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_09fdb41e-c817-4014-92b7-33658c602efc" xlink:to="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_00545128-5b91-4333-9058-5bfd960ffe02" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_2b6e66ad-277c-4d52-88b9-7363b3a9c59d" xlink:to="loc_us-gaap_NondesignatedMember_00545128-5b91-4333-9058-5bfd960ffe02" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_CurrencyAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:to="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_AllCurrenciesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_CurrencyAxis_aa7c6967-9eb9-4504-aa1a-e31f151fc49c" xlink:to="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_EUR_37f71af4-e9ac-4308-a6cb-9d9a6873bb4f" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_EUR"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_EUR_37f71af4-e9ac-4308-a6cb-9d9a6873bb4f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_JPY_5fe47ab7-534d-40db-981c-81885460fe61" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_JPY"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_JPY_5fe47ab7-534d-40db-981c-81885460fe61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_MXN_fdd0e0b5-25c3-4812-ac1e-7ba65fd014f7" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_MXN"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_MXN_fdd0e0b5-25c3-4812-ac1e-7ba65fd014f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_GBP_a29a15e2-5b3f-4908-9168-76783da853fb" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_GBP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_GBP_a29a15e2-5b3f-4908-9168-76783da853fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_HUF_9b8c2aee-ee3f-494a-a57e-94db764db9eb" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_HUF"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_HUF_9b8c2aee-ee3f-494a-a57e-94db764db9eb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CAD_06eb2c86-97f4-4f1e-b7d0-8604ce7d7188" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CAD"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CAD_06eb2c86-97f4-4f1e-b7d0-8604ce7d7188" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CNY_49365978-bfb2-403a-ae3c-006df2a1a050" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CNY"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CNY_49365978-bfb2-403a-ae3c-006df2a1a050" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_CHF_3f35e5d6-be02-40cb-aa57-67097c3f3001" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_CHF"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_CHF_3f35e5d6-be02-40cb-aa57-67097c3f3001" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_currency_SGD_3572389e-e955-47a5-8234-26e405e73068" xlink:href="https://xbrl.sec.gov/currency/2023/currency-2023.xsd#currency_SGD"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_currency_AllCurrenciesDomain_92e74ffc-22d0-4a5c-86a9-0a0b73bdc7e1" xlink:to="loc_currency_SGD_3572389e-e955-47a5-8234-26e405e73068" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeTable_9793f9a1-6bbd-4a52-99e3-380700209753" xlink:to="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetNotionalAmount_580190ac-7e31-4721-b61b-e2a48d310db1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetNotionalAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeLineItems_425fbd58-5e55-45d0-9cad-a799eb222503" xlink:to="loc_us-gaap_DerivativeAssetNotionalAmount_580190ac-7e31-4721-b61b-e2a48d310db1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsBalanceSheetLocationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_34301771-7eea-480d-9351-c05d9244ca60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_34301771-7eea-480d-9351-c05d9244ca60" xlink:to="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:to="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_0953ba1b-13b0-44d5-bf35-e049e1d25e20" xlink:to="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_2c3da0be-3054-4efe-a9ea-2ee0a13a2d57" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_d93ae469-8e4b-476c-8121-9eb55ee11132" xlink:to="loc_us-gaap_NondesignatedMember_2c3da0be-3054-4efe-a9ea-2ee0a13a2d57" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativesFairValueLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable_b1885b89-3539-4b7b-b2bf-023cc6a2b931" xlink:to="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_15d12b12-91ce-4859-847f-03bb5905a883" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:to="loc_us-gaap_DerivativeAssets_15d12b12-91ce-4859-847f-03bb5905a883" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_2abee7c0-5619-4e6a-93af-e7c993307de0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativesFairValueLineItems_b13ce224-444d-4630-878d-0e60e23552bf" xlink:to="loc_us-gaap_DerivativeLiabilities_2abee7c0-5619-4e6a-93af-e7c993307de0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_bc4f741d-5435-423b-9090-b5d05a32bf93" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeAsset"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeAsset_bc4f741d-5435-423b-9090-b5d05a32bf93" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_82e2a0fd-c8a0-4814-91ff-e9dfb953a3af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset_82e2a0fd-c8a0-4814-91ff-e9dfb953a3af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssets_ee3c5a28-8f41-47de-a51c-b52a511be1aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssets"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeAssets_ee3c5a28-8f41-47de-a51c-b52a511be1aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_b2ca1915-f9d9-4bd4-8cb7-ecfd67930d2b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeFairValueOfDerivativeLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeFairValueOfDerivativeLiability_b2ca1915-f9d9-4bd4-8cb7-ecfd67930d2b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_05b8185c-e59e-467f-82c9-605b18be6803" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset_05b8185c-e59e-467f-82c9-605b18be6803" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilities_8b9d3fde-4605-441a-9d89-caa4fba9b5ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilities"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeLiabilities_8b9d3fde-4605-441a-9d89-caa4fba9b5ec" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_d8901f75-2b5d-4a8c-86e1-44b90f441019" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration_d8901f75-2b5d-4a8c-86e1-44b90f441019" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_0ceb9eed-7d4e-48aa-b36c-9d64dce3bd53" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_6128cdf7-c90d-470b-9197-dde9696cd24a" xlink:to="loc_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration_0ceb9eed-7d4e-48aa-b36c-9d64dce3bd53" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_72be9e87-1364-4815-9ce7-6c6b25792500" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract_72be9e87-1364-4815-9ce7-6c6b25792500" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:to="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_HedgingDesignationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationAxis_01ab31f0-7fde-4a61-a23d-4cba5042d129" xlink:to="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NondesignatedMember_39d55a9e-6125-4ac3-884c-85febbb0d0b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NondesignatedMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_HedgingDesignationDomain_20f1190d-417a-4556-a128-9c5c1985197d" xlink:to="loc_us-gaap_NondesignatedMember_39d55a9e-6125-4ac3-884c-85febbb0d0b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeInstrumentsGainLossLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable_3607bc54-e209-4487-8548-be2f070d2341" xlink:to="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DerivativeGainLossOnDerivativeNet_36e11ff4-93d2-4ef8-bc8a-572b73bdca82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DerivativeGainLossOnDerivativeNet"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DerivativeInstrumentsGainLossLineItems_b5096bc9-e9b6-4bc9-a60b-5a28a17c032c" xlink:to="loc_us-gaap_DerivativeGainLossOnDerivativeNet_36e11ff4-93d2-4ef8-bc8a-572b73bdca82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionNarrativesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionNarrativesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f7b2a83-0580-4291-a7e0-f46083d8cb87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CapitalizedContractCostGross_b5360c57-f3be-4206-9050-1fab5e0bf314" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CapitalizedContractCostGross"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_9f7b2a83-0580-4291-a7e0-f46083d8cb87" xlink:to="loc_us-gaap_CapitalizedContractCostGross_b5360c57-f3be-4206-9050-1fab5e0bf314" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionDisaggregationbyGeographyandTypeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_16ede441-9ffc-4c26-b922-d04676d722f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_16ede441-9ffc-4c26-b922-d04676d722f0" xlink:to="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:to="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_24839264-d9fe-41d7-9920-f15c1d824cf7" xlink:to="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_AmericasMember_6f87d92d-c5f4-457d-9654-2fdc5c6a8f82" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_AmericasMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_srt_AmericasMember_6f87d92d-c5f4-457d-9654-2fdc5c6a8f82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_5a2e9663-eae0-4880-9b2e-03d2c9690808" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_srt_EuropeMember_5a2e9663-eae0-4880-9b2e-03d2c9690808" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_6f0996c3-42e3-4605-9eb9-4a1e7ac87e19" xlink:href="cgnx-20231231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_cgnx_GreaterChinaMember_6f0996c3-42e3-4605-9eb9-4a1e7ac87e19" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherAsiaMember_ca28610a-5990-4bba-b103-450cec6c4931" xlink:href="cgnx-20231231.xsd#cgnx_OtherAsiaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_2262d841-d997-4100-af9a-688363033f3e" xlink:to="loc_cgnx_OtherAsiaMember_ca28610a-5990-4bba-b103-450cec6c4931" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductOrServiceAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:to="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ProductsAndServicesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductOrServiceAxis_8c42cfb9-60ef-48b3-8941-b4f18e12f9fa" xlink:to="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StandardProductandServicesMember_03b7fc8c-8c80-4f0e-b6b7-c2b0317b343a" xlink:href="cgnx-20231231.xsd#cgnx_StandardProductandServicesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:to="loc_cgnx_StandardProductandServicesMember_03b7fc8c-8c80-4f0e-b6b7-c2b0317b343a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_148a3ab5-5fbc-4bc6-a2c9-0b5269d3357f" xlink:href="cgnx-20231231.xsd#cgnx_ApplicationofCustomerSpecificSolutionsMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ProductsAndServicesDomain_94de3315-52fc-4280-9d2e-4d0bf8cb2a3d" xlink:to="loc_cgnx_ApplicationofCustomerSpecificSolutionsMember_148a3ab5-5fbc-4bc6-a2c9-0b5269d3357f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisaggregationOfRevenueLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueTable_15683eba-c91b-4895-9c9c-e94c804e8bcc" xlink:to="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c339f0de-da87-49b1-a96d-364302c5533a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisaggregationOfRevenueLineItems_74e4cda8-cef3-4e95-a7cf-080259f0a307" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_c339f0de-da87-49b1-a96d-364302c5533a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionAllowanceforCreditLossDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_3fc3dd1f-597f-44c1-8617-791956b06219" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueRecognitionAndDeferredRevenueAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueRecognitionAndDeferredRevenueAbstract_3fc3dd1f-597f-44c1-8617-791956b06219" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_07825ced-60dd-49d2-8b4d-7707735f2452" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_07825ced-60dd-49d2-8b4d-7707735f2452" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProvisionForDoubtfulAccounts_1714d576-50bc-42ed-b877-b44e6dc171ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProvisionForDoubtfulAccounts"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:to="loc_us-gaap_ProvisionForDoubtfulAccounts_1714d576-50bc-42ed-b877-b44e6dc171ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_1adbe99c-8a49-4c02-91a2-2947eb2af633" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs_1adbe99c-8a49-4c02-91a2-2947eb2af633" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_486bf3a0-b3ce-4cec-b8a6-28263abbc429" xlink:href="cgnx-20231231.xsd#cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:to="loc_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment_486bf3a0-b3ce-4cec-b8a6-28263abbc429" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_051da63b-81ee-4eca-a62d-096db11b53be" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllowanceForDoubtfulAccountsReceivable"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward_2c20836f-42a3-4930-8263-1919c6d0e4ae" xlink:to="loc_us-gaap_AllowanceForDoubtfulAccountsReceivable_051da63b-81ee-4eca-a62d-096db11b53be" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerAbstract_efe37225-9600-4447-a6e9-94d9a69093a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:href="cgnx-20231231.xsd#cgnx_CustomerContractsLiabilityCurrentRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_efe37225-9600-4447-a6e9-94d9a69093a2" xlink:to="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_dac8ce8c-980f-463c-a25f-95b2382581cc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_dac8ce8c-980f-463c-a25f-95b2382581cc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_58ff43e1-4b6d-462f-84f6-560d20c35590" xlink:href="cgnx-20231231.xsd#cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:to="loc_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease_58ff43e1-4b6d-462f-84f6-560d20c35590" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_25fc1029-05c4-4b9c-a37c-cc2d6dd63f25" xlink:href="cgnx-20231231.xsd#cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:to="loc_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized_25fc1029-05c4-4b9c-a37c-cc2d6dd63f25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_6e3adafe-b6a8-4eff-90ec-7a072ca68aca" xlink:href="cgnx-20231231.xsd#cgnx_ContractLiabilityForeignExchangeRateChanges"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:to="loc_cgnx_ContractLiabilityForeignExchangeRateChanges_6e3adafe-b6a8-4eff-90ec-7a072ca68aca" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7d16feaf-3b6b-4678-a34c-dc209ca79b5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractWithCustomerLiabilityCurrent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_cgnx_CustomerContractsLiabilityCurrentRollForward_45cec297-c90a-4c50-a088-ed9ab8455e83" xlink:to="loc_us-gaap_ContractWithCustomerLiabilityCurrent_7d16feaf-3b6b-4678-a34c-dc209ca79b5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredRevenueRefundPayments1_1b085a70-e71d-404d-a90a-74a2f7e124c1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredRevenueRefundPayments1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenueFromContractWithCustomerAbstract_efe37225-9600-4447-a6e9-94d9a69093a2" xlink:to="loc_us-gaap_DeferredRevenueRefundPayments1_1b085a70-e71d-404d-a90a-74a2f7e124c1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ShareholdersEquityAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EquityAbstract_f5368d0c-56b3-4dfe-8566-f33877c6d18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EquityAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfStockByClassTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EquityAbstract_f5368d0c-56b3-4dfe-8566-f33877c6d18d" xlink:to="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:to="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareRepurchaseProgramDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramAxis_dbbfc8cf-bddf-4e26-beaa-bdbf6fbc7455" xlink:to="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramOctober2018Member_5aceca7a-ac9d-4ed8-bd00-396858582211" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramOctober2018Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramOctober2018Member_5aceca7a-ac9d-4ed8-bd00-396858582211" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2020Member_ce0f0238-70ac-49f9-8a69-2a91abde2621" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2020Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramMarch2020Member_ce0f0238-70ac-49f9-8a69-2a91abde2621" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_RepurchaseProgramMarch2022Member_971cbaf6-d715-4809-b86c-f9d4c3dfafa8" xlink:href="cgnx-20231231.xsd#cgnx_RepurchaseProgramMarch2022Member"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareRepurchaseProgramDomain_9527c6f9-afc5-4a75-a546-dfc17c0bea60" xlink:to="loc_cgnx_RepurchaseProgramMarch2022Member_971cbaf6-d715-4809-b86c-f9d4c3dfafa8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ClassOfStockLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfStockByClassTable_f24af7b3-3793-46b1-a87f-dd388ee99b2e" xlink:to="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockSharesAuthorized_c6d073a1-b131-4949-a34a-cd9253a40bb6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PreferredStockSharesAuthorized_c6d073a1-b131-4949-a34a-cd9253a40bb6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PreferredStockParOrStatedValuePerShare_612fa3a6-d126-4ac2-9efc-8ae761c2991a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PreferredStockParOrStatedValuePerShare"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PreferredStockParOrStatedValuePerShare_612fa3a6-d126-4ac2-9efc-8ae761c2991a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockParOrStatedValuePerShare_3f6822e8-bfec-4910-8c7b-fb83c1086c1a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockParOrStatedValuePerShare"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockParOrStatedValuePerShare_3f6822e8-bfec-4910-8c7b-fb83c1086c1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockSharesAuthorized_13870c5f-9928-4b83-9a30-5be3c06cb122" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockSharesAuthorized"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockSharesAuthorized_13870c5f-9928-4b83-9a30-5be3c06cb122" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_fb1694df-44f1-4371-8f70-d2acf3b74892" xlink:href="cgnx-20231231.xsd#cgnx_VoteEntitledForEachCommonShareOutstanding"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_VoteEntitledForEachCommonShareOutstanding_fb1694df-44f1-4371-8f70-d2acf3b74892" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9973a94a-1db7-479c-ac66-4bf2d6ac0077" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramAuthorizedAmount1"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchaseProgramAuthorizedAmount1_9973a94a-1db7-479c-ac66-4bf2d6ac0077" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodShares_3749c116-d35a-4d79-9acb-679b9a724f25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodShares"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodShares_3749c116-d35a-4d79-9acb-679b9a724f25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchasedDuringPeriodValue_7b2e4732-a62a-49c2-aafc-29a59f518d79" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchasedDuringPeriodValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchasedDuringPeriodValue_7b2e4732-a62a-49c2-aafc-29a59f518d79" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_f84380ee-0da8-4ada-8134-bcd6d39eb507" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled_f84380ee-0da8-4ada-8134-bcd6d39eb507" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_2aded3bc-af98-4636-863b-24e303e72869" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodShares"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodShares_2aded3bc-af98-4636-863b-24e303e72869" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_d5234524-9c5f-4d96-b5ea-f3f22398ebd2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRedeemedOrCalledDuringPeriodValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRedeemedOrCalledDuringPeriodValue_d5234524-9c5f-4d96-b5ea-f3f22398ebd2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_1c7f8431-7f45-4516-8f18-007cfcb5c5ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1_1c7f8431-7f45-4516-8f18-007cfcb5c5ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_9d1f7fac-1fe3-45fc-835f-dd2ed8e9cd30" xlink:href="cgnx-20231231.xsd#cgnx_StockRepurchaseProgramBuybackExciseTax"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_cgnx_StockRepurchaseProgramBuybackExciseTax_9d1f7fac-1fe3-45fc-835f-dd2ed8e9cd30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CommonStockDividendsPerShareCashPaid_abbebfd7-5b39-41a6-a23d-95a6fe613af8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CommonStockDividendsPerShareCashPaid"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_CommonStockDividendsPerShareCashPaid_abbebfd7-5b39-41a6-a23d-95a6fe613af8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsOfDividends_37fd808a-28fc-4f17-812d-2d39ebaa01d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsOfDividends"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ClassOfStockLineItems_e02e6a17-ce52-4f22-95c6-64ee5ab79771" xlink:to="loc_us-gaap_PaymentsOfDividends_37fd808a-28fc-4f17-812d-2d39ebaa01d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_2a42ebca-6cfb-4104-80c6-4081305017ec" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_2a42ebca-6cfb-4104-80c6-4081305017ec" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_RangeMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeAxis_a487c1ee-3771-4332-9c56-735aec0e6b89" xlink:to="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MinimumMember_9f5a8292-b8ab-403a-973b-929a3e99ff66" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MinimumMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:to="loc_srt_MinimumMember_9f5a8292-b8ab-403a-973b-929a3e99ff66" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MaximumMember_d95a10a5-03eb-431f-9646-5918f84a73ed" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MaximumMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_RangeMember_df65a265-70e8-4f31-a368-d45b33252d1c" xlink:to="loc_srt_MaximumMember_d95a10a5-03eb-431f-9646-5918f84a73ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_f3568a5d-7b55-448c-9b3b-a9ff868741b3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_43ba5879-7cc9-4a06-9e88-4bccaa6c34d9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_EmployeeStockOptionMember_43ba5879-7cc9-4a06-9e88-4bccaa6c34d9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_d949b75b-3ae6-4a32-ac0e-982c48b0892f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_PerformanceSharesMember_d949b75b-3ae6-4a32-ac0e-982c48b0892f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember_c042abf3-a130-4ff4-a15e-1af84e3847a2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_b901a28a-1a85-4756-a78e-b780baae6f7e" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember_c042abf3-a130-4ff4-a15e-1af84e3847a2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameAxis_93cfa14f-ed0a-4749-bb62-324f035bf2a1" xlink:to="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_c3f91101-5d59-4d52-a8a3-69732bd4f161" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:to="loc_cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember_c3f91101-5d59-4d52-a8a3-69732bd4f161" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_f31a7117-6ef4-43d1-9947-75c7fc135c7b" xlink:href="cgnx-20231231.xsd#cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_PlanNameDomain_f6bee8d7-d40b-40ec-99ce-76c3db950b61" xlink:to="loc_cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember_f31a7117-6ef4-43d1-9947-75c7fc135c7b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_5d5ca22d-8738-4d50-9215-26925e4e2501" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_c733cb17-7fa5-454c-8cfa-5b49c70856c9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized_c733cb17-7fa5-454c-8cfa-5b49c70856c9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_1f00960e-94e4-4615-98ee-f9d82bd9004b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant_1f00960e-94e4-4615-98ee-f9d82bd9004b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_8b5ede7b-a51f-4436-bbb4-254edd6015ac" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1_8b5ede7b-a51f-4436-bbb4-254edd6015ac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ExpirationPeriodOfStockOptionPlan_9a8af5cb-0f18-492b-85d3-559317c18e56" xlink:href="cgnx-20231231.xsd#cgnx_ExpirationPeriodOfStockOptionPlan"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_ExpirationPeriodOfStockOptionPlan_9a8af5cb-0f18-492b-85d3-559317c18e56" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9ce15dc0-d793-43cf-a6b1-383f1a39d9a3" xlink:href="cgnx-20231231.xsd#cgnx_NumberOfGroupsWithinEmployeePopulation"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_NumberOfGroupsWithinEmployeePopulation_9ce15dc0-d793-43cf-a6b1-383f1a39d9a3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_eac6f37f-1bb1-496f-a4a5-92be2c9f110f" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement_eac6f37f-1bb1-496f-a4a5-92be2c9f110f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_52e55365-a733-43cf-a2ae-64513c2040e7" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement_52e55365-a733-43cf-a2ae-64513c2040e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d1341cd1-92d6-43eb-bb7e-ea5dc37703ab" xlink:href="cgnx-20231231.xsd#cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates_d1341cd1-92d6-43eb-bb7e-ea5dc37703ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6baa8126-b8fd-48c9-b121-20b58e58053f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_6baa8126-b8fd-48c9-b121-20b58e58053f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_64fd440f-4ffe-4121-885d-693ff0293565" xlink:href="cgnx-20231231.xsd#cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue_64fd440f-4ffe-4121-885d-693ff0293565" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_c6ce1a3f-6427-4e9f-8960-a0e4c9b23bfb" xlink:href="cgnx-20231231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue_c6ce1a3f-6427-4e9f-8960-a0e4c9b23bfb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_177c1574-61a0-475d-a52d-7f89b2a046b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions_177c1574-61a0-475d-a52d-7f89b2a046b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_afa4c3aa-1a86-46dc-95fd-fc62f0551b58" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_afa4c3aa-1a86-46dc-95fd-fc62f0551b58" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_08e200c4-c56e-486e-a5cf-d75ee41a462d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_08e200c4-c56e-486e-a5cf-d75ee41a462d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_11023ee0-71ac-4735-802f-b944871acb82" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation_11023ee0-71ac-4735-802f-b944871acb82" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_b9747675-6733-4516-a917-2c95b277cbe9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_b9747675-6733-4516-a917-2c95b277cbe9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0c20193-16fa-4175-9aec-d31a06f99b97" xlink:href="cgnx-20231231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_a0c20193-16fa-4175-9aec-d31a06f99b97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d1e058f3-1621-4551-ad70-e4232d281f83" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_d1e058f3-1621-4551-ad70-e4232d281f83" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_1a94a942-4110-4e57-a2dc-d270abaddbe1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_1a94a942-4110-4e57-a2dc-d270abaddbe1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_29e638b7-7ccb-4ab8-810c-4c324eb16392" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized_29e638b7-7ccb-4ab8-810c-4c324eb16392" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2a4e8b2e-acfd-4827-aa83-0f3d054b59f8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_2a4e8b2e-acfd-4827-aa83-0f3d054b59f8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_5a53030b-4999-46bc-9400-c897d3d7500b" xlink:href="cgnx-20231231.xsd#cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_22739328-ceb1-4fb8-9d75-1339894c4a55" xlink:to="loc_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO_5a53030b-4999-46bc-9400-c897d3d7500b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3e7f0f5e-f37c-4751-a032-1a0e00cc2404" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_3e7f0f5e-f37c-4751-a032-1a0e00cc2404" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_e21111bf-a276-4c14-896b-a34cb7ac08e8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod_e21111bf-a276-4c14-896b-a34cb7ac08e8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a1a2e8e-1636-4abf-bed8-1da3a63a356b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:to="loc_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised_6a1a2e8e-1636-4abf-bed8-1da3a63a356b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_15cfafab-729d-40ca-a94c-065c424af959" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod_15cfafab-729d-40ca-a94c-065c424af959" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_6e8ae895-1b95-4a98-b8ef-f9e01c8feda8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward_a9925264-3d5f-441e-821c-9103d3b1334f" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber_6e8ae895-1b95-4a98-b8ef-f9e01c8feda8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2ea59d3e-ea7f-43ac-84bd-f534650fa256" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_2ea59d3e-ea7f-43ac-84bd-f534650fa256" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_d5b76aea-f886-4c7c-b1e4-2c30dfe071af" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice_d5b76aea-f886-4c7c-b1e4-2c30dfe071af" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_6f3c8ab9-804e-4631-a122-a0cd918c57c3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice_6f3c8ab9-804e-4631-a122-a0cd918c57c3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_fd21062e-3f7f-4026-99af-3184401c157b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice_fd21062e-3f7f-4026-99af-3184401c157b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_250421d3-1b53-49f4-a001-9a871a1ec2bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward_10381c0e-858d-4eba-82d2-461ae866c15e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice_250421d3-1b53-49f4-a001-9a871a1ec2bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_808c90dc-398d-4df4-a737-227183c68762" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber_808c90dc-398d-4df4-a737-227183c68762" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_ff4a204e-f34e-4333-80bf-e1de03e8afbc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber_ff4a204e-f34e-4333-80bf-e1de03e8afbc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_584bf267-7f3a-4dcb-bc04-209aabfe8c14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice_584bf267-7f3a-4dcb-bc04-209aabfe8c14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_432e0187-1382-4fe5-907e-d95a8844ec46" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice_432e0187-1382-4fe5-907e-d95a8844ec46" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_5f006cbe-a886-4b2a-9dc6-4e19b8ca9cdc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2_5f006cbe-a886-4b2a-9dc6-4e19b8ca9cdc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_baf42348-ea58-4552-9afb-6f3cb0b84632" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1_baf42348-ea58-4552-9afb-6f3cb0b84632" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_0b697367-3bb3-405d-a0c1-d06f7382ecf8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1_0b697367-3bb3-405d-a0c1-d06f7382ecf8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_a9c94f0b-ce3e-44f7-8dfe-d656ce907537" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue_a9c94f0b-ce3e-44f7-8dfe-d656ce907537" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_b821b442-8e9f-486f-98d4-a6668b38384c" xlink:href="cgnx-20231231.xsd#cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue_b821b442-8e9f-486f-98d4-a6668b38384c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_18cd17c5-f391-440b-a2b7-1a207c59db87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue_18cd17c5-f391-440b-a2b7-1a207c59db87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ProceedsFromStockOptionsExercised_151b7310-ef93-47a4-9ddf-19853777c906" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ProceedsFromStockOptionsExercised"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_ProceedsFromStockOptionsExercised_151b7310-ef93-47a4-9ddf-19853777c906" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_5ff69d46-a6d9-49d0-b502-2d210b5be9f2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7e8286d7-e536-4f43-866f-7cbb981cf0ee" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions_5ff69d46-a6d9-49d0-b502-2d210b5be9f2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7c182a50-b3f2-41f5-a1a9-ad61cd96dc1d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_7c182a50-b3f2-41f5-a1a9-ad61cd96dc1d" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:to="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_6c49c481-3ffe-4b1f-b3d4-7da580d027a7" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_35bbab47-5cd4-4858-a89c-346aae4512bb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:to="loc_us-gaap_EmployeeStockOptionMember_35bbab47-5cd4-4858-a89c-346aae4512bb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_f726230d-e7a5-4b53-bbb1-797b93fb4a3e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d6100a45-ac44-46a1-97af-b311b39c4936" xlink:to="loc_us-gaap_RestrictedStockMember_f726230d-e7a5-4b53-bbb1-797b93fb4a3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_e2cd3eca-6390-4fea-a112-4d97779d293e" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_a14e23dd-9214-4565-b3ef-e0aff2d0be32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate_a14e23dd-9214-4565-b3ef-e0aff2d0be32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_57fb0f1b-631d-4a2f-b2d0-c0339ef533d4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate_57fb0f1b-631d-4a2f-b2d0-c0339ef533d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_72f7d63a-1a4c-4cf9-af97-f7dd58ab54e6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate_72f7d63a-1a4c-4cf9-af97-f7dd58ab54e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_babe1377-34d0-40b3-a8ae-af1876637adb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_bcf0605d-f875-41c1-90ed-9520b41fe8c2" xlink:to="loc_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1_babe1377-34d0-40b3-a8ae-af1876637adb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_8b40e939-5190-4b0a-a74c-2c7b29d543d6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_8b40e939-5190-4b0a-a74c-2c7b29d543d6" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:to="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_fce42ac2-ff46-413c-942c-66771ebc726c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_cd3c496c-b182-4e4e-9cad-0bf15106b3ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_0a3ad67a-a9c8-4506-b3d3-5a6361427a96" xlink:to="loc_us-gaap_RestrictedStockMember_cd3c496c-b182-4e4e-9cad-0bf15106b3ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable_753db164-01d2-43a3-a636-7392ede04d18" xlink:to="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_25412cfd-7bb8-457c-93c2-dbda74b84fc6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_25412cfd-7bb8-457c-93c2-dbda74b84fc6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_e8af275f-c2aa-4b60-ae30-aecd0eaf10fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_e8af275f-c2aa-4b60-ae30-aecd0eaf10fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_80cb494a-ae4d-4aaa-a551-40f521af4342" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_80cb494a-ae4d-4aaa-a551-40f521af4342" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_38487e95-be6a-4b27-8738-748eace74eed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_38487e95-be6a-4b27-8738-748eace74eed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4a8743fd-0c1f-4e6a-830e-73ab2d775de6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward_468f0424-6d87-4a06-9bf6-c12f4762fbba" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_4a8743fd-0c1f-4e6a-830e-73ab2d775de6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems_6158d69b-e5d1-46c9-b13a-ea9896beb54c" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_81c7700a-d5e5-41bd-bd75-f583f9de7844" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_81c7700a-d5e5-41bd-bd75-f583f9de7844" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a8bfe2a3-a91c-43fa-b15d-2ce98cc98ddd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_a8bfe2a3-a91c-43fa-b15d-2ce98cc98ddd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_c3cbc178-3396-4613-9e7b-6508f1682d8c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_c3cbc178-3396-4613-9e7b-6508f1682d8c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_91c15cef-8bcd-4cd5-ac82-07847dccb27e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_91c15cef-8bcd-4cd5-ac82-07847dccb27e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_f01ea2aa-0d87-425e-b084-5f554dea9153" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward_40afb04b-a0e6-485d-8355-32728faf56cf" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_f01ea2aa-0d87-425e-b084-5f554dea9153" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_280923dd-773d-4afc-805b-fc5a5a29ee7f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_5f1b1498-0e97-4aed-a6be-972dd467c434" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_280923dd-773d-4afc-805b-fc5a5a29ee7f" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1_5f1b1498-0e97-4aed-a6be-972dd467c434" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_280923dd-773d-4afc-805b-fc5a5a29ee7f" xlink:to="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:to="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeStatementLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationAxis_c95152cc-870e-45a1-b64a-d2ae3e2f9c3e" xlink:to="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_ProductCostOfRevenueMember_e701b8eb-86ee-419d-9f09-a8b0532808a4" xlink:href="cgnx-20231231.xsd#cgnx_ProductCostOfRevenueMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_cgnx_ProductCostOfRevenueMember_e701b8eb-86ee-419d-9f09-a8b0532808a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchAndDevelopmentExpenseMember_c347b09e-3d66-46b5-b036-5683f9bc87c0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchAndDevelopmentExpenseMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_us-gaap_ResearchAndDevelopmentExpenseMember_c347b09e-3d66-46b5-b036-5683f9bc87c0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_SellingGeneralAndAdministrativeMember_35282aa9-a397-4478-85e3-bbace0519f8e" xlink:href="cgnx-20231231.xsd#cgnx_SellingGeneralAndAdministrativeMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeStatementLocationDomain_f16caa69-1c56-4c40-b2fb-79e02df216c6" xlink:to="loc_cgnx_SellingGeneralAndAdministrativeMember_35282aa9-a397-4478-85e3-bbace0519f8e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable_2fe3398d-ec5b-44b4-8d45-b83e9e6ca42c" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AllocatedShareBasedCompensationExpense_ad2158a3-b02e-4942-b8d8-446f3fa8615b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AllocatedShareBasedCompensationExpense"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_us-gaap_AllocatedShareBasedCompensationExpense_ad2158a3-b02e-4942-b8d8-446f3fa8615b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_abffe805-9749-41d8-972c-06738de87e76" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense_abffe805-9749-41d8-972c-06738de87e76" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_f4158e17-ba33-4ab7-a1f6-792f28aafdb1" xlink:href="cgnx-20231231.xsd#cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems_069e1d5f-f52a-45d0-804a-60b4b2704fef" xlink:to="loc_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount_f4158e17-ba33-4ab7-a1f6-792f28aafdb1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_e3d5534b-21a1-41ef-a42d-7d9249205002" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract_e3d5534b-21a1-41ef-a42d-7d9249205002" xlink:to="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:to="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis_50ab3958-e29b-424e-a854-705fa5642035" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_67b4ec03-4e9e-4ec2-9094-774be319fd8f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain_d273c298-f370-4961-974f-bd8833056965" xlink:to="loc_us-gaap_PerformanceSharesMember_67b4ec03-4e9e-4ec2-9094-774be319fd8f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable_04b0046a-c33c-494f-8711-c82cc0c24ab3" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_58fbc739-8d99-4e83-96d6-0b82adad89c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_58fbc739-8d99-4e83-96d6-0b82adad89c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_064f37ec-175a-4244-b9dd-23517c94698f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_064f37ec-175a-4244-b9dd-23517c94698f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3e27be3a-f71d-41aa-9705-fb14fddd98ab" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod_3e27be3a-f71d-41aa-9705-fb14fddd98ab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_dc98c3df-e75a-40d2-90fc-535a4f85c80a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue_dc98c3df-e75a-40d2-90fc-535a4f85c80a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_bc9489a6-dc22-4338-853e-3f039383bce0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod_bc9489a6-dc22-4338-853e-3f039383bce0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_b64f438c-3ae3-4158-8c65-b9b2d73af376" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue_b64f438c-3ae3-4158-8c65-b9b2d73af376" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_190888e6-1e7e-4199-9d22-dea30412f475" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod_190888e6-1e7e-4199-9d22-dea30412f475" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_e3d88417-1f0e-47b3-8ebb-80679c015615" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue_e3d88417-1f0e-47b3-8ebb-80679c015615" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1663a916-a5a1-458d-8dc6-36f52fe3f085" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber_1663a916-a5a1-458d-8dc6-36f52fe3f085" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9a951c-5dda-4d17-9698-2c6645fb926b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems_88d48bea-fe33-4df0-9f79-c4e600287462" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue_ef9a951c-5dda-4d17-9698-2c6645fb926b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#EmployeeSavingsPlanAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CompensationAndRetirementDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_75519753-424c-486f-81ca-dfde7cbfaab6" xlink:href="cgnx-20231231.xsd#cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan_75519753-424c-486f-81ca-dfde7cbfaab6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_655e0ba1-795c-4c73-ae6b-0a911c8c1e44" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent_655e0ba1-795c-4c73-ae6b-0a911c8c1e44" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_d3e292bd-2477-47c9-b710-8c974be2c754" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch_d3e292bd-2477-47c9-b710-8c974be2c754" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_26e1f76e-9c32-4c7e-82e5-8e68087918a4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent_26e1f76e-9c32-4c7e-82e5-8e68087918a4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_f4972616-b9e3-410c-ae3f-33dceb45cf6d" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfOneYear"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfOneYear_f4972616-b9e3-410c-ae3f-33dceb45cf6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_564fb8a3-8d26-4dbd-b58c-3b26ccd89fac" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfTwoYear"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfTwoYear_564fb8a3-8d26-4dbd-b58c-3b26ccd89fac" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_cd2ac891-de59-4321-aa8b-e7de872be907" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfThreeYears"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfThreeYears_cd2ac891-de59-4321-aa8b-e7de872be907" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_2e34e8d0-ff80-426e-82c8-42e492a9b977" xlink:href="cgnx-20231231.xsd#cgnx_CompanyContributionsVestAtEndOfFourYears"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_cgnx_CompanyContributionsVestAtEndOfFourYears_2e34e8d0-ff80-426e-82c8-42e492a9b977" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DefinedContributionPlanCostRecognized_90338812-9ff6-4069-8ca3-d24b1c9bb27d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DefinedContributionPlanCostRecognized"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CompensationAndRetirementDisclosureAbstract_f7208d8a-d22a-455c-8154-5fa3c22d70f5" xlink:to="loc_us-gaap_DefinedContributionPlanCostRecognized_90338812-9ff6-4069-8ca3-d24b1c9bb27d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_6af7e42e-6ef2-42b7-b650-40aa2a7f2f13" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_6af7e42e-6ef2-42b7-b650-40aa2a7f2f13" xlink:to="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityAxis_edfb1f77-2f6e-46de-bc32-8b741e51d45c" xlink:to="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ForeignCountryMember_db39cc32-a144-4afd-84d7-5ba4d3450a36" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ForeignCountryMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:to="loc_us-gaap_ForeignCountryMember_db39cc32-a144-4afd-84d7-5ba4d3450a36" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DomesticCountryMember_08fd7d8f-f09a-4290-abd8-b7f53ecd9aaa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DomesticCountryMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityDomain_df7aed8a-c42f-4d81-b213-7e3d18700f7d" xlink:to="loc_us-gaap_DomesticCountryMember_08fd7d8f-f09a-4290-abd8-b7f53ecd9aaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxAuthorityNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameAxis_02ea8042-494b-4254-9e93-c850c824c199" xlink:to="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueCommissionersIrelandMember_56f1a571-ad17-489d-a4cb-b47f70487c3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueCommissionersIrelandMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_us-gaap_RevenueCommissionersIrelandMember_56f1a571-ad17-489d-a4cb-b47f70487c3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StateAdministrationOfTaxationChinaMember_1002c8db-9bdb-429b-95c7-041191770313" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StateAdministrationOfTaxationChinaMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_us-gaap_StateAdministrationOfTaxationChinaMember_1002c8db-9bdb-429b-95c7-041191770313" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_KP_c81c5e93-97e4-4a68-a596-cb6d098c0e37" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_KP"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_country_KP_c81c5e93-97e4-4a68-a596-cb6d098c0e37" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_JP_612bcbdc-a490-4a24-9c9e-184a3380d48a" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_JP"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxAuthorityNameDomain_ed0c7ab6-5fa6-4467-b3ab-86cf70a58a11" xlink:to="loc_country_JP_612bcbdc-a490-4a24-9c9e-184a3380d48a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardAxis_f1bb9c79-2377-444a-a5ec-73480d70a892" xlink:to="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ResearchMember_6cc20c2f-2fa7-4671-9de7-10c0b100c9d8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ResearchMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardNameDomain_f0e118da-e3bc-4f27-98ec-54dca52a1723" xlink:to="loc_us-gaap_ResearchMember_6cc20c2f-2fa7-4671-9de7-10c0b100c9d8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TaxCreditCarryforwardLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardTable_a9245a09-6890-4a0e-b289-ca26b559f223" xlink:to="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_06ca49a3-bc54-44c2-8dc2-5c5abfd9b0df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic_06ca49a3-bc54-44c2-8dc2-5c5abfd9b0df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_4084eba3-57c0-43b7-9b7f-b55efdaa0c3a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign_4084eba3-57c0-43b7-9b7f-b55efdaa0c3a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGross_2dd48fc9-6fe3-40a2-bf53-188a72b238a0" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGross"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGross_2dd48fc9-6fe3-40a2-bf53-188a72b238a0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_1643bb88-e1c6-4e64-b7dd-39dcdab37c97" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability_1643bb88-e1c6-4e64-b7dd-39dcdab37c97" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_dcfd13e1-aceb-4be6-915c-59492a81aef4" xlink:href="cgnx-20231231.xsd#cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes_dcfd13e1-aceb-4be6-915c-59492a81aef4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_db1056b4-832e-495b-9a50-7c5d603f58d2" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued_db1056b4-832e-495b-9a50-7c5d603f58d2" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8507c630-1233-4de4-bd79-6438e9cff992" xlink:href="cgnx-20231231.xsd#cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_8507c630-1233-4de4-bd79-6438e9cff992" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_24cf03eb-dbf6-4088-8ab9-414d5ca8cf1a" xlink:href="cgnx-20231231.xsd#cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves_24cf03eb-dbf6-4088-8ab9-414d5ca8cf1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9b212582-1030-425a-83a1-f0b3ef70425a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_9b212582-1030-425a-83a1-f0b3ef70425a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_ed03925d-6465-41f3-94c7-32bf37c67dcd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_ed03925d-6465-41f3-94c7-32bf37c67dcd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_c9f8b63b-6254-49f0-9617-b1e0926b4f0c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense_c9f8b63b-6254-49f0-9617-b1e0926b4f0c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxesPaidNet_1c2e2de5-a6e0-4607-8f73-c646861b3a25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxesPaidNet"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_IncomeTaxesPaidNet_1c2e2de5-a6e0-4607-8f73-c646861b3a25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_d9d6b496-5713-47d8-8bdf-43737b1a8f01" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_d9d6b496-5713-47d8-8bdf-43737b1a8f01" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_360b96d3-0cc6-4765-98fb-d978f0e17f91" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState_360b96d3-0cc6-4765-98fb-d978f0e17f91" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_14052917-4edd-45f9-88f0-c2876e54828d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign_14052917-4edd-45f9-88f0-c2876e54828d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d1c8c523-7dfa-435f-a658-a124130d26b8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d1c8c523-7dfa-435f-a658-a124130d26b8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_ae1189cc-5c14-48a9-b269-6b74fc86031b" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsForeignTaxStructureChange"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxAssetsForeignTaxStructureChange_ae1189cc-5c14-48a9-b269-6b74fc86031b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_1dcf2b4d-0f89-4145-acd8-cf000c8375fc" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TaxCreditCarryforwardLineItems_c53fd5c4-56f9-4803-bfb3-558c0550ef30" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_1dcf2b4d-0f89-4145-acd8-cf000c8375fc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_7f8fe487-f981-484f-b592-4938623871da" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7f8fe487-f981-484f-b592-4938623871da" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentFederalTaxExpenseBenefit_e17d8faa-b8fc-434c-9c52-f025d5307213" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentFederalTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:to="loc_us-gaap_CurrentFederalTaxExpenseBenefit_e17d8faa-b8fc-434c-9c52-f025d5307213" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_e427feb7-b93f-4cf6-be0b-72f8a6f880dc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentStateAndLocalTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:to="loc_us-gaap_CurrentStateAndLocalTaxExpenseBenefit_e427feb7-b93f-4cf6-be0b-72f8a6f880dc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentForeignTaxExpenseBenefit_22c5f9f1-49fa-4e27-9b58-a95e325b96f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentForeignTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:to="loc_us-gaap_CurrentForeignTaxExpenseBenefit_22c5f9f1-49fa-4e27-9b58-a95e325b96f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_449de646-475e-426f-a84a-920e7f35f3ed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CurrentIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract_57f4a98e-c22c-405c-aca4-951c551dfa51" xlink:to="loc_us-gaap_CurrentIncomeTaxExpenseBenefit_449de646-475e-426f-a84a-920e7f35f3ed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7f8fe487-f981-484f-b592-4938623871da" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_d57bda47-9204-4ff3-a9d5-efe04cd6fc14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredFederalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:to="loc_us-gaap_DeferredFederalIncomeTaxExpenseBenefit_d57bda47-9204-4ff3-a9d5-efe04cd6fc14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_d1ecb4d9-b007-4fc0-bc3d-91ca025d8f60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:to="loc_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit_d1ecb4d9-b007-4fc0-bc3d-91ca025d8f60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_390d660f-ed3f-4c24-969f-a3c45dd32a6a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredForeignIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:to="loc_us-gaap_DeferredForeignIncomeTaxExpenseBenefit_390d660f-ed3f-4c24-969f-a3c45dd32a6a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_9d37f3f0-2aea-444c-84a5-81d661a17eef" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredIncomeTaxExpenseBenefit"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract_ccdbc537-fccd-497d-b06e-f882f288cec0" xlink:to="loc_us-gaap_DeferredIncomeTaxExpenseBenefit_9d37f3f0-2aea-444c-84a5-81d661a17eef" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxExpenseBenefit_da15ac9f-0d76-4e1e-8dc8-8077b13c3a3d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxExpenseBenefit"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_7f8fe487-f981-484f-b592-4938623871da" xlink:to="loc_us-gaap_IncomeTaxExpenseBenefit_da15ac9f-0d76-4e1e-8dc8-8077b13c3a3d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_6ab71ec4-8cca-4c90-8261-8133ad253126" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate_6ab71ec4-8cca-4c90-8261-8133ad253126" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_e8b57409-9c37-491b-9dc4-390240308c74" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes_e8b57409-9c37-491b-9dc4-390240308c74" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_a83e8b3b-0945-46af-bbc4-143ff5320120" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential_a83e8b3b-0945-46af-bbc4-143ff5320120" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8b8cb0c5-299c-4fd3-b327-0f209123d2aa" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits_8b8cb0c5-299c-4fd3-b327-0f209123d2aa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_28441dbb-1023-44f4-b9a4-12d01a8d54bc" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent_28441dbb-1023-44f4-b9a4-12d01a8d54bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_041e753f-6508-41bc-b4a6-a76c75d5acab" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent_041e753f-6508-41bc-b4a6-a76c75d5acab" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_aa7f96a0-033b-44be-adef-63de2c5cf161" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent_aa7f96a0-033b-44be-adef-63de2c5cf161" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_12b0910f-ea83-4168-9132-38864c50c2d1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent_12b0910f-ea83-4168-9132-38864c50c2d1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_cb1124a1-3d96-4ddf-a0e0-7fafc773e939" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements_cb1124a1-3d96-4ddf-a0e0-7fafc773e939" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_62f6d905-35a9-4848-959c-3adbdd56c1bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal_62f6d905-35a9-4848-959c-3adbdd56c1bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_f313451d-3d80-469f-9e14-33e6c22c3fa8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent_f313451d-3d80-469f-9e14-33e6c22c3fa8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_954b095b-2623-497f-92e3-edf33d59cc09" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance_954b095b-2623-497f-92e3-edf33d59cc09" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_44fbc283-17e3-41cf-98bc-36b8e07f20d4" xlink:href="cgnx-20231231.xsd#cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent_44fbc283-17e3-41cf-98bc-36b8e07f20d4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_73638e7e-2b03-48ea-84d0-9cc905456354" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments_73638e7e-2b03-48ea-84d0-9cc905456354" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_294723e2-aab5-4d8f-a69e-862554aaab92" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EffectiveIncomeTaxRateContinuingOperations"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_e41d4481-c99c-41c9-91f2-9a0e0459e3c5" xlink:to="loc_us-gaap_EffectiveIncomeTaxRateContinuingOperations_294723e2-aab5-4d8f-a69e-862554aaab92" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_515e9625-31f2-4e6d-aa9a-72260220362d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_515e9625-31f2-4e6d-aa9a-72260220362d" xlink:to="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_81656c04-2adf-4f70-8474-e4817bf09ca1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_81656c04-2adf-4f70-8474-e4817bf09ca1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_c20de6e9-ee8d-42d8-8cff-d03f80179341" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions_c20de6e9-ee8d-42d8-8cff-d03f80179341" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_6064770f-96a1-47dc-a84c-d758ed04a9cd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions_6064770f-96a1-47dc-a84c-d758ed04a9cd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_ab09c43e-d05f-41f0-b101-47bf1f9396fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions_ab09c43e-d05f-41f0-b101-47bf1f9396fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_fcc15295-fa8b-434a-a885-4484cb0dc4df" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities_fcc15295-fa8b-434a-a885-4484cb0dc4df" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_c6b348f6-1295-4c98-80c1-8ca3edfb10e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations_c6b348f6-1295-4c98-80c1-8ca3edfb10e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnrecognizedTaxBenefits_d3c51af1-cba2-4d62-b6a0-3ced9e3b9258" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnrecognizedTaxBenefits"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward_8b76e20a-70b5-4d1e-9158-04db2324d099" xlink:to="loc_us-gaap_UnrecognizedTaxBenefits_d3c51af1-cba2-4d62-b6a0-3ced9e3b9258" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#IncomeTaxesConstituentsofDeferredTaxAssetsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_IncomeTaxDisclosureAbstract_2fdaf94e-a121-4eba-a8be-3339eff002e0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_IncomeTaxDisclosureAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsGrossAbstract"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_2fdaf94e-a121-4eba-a8be-3339eff002e0" xlink:to="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_6888e804-b540-4e16-8731-1c9f16f57cd7" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure_6888e804-b540-4e16-8731-1c9f16f57cd7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_a23ae1ac-8692-4644-83b8-5678a58e5b81" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost_a23ae1ac-8692-4644-83b8-5678a58e5b81" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_7abc8408-7306-4d4d-bc6b-145277a03305" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic_7abc8408-7306-4d4d-bc6b-145277a03305" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsInventory_bdcfeb9e-996b-410d-aafa-9ea6cde6aac4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsInventory"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsInventory_bdcfeb9e-996b-410d-aafa-9ea6cde6aac4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e6ab7b58-b04d-4969-ada3-bcf5cfc26ded" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther_e6ab7b58-b04d-4969-ada3-bcf5cfc26ded" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_2ca476d6-40e8-49b8-b09d-a1fad90440b0" xlink:href="cgnx-20231231.xsd#cgnx_NoncurrentDeferredTaxAssetsDeprecation"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_cgnx_NoncurrentDeferredTaxAssetsDeprecation_2ca476d6-40e8-49b8-b09d-a1fad90440b0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_52c875cc-e2ac-434c-b0c0-04ce86680d18" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign_52c875cc-e2ac-434c-b0c0-04ce86680d18" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_2344f649-b96b-4544-b14f-2f4e9065b20a" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses_2344f649-b96b-4544-b14f-2f4e9065b20a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_2dfec068-628d-447d-975c-cd2b2633b4e6" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsOtherNoncurrent"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_cgnx_DeferredTaxAssetsOtherNoncurrent_2dfec068-628d-447d-975c-cd2b2633b4e6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_d02b4b1b-7160-4114-b98c-a01aa9467f16" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross_d02b4b1b-7160-4114-b98c-a01aa9467f16" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d4d8491b-9d5b-49d1-a97d-5a3ec1360328" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsValuationAllowance"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsValuationAllowance_d4d8491b-9d5b-49d1-a97d-5a3ec1360328" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_6d24a8af-3dd3-43ff-9daa-ae7dca6d7598" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxAssetsGrossAbstract_108003ae-f034-48a1-851d-6dda7c7e9b01" xlink:to="loc_us-gaap_DeferredTaxAssetsLiabilitiesNet_6d24a8af-3dd3-43ff-9daa-ae7dca6d7598" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesAbstract_28df03f9-16ea-44c5-b7db-f1c5c09b97d5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesAbstract"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_2fdaf94e-a121-4eba-a8be-3339eff002e0" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesAbstract_28df03f9-16ea-44c5-b7db-f1c5c09b97d5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_c74bbc26-7af3-41da-b326-2c831dc91e71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_28df03f9-16ea-44c5-b7db-f1c5c09b97d5" xlink:to="loc_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment_c74bbc26-7af3-41da-b326-2c831dc91e71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_297b332f-0ee9-4b9e-9ec7-cc0463a69b9b" xlink:href="cgnx-20231231.xsd#cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_28df03f9-16ea-44c5-b7db-f1c5c09b97d5" xlink:to="loc_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome_297b332f-0ee9-4b9e-9ec7-cc0463a69b9b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DeferredTaxLiabilities_e4f31235-ef37-4c85-beed-dd63b3732dce" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DeferredTaxLiabilities"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_DeferredTaxLiabilitiesAbstract_28df03f9-16ea-44c5-b7db-f1c5c09b97d5" xlink:to="loc_us-gaap_DeferredTaxLiabilities_e4f31235-ef37-4c85-beed-dd63b3732dce" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTotalLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_79882ea5-eb23-4079-b018-9153e9c8c16d" xlink:href="cgnx-20231231.xsd#cgnx_DeferredIncomeTaxAssetsLiabilitiesNet"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_IncomeTaxDisclosureAbstract_2fdaf94e-a121-4eba-a8be-3339eff002e0" xlink:to="loc_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet_79882ea5-eb23-4079-b018-9153e9c8c16d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageSharesCalculationofWeightedAverageSharesDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_4d21a0bb-9371-44b0-9ede-bd33edc2aed0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_afdfce9c-139c-48a7-90a2-a2e4945d73fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfSharesOutstandingBasic"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4d21a0bb-9371-44b0-9ede-bd33edc2aed0" xlink:to="loc_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic_afdfce9c-139c-48a7-90a2-a2e4945d73fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_52da740d-7c90-4d2d-8eed-2e150c4d0a32" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4d21a0bb-9371-44b0-9ede-bd33edc2aed0" xlink:to="loc_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment_52da740d-7c90-4d2d-8eed-2e150c4d0a32" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_ae874a03-fe78-45fa-be35-4f9c627f1306" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_4d21a0bb-9371-44b0-9ede-bd33edc2aed0" xlink:to="loc_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding_ae874a03-fe78-45fa-be35-4f9c627f1306" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#WeightedAverageSharesAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EarningsPerShareAbstract_c813f87b-b9a5-479d-9b4c-67cc3a3cf155" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EarningsPerShareAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_EarningsPerShareAbstract_c813f87b-b9a5-479d-9b4c-67cc3a3cf155" xlink:to="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis_9561e2a7-8710-4d9e-a4e7-38b20dadf7ea" xlink:to="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember_cf4df8d1-b72b-45ab-9eb9-5455cde152d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_EmployeeStockOptionMember_cf4df8d1-b72b-45ab-9eb9-5455cde152d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember_29c4315f-526f-4d9a-88f2-568db6345fe5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_RestrictedStockMember_29c4315f-526f-4d9a-88f2-568db6345fe5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember_04d41b73-c94d-43f7-a6eb-94fad326b183" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesNameDomain_b5391b06-6611-437a-a607-eea48a8744c5" xlink:to="loc_us-gaap_PerformanceSharesMember_04d41b73-c94d-43f7-a6eb-94fad326b183" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable_007f8063-c344-4aca-943b-1b38be465119" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_6eb7aceb-0d82-4980-b822-7ad08c99d8a1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems_c00d18ec-9dcc-4e12-98fd-560a0ff77912" xlink:to="loc_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount_6eb7aceb-0d82-4980-b822-7ad08c99d8a1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformationAdditionalInformationDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_addf79c3-d7b7-4a42-b572-0929afc4c69b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_addf79c3-d7b7-4a42-b572-0929afc4c69b" xlink:to="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByBenchmarkAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskBenchmarkDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByBenchmarkAxis_48d0aea8-1106-4d4d-a672-0b33573dde08" xlink:to="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesRevenueNetMember_dc559d0c-e030-4704-b164-6544838a5910" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesRevenueNetMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskBenchmarkDomain_03aefa15-79dd-4a95-94eb-227dbd7c5b25" xlink:to="loc_us-gaap_SalesRevenueNetMember_dc559d0c-e030-4704-b164-6544838a5910" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskByTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskByTypeAxis_59fa6381-6e16-4ba2-968d-e626ca80a18d" xlink:to="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerConcentrationRiskMember_4ff74e3d-0b76-4242-ba16-b787994cb482" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerConcentrationRiskMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTypeDomain_27d663dd-fd70-43bc-85e4-1bddc01c4fad" xlink:to="loc_us-gaap_CustomerConcentrationRiskMember_4ff74e3d-0b76-4242-ba16-b787994cb482" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_MajorCustomersAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_NameOfMajorCustomerDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_MajorCustomersAxis_752ffee8-fe9d-452a-8f1d-86446d4e3713" xlink:to="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer2Member_d29ccc5f-1903-4e80-a0d3-f41c61e85ce5" xlink:href="cgnx-20231231.xsd#cgnx_Customer2Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:to="loc_cgnx_Customer2Member_d29ccc5f-1903-4e80-a0d3-f41c61e85ce5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_Customer1Member_00d11e09-80f9-4b94-b714-a2b5f6ab2ac8" xlink:href="cgnx-20231231.xsd#cgnx_Customer1Member"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_NameOfMajorCustomerDomain_a423c029-aa31-4c1c-8604-51465ae9d680" xlink:to="loc_cgnx_Customer1Member_00d11e09-80f9-4b94-b714-a2b5f6ab2ac8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskTable_4ca4440b-0f51-43b8-9e01-9434f40981b7" xlink:to="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NumberOfReportableSegments_01318b7a-18e6-48df-b4bd-ec337adbab52" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NumberOfReportableSegments"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:to="loc_us-gaap_NumberOfReportableSegments_01318b7a-18e6-48df-b4bd-ec337adbab52" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ConcentrationRiskPercentage1_595779c7-f348-4d11-aa21-0edb73e6f7f7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ConcentrationRiskPercentage1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ConcentrationRiskLineItems_ac2bb8d7-31a8-4640-a585-2bf0c9358524" xlink:to="loc_us-gaap_ConcentrationRiskPercentage1_595779c7-f348-4d11-aa21-0edb73e6f7f7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SegmentReportingAbstract_39c272fa-93db-434c-b817-7799ce2358a3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SegmentReportingAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SegmentReportingAbstract_39c272fa-93db-434c-b817-7799ce2358a3" xlink:to="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementGeographicalAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:to="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_SegmentGeographicalDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementGeographicalAxis_1224052c-912a-4736-a461-a7acb8bae946" xlink:to="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_country_US_b2eec686-5400-4397-b0aa-2bebb915b21f" xlink:href="https://xbrl.sec.gov/country/2023/country-2023.xsd#country_US"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_country_US_b2eec686-5400-4397-b0aa-2bebb915b21f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_EuropeMember_278c284d-9011-41f8-9101-ee655774808b" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_EuropeMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_srt_EuropeMember_278c284d-9011-41f8-9101-ee655774808b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GreaterChinaMember_d4c946d9-c28d-4e28-851d-f74e7d2bda28" xlink:href="cgnx-20231231.xsd#cgnx_GreaterChinaMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_cgnx_GreaterChinaMember_d4c946d9-c28d-4e28-851d-f74e7d2bda28" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_OtherGeographicAreaMember_0b85d1ef-b8bf-4c32-805c-fbe8e29c9216" xlink:href="cgnx-20231231.xsd#cgnx_OtherGeographicAreaMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_SegmentGeographicalDomain_3ab587e7-fded-41ea-99df-a045f0ce1eb7" xlink:to="loc_cgnx_OtherGeographicAreaMember_0b85d1ef-b8bf-4c32-805c-fbe8e29c9216" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable_68d46767-0be7-4fd8-9bec-c9a0a4837017" xlink:to="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d271d2c-fb67-4218-ba9f-e904bdaf180c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:to="loc_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax_2d271d2c-fb67-4218-ba9f-e904bdaf180c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NoncurrentAssets_5adec9b6-f70b-41c1-9dda-063b656250c4" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NoncurrentAssets"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems_3174fb94-8f19-4a61-90c5-28dfc2e16ddf" xlink:to="loc_us-gaap_NoncurrentAssets_5adec9b6-f70b-41c1-9dda-063b656250c4" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsMoritexNarrativeDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_8280902e-650f-4b23-8775-523a35f3f509" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_8280902e-650f-4b23-8775-523a35f3f509" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_55fc3984-3a00-462b-886c-93974d0a495d" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_b87b398a-7cdf-4ee4-b586-fc1a4103a36a" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_557de6ac-ad46-42af-80ef-dc2457a41184" xlink:to="loc_cgnx_MoritexCorporationMember_b87b398a-7cdf-4ee4-b586-fc1a4103a36a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_StatementScenarioAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:to="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioUnspecifiedDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_StatementScenarioAxis_ee9e9526-0b82-4218-90c2-0c14520edd2f" xlink:to="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ScenarioForecastMember_566a0f42-f7f4-4598-92b9-96bd30b1af00" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ScenarioForecastMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ScenarioUnspecifiedDomain_d2f4a24c-4fb5-4d11-a97d-d29a0d827e13" xlink:to="loc_srt_ScenarioForecastMember_566a0f42-f7f4-4598-92b9-96bd30b1af00" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_8464b2fa-6a5e-4ae3-9fb4-75fb11e32d6d" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationEnterpriseValue_0e4730b1-6235-4145-afe2-92e358703eda" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationEnterpriseValue"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_cgnx_BusinessCombinationEnterpriseValue_0e4730b1-6235-4145-afe2-92e358703eda" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationConsiderationTransferred1_61aa818b-af2d-4c6c-8ffc-f802b8092cf0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationConsiderationTransferred1"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_BusinessCombinationConsiderationTransferred1_61aa818b-af2d-4c6c-8ffc-f802b8092cf0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesGross_3742b397-47b3-4f32-9338-4a3bf5123de1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesGross"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesGross_3742b397-47b3-4f32-9338-4a3bf5123de1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c7e7302e-8c90-4c87-a54b-bd620a4fdd4e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_c7e7302e-8c90-4c87-a54b-bd620a4fdd4e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/verboseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d171c3fa-beae-4dac-b005-5e599f685688" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired_d171c3fa-beae-4dac-b005-5e599f685688" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_a1de2242-6691-4bf7-a678-78f6b920a6d0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_8047fed7-2e80-4d68-9a2b-0044f4a523f5" xlink:to="loc_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost_a1de2242-6691-4bf7-a678-78f6b920a6d0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationsAbstract_16c58e0b-00e0-4136-a57e-f26db9eaae8e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessCombinationsAbstract_16c58e0b-00e0-4136-a57e-f26db9eaae8e" xlink:to="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:to="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionAcquireeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAxis_8eadbe0f-0a2c-47bf-85fd-81126890d6b3" xlink:to="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_MoritexCorporationMember_dcd57834-032f-4da6-8ba1-eb0fa74c6c4c" xlink:href="cgnx-20231231.xsd#cgnx_MoritexCorporationMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionAcquireeDomain_64ede021-a571-47b7-a3c7-6223697095b5" xlink:to="loc_cgnx_MoritexCorporationMember_dcd57834-032f-4da6-8ba1-eb0fa74c6c4c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis_3c792865-b681-4f9d-bf2e-90ea511b7265" xlink:to="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_CustomerRelationshipsMember_cefce9bb-3175-4b03-8d76-eda968e50268" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_CustomerRelationshipsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_us-gaap_CustomerRelationshipsMember_cefce9bb-3175-4b03-8d76-eda968e50268" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_CompletedTechnologyMember_c65f167f-e00c-4d92-a67b-0bda8f585e31" xlink:href="cgnx-20231231.xsd#cgnx_CompletedTechnologyMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_cgnx_CompletedTechnologyMember_c65f167f-e00c-4d92-a67b-0bda8f585e31" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TrademarksMember_6264708e-d6b8-417d-9ac5-b0620b754532" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TrademarksMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain_28e4ce67-6b7c-48a9-84f6-be3bb1676d40" xlink:to="loc_us-gaap_TrademarksMember_6264708e-d6b8-417d-9ac5-b0620b754532" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessAcquisitionLineItems"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable_4d1845b9-4f0a-45ee-8ffd-67880062cc7c" xlink:to="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_936890e3-0740-4075-881b-a4d2abd1035c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents_936890e3-0740-4075-881b-a4d2abd1035c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_94355b37-5f00-4c0d-bcb4-ccca2a6f493b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables_94355b37-5f00-4c0d-bcb4-ccca2a6f493b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d0c9ecc5-1c2e-46a1-85cc-b735c02d6db8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory_d0c9ecc5-1c2e-46a1-85cc-b735c02d6db8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_84ded522-c493-44f2-a7ee-1f9243fdb8e7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment_84ded522-c493-44f2-a7ee-1f9243fdb8e7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_Goodwill_00d39d46-3b9f-45cd-a613-546ece4d4882" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_Goodwill"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_Goodwill_00d39d46-3b9f-45cd-a613-546ece4d4882" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_e12a9d2b-05a8-49c3-9c00-7a5a52386987" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles_e12a9d2b-05a8-49c3-9c00-7a5a52386987" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_259ca4f9-2221-4ff6-8494-8322fbff320d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets_259ca4f9-2221-4ff6-8494-8322fbff320d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_c21726ff-d07a-4166-ae6e-4cfe4610c93a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets_c21726ff-d07a-4166-ae6e-4cfe4610c93a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_03b8667b-1e82-4a27-91ee-6a3e5d0e6228" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable_03b8667b-1e82-4a27-91ee-6a3e5d0e6228" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_3daca5f5-d1fb-44dc-ba73-ac104cac8d98" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities_3daca5f5-d1fb-44dc-ba73-ac104cac8d98" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_73042939-88d1-489f-b610-761002780698" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities_73042939-88d1-489f-b610-761002780698" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_d4175ed3-80cf-4429-8b6f-c8ade1332512" xlink:href="cgnx-20231231.xsd#cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes_d4175ed3-80cf-4429-8b6f-c8ade1332512" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_4fb75140-694f-415e-8a69-bfc8452c31b3" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther_4fb75140-694f-415e-8a69-bfc8452c31b3" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_920597cb-84a1-436e-9140-649ee1f9b333" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BusinessAcquisitionLineItems_89469fb6-acab-4be1-9f7a-d712d567498e" xlink:to="loc_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet_920597cb-84a1-436e-9140-649ee1f9b333" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/totalLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/LossfromFireDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#LossfromFireDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/LossfromFireDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract_797feae4-4cd3-464a-b0b8-08adaab39625" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ExtraordinaryAndUnusualItemsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ExtraordinaryAndUnusualItemsAbstract_797feae4-4cd3-464a-b0b8-08adaab39625" xlink:to="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:to="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemAxis_27eced65-4636-4589-9e55-efadef850557" xlink:to="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_FireMember_ff73cc90-2a94-4a98-8a4d-fef883fdb441" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_FireMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemDomain_298615f3-c980-4a1a-af63-35f05764ddaf" xlink:to="loc_us-gaap_FireMember_ff73cc90-2a94-4a98-8a4d-fef883fdb441" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UnusualOrInfrequentItemLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemTable_d8f3ecd0-d7a1-4735-a18f-adeb5c8728fe" xlink:to="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_LossFromCatastrophes_191c7441-d32f-4f69-a827-e6db747364b9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_LossFromCatastrophes"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_us-gaap_LossFromCatastrophes_191c7441-d32f-4f69-a827-e6db747364b9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_GrossLossFromCatastrophes_d1fcbc6a-33e4-4e44-b450-e6d912a6c267" xlink:href="cgnx-20231231.xsd#cgnx_GrossLossFromCatastrophes"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_GrossLossFromCatastrophes_d1fcbc6a-33e4-4e44-b450-e6d912a6c267" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_InsuranceRecoveries_4088d0c0-874e-4be3-8025-db55b5962d60" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_InsuranceRecoveries"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_us-gaap_InsuranceRecoveries_4088d0c0-874e-4be3-8025-db55b5962d60" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesBusinessInterruption_60b82a40-84df-4d1a-914d-6430452f0365" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesBusinessInterruption"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_InsuranceRecoveriesBusinessInterruption_60b82a40-84df-4d1a-914d-6430452f0365" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_ef73c3cd-b990-40f4-a2a1-1c1177aeaaaa" xlink:href="cgnx-20231231.xsd#cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_UnusualOrInfrequentItemLineItems_99b42930-978f-4995-9c08-99a434bd0ea0" xlink:to="loc_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses_ef73c3cd-b990-40f4-a2a1-1c1177aeaaaa" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesAdditionalInformationDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesAdditionalInformationDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_299546c7-5812-434e-8529-add898079efb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_3e786f24-195d-464b-b8d0-ec9fb0221d62" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_299546c7-5812-434e-8529-add898079efb" xlink:to="loc_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated_3e786f24-195d-464b-b8d0-ec9fb0221d62" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_1278ad5c-f422-4bb8-8d02-19b7c464cc96" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_299546c7-5812-434e-8529-add898079efb" xlink:to="loc_us-gaap_RestructuringCharges_1278ad5c-f422-4bb8-8d02-19b7c464cc96" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_0c2c0e26-59b0-4b45-81c4-9cb522efa14f" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_0c2c0e26-59b0-4b45-81c4-9cb522efa14f" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_efa51a34-1812-4e09-b1f9-450686d087a7" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_1f210a9d-6c66-456c-8d96-19336cf86838" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_1f210a9d-6c66-456c-8d96-19336cf86838" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_503088e2-234a-4850-bba5-7acb2d9488fb" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_59069b76-2d3e-4bb2-8f4a-53624fb6cf5d" xlink:to="loc_us-gaap_ContractTerminationMember_503088e2-234a-4850-bba5-7acb2d9488fb" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_aa5b499c-d50d-4385-aa3e-1ae4f05100c6" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_5db731b0-0f46-472c-b03e-02a57ef5aa1a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_99c491bd-4329-43aa-a237-1d0bff794d71" xlink:to="loc_us-gaap_RestructuringCharges_5db731b0-0f46-472c-b03e-02a57ef5aa1a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_07cb420e-cf31-4f1d-8a04-dc950c65c846" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringAndRelatedActivitiesAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ScheduleOfRestructuringAndRelatedCostsTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringAndRelatedActivitiesAbstract_07cb420e-cf31-4f1d-8a04-dc950c65c846" xlink:to="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_BalanceSheetLocationDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationAxis_24d1d70a-c46d-4650-b6cc-65a6e193b38a" xlink:to="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AccruedLiabilitiesMember_cc4ac805-1cc2-449e-bfe1-61ca3bccffd1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AccruedLiabilitiesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_BalanceSheetLocationDomain_7ed48582-bab5-41e1-b949-d8cdf0232bed" xlink:to="loc_us-gaap_AccruedLiabilitiesMember_cc4ac805-1cc2-449e-bfe1-61ca3bccffd1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_TypeOfRestructuringDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveAxis_719a7b06-8f34-4152-9441-d33196f825f1" xlink:to="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_OneTimeTerminationBenefitsMember_f871fe7b-0596-4f8c-89ef-fb98774498f0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_OneTimeTerminationBenefitsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:to="loc_us-gaap_OneTimeTerminationBenefitsMember_f871fe7b-0596-4f8c-89ef-fb98774498f0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ContractTerminationMember_dc2145c3-c10f-4029-b6d2-bb84449f64f6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ContractTerminationMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_TypeOfRestructuringDomain_c5686a37-a5e6-421d-8ac8-810a0871c633" xlink:to="loc_us-gaap_ContractTerminationMember_dc2145c3-c10f-4029-b6d2-bb84449f64f6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringPlanDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringPlanAxis_73ddb0c1-fd5b-46f7-9e7d-dff137d609c7" xlink:to="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_December2022Member_95fde380-77fd-4aab-a0e8-97763e218f1b" xlink:href="cgnx-20231231.xsd#cgnx_December2022Member"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringPlanDomain_93b7633e-f183-4292-9377-4c2b12207598" xlink:to="loc_cgnx_December2022Member_95fde380-77fd-4aab-a0e8-97763e218f1b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCostAndReserveLineItems"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ScheduleOfRestructuringAndRelatedCostsTable_78453393-a982-4131-8f0e-572eb918a931" xlink:to="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringCostAndReserveLineItems_ded9715d-2687-4c88-b350-93eae3205390" xlink:to="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_da26c00a-5e37-426d-bc8b-f9382ebc430c" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringReserve_da26c00a-5e37-426d-bc8b-f9382ebc430c" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringCharges_dfc109c7-6da3-4a10-ad50-58159a64284b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringCharges"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringCharges_dfc109c7-6da3-4a10-ad50-58159a64284b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PaymentsForRestructuring_45e3cf1b-952e-4415-820b-d67abaa19c2a" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PaymentsForRestructuring"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_PaymentsForRestructuring_45e3cf1b-952e-4415-820b-d67abaa19c2a" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedTerseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserveTranslationAdjustment_54f9b6be-fb8f-47b2-ae06-8e405671ebd0" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserveTranslationAdjustment"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringReserveTranslationAdjustment_54f9b6be-fb8f-47b2-ae06-8e405671ebd0" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestructuringReserve_6bc99049-52a5-463a-a2ad-7ea1b502fd40" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestructuringReserve"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_RestructuringReserveRollForward_1f957fa0-4674-4c1d-94ed-585af78b467a" xlink:to="loc_us-gaap_RestructuringReserve_6bc99049-52a5-463a-a2ad-7ea1b502fd40" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/SubsequentEventsDetails" xlink:type="simple" xlink:href="cgnx-20231231.xsd#SubsequentEventsDetails"/>
  <link:presentationLink xlink:role="http://cognex.com/role/SubsequentEventsDetails" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventsAbstract_5ed5bc92-4b49-4a84-8f76-c1e92dd09830" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventsAbstract_5ed5bc92-4b49-4a84-8f76-c1e92dd09830" xlink:to="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:to="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventTypeDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeAxis_d9b17962-1ea1-484a-8c71-0b754d600e14" xlink:to="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventMember_9f9cffad-e09b-418d-8535-6c680f39438d" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTypeDomain_4e5ed89f-44e0-4a7a-b5bd-b041cd3ae6f1" xlink:to="loc_us-gaap_SubsequentEventMember_9f9cffad-e09b-418d-8535-6c680f39438d" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SubsequentEventLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventTable_52377d53-9412-47ef-8057-44f859d34a07" xlink:to="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableAmountPerShare_ffe21340-e022-4b39-af35-7445310513bd" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableAmountPerShare"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableAmountPerShare_ffe21340-e022-4b39-af35-7445310513bd" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_7b83f148-f455-43de-b4eb-5c1921b51ad6" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateDeclaredDayMonthAndYear"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableDateDeclaredDayMonthAndYear_7b83f148-f455-43de-b4eb-5c1921b51ad6" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_2c91999b-9b81-4883-a450-d8fff1c63f65" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_DividendsPayableDateOfRecordDayMonthAndYear"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_SubsequentEventLineItems_ee0c32f5-ce1c-45a3-8fed-2d16c373c432" xlink:to="loc_us-gaap_DividendsPayableDateOfRecordDayMonthAndYear_2c91999b-9b81-4883-a450-d8fff1c63f65" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="simple" xlink:href="cgnx-20231231.xsd#ScheduleIIValuationandQualifyingAccountsDetail"/>
  <link:presentationLink xlink:role="http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsAbstract_cec2ea85-43f7-4f0d-94ff-a11b27a9209f" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsAbstract"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsAbstract_cec2ea85-43f7-4f0d-94ff-a11b27a9209f" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesTypeAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDomain"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesTypeAxis_4abdc20e-268b-4060-876d-a5ed9aa5dc3b" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_UncollectibleReceivablesMember_bba735a6-7de8-418f-9f32-ea10b0944c15" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_UncollectibleReceivablesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_UncollectibleReceivablesMember_bba735a6-7de8-418f-9f32-ea10b0944c15" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_SalesReturnsAndAllowancesMember_eaea7dd8-23ab-4183-8c6e-d40120052132" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_SalesReturnsAndAllowancesMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_SalesReturnsAndAllowancesMember_eaea7dd8-23ab-4183-8c6e-d40120052132" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_1d5cd559-93a0-41cb-96a3-77085a0350bc" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ValuationAllowancesAndReservesDomain_05e42286-bc81-4f7f-92ab-38623e058214" xlink:to="loc_us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember_1d5cd559-93a0-41cb-96a3-77085a0350bc" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:href="https://xbrl.fasb.org/srt/2023/elts/srt-2023.xsd#srt_ValuationAndQualifyingAccountsDisclosureLineItems"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureTable_4e666433-692b-4a08-8158-31153c8aa735" xlink:to="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_MovementInValuationAllowancesAndReservesRollForward"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_srt_ValuationAndQualifyingAccountsDisclosureLineItems_56929ab4-2d30-4d15-965f-448ed31030c7" xlink:to="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_779651dc-a489-448d-9718-818db810e891" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_779651dc-a489-448d-9718-818db810e891" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodStartLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_9a1b285e-b1cc-486a-94f5-fed6b9a3afc8" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense_9a1b285e-b1cc-486a-94f5-fed6b9a3afc8" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_39d45d52-8de1-4066-9673-2b19b4412140" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts_39d45d52-8de1-4066-9673-2b19b4412140" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesDeductions_bfe8f85f-8b61-4c1a-bf92-9286703cdeb9" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesDeductions"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesDeductions_bfe8f85f-8b61-4c1a-bf92-9286703cdeb9" xlink:type="arc" preferredLabel="http://www.xbrl.org/2009/role/negatedLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_37e52b94-5129-458e-9309-fd1041ed91ff" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesAdjustments"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesAdjustments_37e52b94-5129-458e-9309-fd1041ed91ff" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ValuationAllowancesAndReservesBalance_695ffcc0-395f-4586-804b-ab598147e2e1" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ValuationAllowancesAndReservesBalance"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_MovementInValuationAllowancesAndReservesRollForward_85c14ec4-ec6b-47fa-9d7d-1f13e8723d87" xlink:to="loc_us-gaap_ValuationAllowancesAndReservesBalance_695ffcc0-395f-4586-804b-ab598147e2e1" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/periodEndLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#AwardTimingDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_PerformanceSharesMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_PerformanceSharesMember"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_PerformanceSharesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockUnitsRSUMember"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockUnitsRSUMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_RestrictedStockMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_RestrictedStockMember"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_RestrictedStockMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgDiscLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgDiscLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiDiscTextBlock"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiDiscTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMethodTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgPredtrmndFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgPredtrmndFlag"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgPredtrmndFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgMnpiCnsdrdFlag"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgMnpiCnsdrdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardTmgHowMnpiCnsdrdTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardTmgHowMnpiCnsdrdTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MnpiDiscTimedForCompValFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_MnpiDiscTimedForCompValFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTableTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscTable"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_AwardTypeAxis" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_AwardTypeAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardsCloseToMnpiDiscTable" xlink:to="loc_us-gaap_AwardTypeAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_AwardTypeAxis" xlink:to="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_EmployeeStockOptionMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_EmployeeStockOptionMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_EmployeeStockOptionMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_StockAppreciationRightsSARSMember"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain" xlink:to="loc_us-gaap_StockAppreciationRightsSARSMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardsCloseToMnpiDiscIndName"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardsCloseToMnpiDiscIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardUndrlygSecuritiesAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardUndrlygSecuritiesAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardExrcPrice" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardExrcPrice"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardExrcPrice" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AwardGrantDateFairValue" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AwardGrantDateFairValue"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_AwardGrantDateFairValue" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_UndrlygSecurityMktPriceChngPct"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AwardTmgDiscLineItems" xlink:to="loc_ecd_UndrlygSecurityMktPriceChngPct" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#InsiderTradingArrangements"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllTradingArrangementsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllTradingArrangementsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllTradingArrangementsMember" xlink:to="loc_cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:loc xlink:type="locator" xlink:label="loc_cgnx_JoergKuechenMember" xlink:href="cgnx-20231231.xsd#cgnx_JoergKuechenMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_cgnx_JoergKuechenMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/label"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingArrLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingArrLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrByIndTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrByIndTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TradingArrByIndTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TradingArrAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TradingArrAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_TradingArrAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrAxis" xlink:to="loc_ecd_AllTradingArrangementsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_TradingArrByIndTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MtrlTermsOfTrdArrTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_MtrlTermsOfTrdArrTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrIndTitle" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrIndTitle"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrIndTitle" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrAdoptedFlag"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrAdoptionDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrAdoptionDate"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrAdoptionDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Rule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_Rule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonRule10b51ArrTrmntdFlag"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_NonRule10b51ArrTrmntdFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrTerminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrTerminationDate"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrTerminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrDuration" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrDuration"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrDuration" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TrdArrSecuritiesAggAvailAmt"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingArrLineItems" xlink:to="loc_ecd_TrdArrSecuritiesAggAvailAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ErrCompDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/ErrCompDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RecoveryOfErrCompDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompRecoveryTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompRecoveryTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompRecoveryTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDateAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDateAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_RestatementDateAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ErrCompRecoveryTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonNeosMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonNeosMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllIndividualsMember" xlink:to="loc_ecd_NonNeosMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDeterminationDate" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDeterminationDate"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDeterminationDate" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompAmt"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ErrCompAnalysisTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ErrCompAnalysisTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ErrCompAnalysisTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_StkPrcOrTsrEstimationMethodTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_StkPrcOrTsrEstimationMethodTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingAggtErrCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingAggtErrCompAmt"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingAggtErrCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AggtErrCompNotYetDeterminedTextBlock"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_AggtErrCompNotYetDeterminedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryIndName"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryIndName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryIndName"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryIndName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OutstandingRecoveryCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OutstandingRecoveryCompAmt"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_OutstandingRecoveryCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_RestatementDoesNotRequireRecoveryTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_RecoveryOfErrCompDisclosureLineItems" xlink:to="loc_ecd_RestatementDoesNotRequireRecoveryTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#PvpDisclosure"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/PvpDisclosure" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PayVsPerformanceDisclosureLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTable" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTable"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTable" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ExecutiveCategoryAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ExecutiveCategoryAxis"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_ExecutiveCategoryAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllExecutiveCategoriesMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllExecutiveCategoriesMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_ExecutiveCategoryAxis" xlink:to="loc_ecd_AllExecutiveCategoriesMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_PeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoMember"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AllExecutiveCategoriesMember" xlink:to="loc_ecd_NonPeoNeoMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_IndividualAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_IndividualAxis"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_IndividualAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllIndividualsMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllIndividualsMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_IndividualAxis" xlink:to="loc_ecd_AllIndividualsMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAxis"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_AdjToCompAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AllAdjToCompMember" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AllAdjToCompMember"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_AdjToCompAxis" xlink:to="loc_ecd_AllAdjToCompMember" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureAxis" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureAxis"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PvpTable" xlink:to="loc_ecd_MeasureAxis" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PvpTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PvpTableTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PvpTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureName"/>
    <link:presentationArc order="3" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NamedExecutiveOfficersFnTextBlock"/>
    <link:presentationArc order="4" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NamedExecutiveOfficersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupIssuersFnTextBlock"/>
    <link:presentationArc order="5" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupIssuersFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_ChangedPeerGroupFnTextBlock"/>
    <link:presentationArc order="6" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_ChangedPeerGroupFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoTotalCompAmt"/>
    <link:presentationArc order="7" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoActuallyPaidCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoActuallyPaidCompAmt"/>
    <link:presentationArc order="8" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoActuallyPaidCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToPeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToPeoCompFnTextBlock"/>
    <link:presentationArc order="9" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToPeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgTotalCompAmt"/>
    <link:presentationArc order="10" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgTotalCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonPeoNeoAvgCompActuallyPaidAmt"/>
    <link:presentationArc order="11" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonPeoNeoAvgCompActuallyPaidAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToNonPeoNeoCompFnTextBlock"/>
    <link:presentationArc order="12" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToNonPeoNeoCompFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_EquityValuationAssumptionDifferenceFnTextBlock"/>
    <link:presentationArc order="13" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_EquityValuationAssumptionDifferenceFnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock"/>
    <link:presentationArc order="14" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsNetIncomeTextBlock"/>
    <link:presentationArc order="15" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsNetIncomeTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock"/>
    <link:presentationArc order="16" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnVsPeerGroupTextBlock"/>
    <link:presentationArc order="17" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnVsPeerGroupTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CompActuallyPaidVsOtherMeasureTextBlock"/>
    <link:presentationArc order="18" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CompActuallyPaidVsOtherMeasureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TabularListTableTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TabularListTableTextBlock"/>
    <link:presentationArc order="19" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TabularListTableTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_TotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_TotalShareholderRtnAmt"/>
    <link:presentationArc order="20" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_TotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeerGroupTotalShareholderRtnAmt"/>
    <link:presentationArc order="21" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeerGroupTotalShareholderRtnAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_us-gaap_NetIncomeLoss" xlink:href="https://xbrl.fasb.org/us-gaap/2023/elts/us-gaap-2023.xsd#us-gaap_NetIncomeLoss"/>
    <link:presentationArc order="22" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_us-gaap_NetIncomeLoss" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_CoSelectedMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_CoSelectedMeasureAmt"/>
    <link:presentationArc order="23" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_CoSelectedMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_OtherPerfMeasureAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_OtherPerfMeasureAmt"/>
    <link:presentationArc order="24" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_OtherPerfMeasureAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_AdjToCompAmt" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_AdjToCompAmt"/>
    <link:presentationArc order="25" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_AdjToCompAmt" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_PeoName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_PeoName"/>
    <link:presentationArc order="26" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_PeoName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_MeasureName" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_MeasureName"/>
    <link:presentationArc order="27" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_MeasureName" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_NonGaapMeasureDescriptionTextBlock"/>
    <link:presentationArc order="28" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_NonGaapMeasureDescriptionTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_Additional402vDisclosureTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_Additional402vDisclosureTextBlock"/>
    <link:presentationArc order="29" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_PayVsPerformanceDisclosureLineItems" xlink:to="loc_ecd_Additional402vDisclosureTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
  <link:roleRef roleURI="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="simple" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#InsiderTradingPoliciesProc"/>
  <link:presentationLink xlink:role="http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc" xlink:type="extended">
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTradingPoliciesProcLineItems"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcAdoptedFlag"/>
    <link:presentationArc order="1" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcAdoptedFlag" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
    <link:loc xlink:type="locator" xlink:label="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:href="https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd#ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock"/>
    <link:presentationArc order="2" xlink:arcrole="http://www.xbrl.org/2003/arcrole/parent-child" xlink:from="loc_ecd_InsiderTradingPoliciesProcLineItems" xlink:to="loc_ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock" xlink:type="arc" preferredLabel="http://www.xbrl.org/2003/role/terseLabel"/>
  </link:presentationLink>
</link:linkbase>
</XBRL>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>14
<FILENAME>cgnx-20231231_g1.jpg
<TEXT>
begin 644 cgnx-20231231_g1.jpg
M_]C_X  02D9)1@ ! @$ 8 !@  #_[@ .061O8F4 90     !_]L 0P " 0$!
M 0$" 0$! @(" @($ P(" @(%! 0#! 8%!@8&!08&!@<)" 8'"0<&!@@+" D*
M"@H*"@8("PP+"@P)"@H*_]L 0P$" @(" @(% P,%"@<&!PH*"@H*"@H*"@H*
M"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*"@H*_\  $0@$
M) 3R P$B  (1 0,1 ?_$ !\   $% 0$! 0$!           ! @,$!08'" D*
M"__$ +40  (! P,"! ,%!00$   !?0$" P $$042(3%!!A-180<B<10R@9&A
M""-"L<$54M'P)#-B<H()"A87&!D:)28G*"DJ-#4V-S@Y.D-$149'2$E*4U15
M5E=865IC9&5F9VAI:G-T=79W>'EZ@X2%AH>(B8J2DY25EI>8F9JBHZ2EIJ>H
MJ:JRL[2UMK>XN;K"P\3%QL?(R<K2T]35UM?8V=KAXN/DY>;GZ.GJ\?+S]/7V
M]_CY^O_$ !\!  ,! 0$! 0$! 0$        ! @,$!08'" D*"__$ +41  (!
M @0$ P0'!00$  $"=P ! @,1! 4A,08205$'87$3(C*!"!1"D:&QP0DC,U+P
M%6)RT0H6)#3A)?$7&!D:)B<H*2HU-C<X.3I#1$5&1TA)2E-455976%E:8V1E
M9F=H:6IS='5V=WAY>H*#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6V
MM[BYNL+#Q,7&Q\C)RM+3U-76U]C9VN+CY.7FY^CIZO+S]/7V]_CY^O_:  P#
M 0 "$0,1 #\ _?RBBB@ 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
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
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
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
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
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@
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
MQ8\!>.?"NKZ=+JFF>&/B-K L?$,5]J-M8^2;077EV\B2722(T"J"%9&5MRE
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
M_'W_  1$^%S:C]L_:+\4Z=8^'M;M?F7PW8S_ +OQ'<L"<E6TN D =#&YY+4
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
M7_!R_P#M.>*/VEO^"PWQ3@U?4Y9-*^'][%X/\.V;.2MI!9(!.%_W[M[J0_\
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** /Q$_X.9_\ @WI^)?[6/C2Y_P""@W[#'A(:
MOXU>PCB^(G@2TPMQKBP((XK^S!P)+E8E6-X<@RK&A0&0%9/(?^#<S_@OK\+_
M -A[X9R_\$T/^"DUWJG@.'PMJUQ_PA?B;7-*G5-,6:5I9M+OX]AEM]LSN\<C
M+M E9',81"?Z&:\Z^-_[('[)W[3'EG]HO]F3X?\ CQH4VP2^,/!]EJ3Q#T1K
MB)BGX$4 >2>-_P#@M?\ \$C_ (?^#I/'.N_\%&?A!<64<1D:#1/&]IJ=X1C.
M!:6;RW#-_LB,GMBN(_8]_:^_;#_X*)?M,:;\<_AM\*-5^&G[+OANPN_[,O?&
MVF&UUWXE7\L1BAN8;5OGM--A#&5&?#3-L.#RL/L?PL_X)A?\$XO@CX@B\7?"
M7]A+X2:!J]O()+;5].^'^GI=P,#D&.;RMZ<_W2.@]*]TH ^3_P#@LC_P2R^'
MW_!6;]CZ_P#@'KVIP:-XJTJY_M7P!XHEA+#3-31&4+)M&YK>528Y5&>"K@%H
MTK\)/^".7Q_^./\ P;B?\%)==^!G_!2'X9:WX)\#?$>Q32?$&L264DUDDMO*
MS66KVTL8*WELAEFC<Q%BJ7+$C=&8S_476%\1?A?\-/B_X9E\%?%GX=Z%XHT:
M<@SZ1XBTB&]M9",C+13*R'J>H[T >5>)_P#@IO\ \$Z_!WPN?XTZ_P#MQ?"J
M/PPMH;A-5@\<V,ZS(%SMB2*1GF<\ 1HK.20 I)Q7\X'[5?A;]KO_ (.B/^"K
MNL^/_P!D?X7:K%\.=)6V\.:'XLUZT>#3= T2W=V^TW<N-HFEDFGN!;)NE(E"
M!6V%J_HDL_\ @C__ ,$IK#7/^$BM/^"<'P12Z#;E_P"+9:88U.<@K&8=BGZ+
MQ7OGA3PCX3\!^'[7PEX'\,:=HVE64>RSTS2;*.WMX%SG:D<8"J,GH * /)?V
M#_V+_@G_ ,$UOV0/#/[,'PJG6'0O"6FO+JNN:ALBDU&Z;,MU?W#9PK.Y9CDX
M1 J [4&/@?X_?\%1/V%= _X.,_A%IM[^TEX5.FZ1\%M<\,ZUXECUF%M+T_5K
MZ\BN(+.:[#>5'(5M<'+85IHU)#$@?JYJNE:9KFF7.B:WIT%Y97D#P7=I=0K)
M%/$ZE71T8$,K D$$8()!KA_^&3_V6?\ HVKX?_\ A&V/_P :H R?VGO@5\(O
MV^OV1/&G[/VN:U8:KX6^(?ABZTQ=6TZ9+F*-W!$5U$RDJSPSJDBG. \0]*_&
MS_@T>_X)5>.O@=^T-\;/VI/VA?"!LM<^'FNWGPV\/03QDA-1BD#:I<1E@,A5
M6WB20<,L\P]:_=GPOX4\+>"-"@\+^"_#6GZ1IEKN^RZ=I=FEO!#N8NVV.,!5
MRS,QP.22>IJS9Z=I^G"4:?80P>?,TTWDQ!?,D;[SMCJQ[D\F@#X&_P"#D7]I
M+X$?#C_@DG\:_AUXO^+7AZS\2:]H-OI>C^')-7A^WWEU-=6[+'';[O,8B,F0
MX7A%+' &:_G1_P"#>GXR?#'X _\ !8_X)?%+XQ>-M.\.>';/5]3M;[6M7NE@
MM;5[K2+ZTA,LCD+&IFGC4LQ"C=DD $U_7[XH_9Z^ 7C?79_%'C3X'>#]7U.Z
MV_:M1U3PS:W$\VU0B[I)(RS85549/  '050_X9/_ &6?^C:OA_\ ^$;8_P#Q
MJ@#2U?X_? GP_P"#!\1]>^-?A*R\/$L!KUWXDM8K([1N;]^T@3@<GG@<U_$I
M_P %%OB/X/\ C%_P4%^.OQ;^'NLQ:EH'BGXQ^)]7T/48#E+JSN=5N9H95]FC
M=6'L:_MIG_9\^ EUX:M_!=U\$/"$FCVMRUQ:Z3)X:M3;0S,,-(D1CV*Y'!8#
M)K/_ .&3_P!EG_HVKX?_ /A&V/\ \:H YC]A/]I7X"_M'_LS> _$OP3^+GAW
MQ+#+X*TV66'1]8AGFMB+:)72:-&+1.C_ ",K@%6!4@$8KV:N9\$_!;X.?#34
M)=6^''PF\,^'[J>'R9[G1-!M[222/(;8S1(I*Y .#QD"NFH _)G_ (.8?^"N
MGP#^#?[/4O\ P3[^'OQQTT>-_BEJL.@>/;C0[U+F;PCX<>94U&6Y$9;RII(M
MT"PL-Y225L#:N?TF_9C\2?LW:G\&/#_A;]E/QWX7USP7X;T2STO0CX3UJ"^M
M;:SAA6.",/"[# C10,GD"K.K_LS?LW^(-5N=>U[]GWP1?7U[.\]Y>WGA2SEE
MGE<EFD=VC)9B222222<FMKP/\+_AG\,8+BU^&WP[T+P]%=NKW4>AZ1#:+,R@
MA2XB50Q )P3TS0!\7?\ !QO\)/V?/CS_ ,$I/BEX#^,WQ*\-^'=6T+09/%?@
MJ;6]5A@E.J:>KRQ1P+(P+O.HEM %!)^U$ 9Q7\R/_!'+_@H'J/\ P3/_ ."@
M?@;]IV:2Y?PY%=-I7CJRM@6:ZT2ZPER H^^T>$N$7C,EO&.E?V<>-_@W\(/B
M9>0:A\2/A5X;\07%M&8[:?7-#M[MXD)R55I48J,\X%8G_#)_[+/_ $;5\/\
M_P (VQ_^-4 5;#]LC]DK4_A%:?'VT_:9\!GP3?6K7%IXJD\5VB6,D:HKN?.:
M0*"JLI92<KN&0*_B'_:D\9Z#\1_VF_B-\0_"MY]HTO7O'>KZCIMP%(\VWGO9
M98VP>1E6!Y]:_N-F_9N_9VN-$@\-3_ 3P6^FVMQ)<6VGOX6M#!%+(%5Y%C,>
MU68(@+ 9(1<]!53_ (9/_99_Z-J^'_\ X1MC_P#&J .>^''Q)_9)_P""@/[-
M1T+PWXS\)?$7P7XS\(K!K.EV.J0W<<UE<P!)(9TC8M&<,596VLC CAAQ_)-_
MP6(_X)F?%;_@CU^W'<?#O2]4U3_A&;NZ_MWX3^,XI&CEN+)90T8\U,;;NV?;
M')MVG<J2 *LB5_8KX(^#GPB^&5U/??#?X5^&_#T]U&([F;0]#M[1YD!R%8Q(
MI8 \X-3>.?A9\,?B=%;0?$KX<Z#XA2S9FM$US1X;L0%L;B@E5MI.!G'7 ]*
M/@/_ ((-_P#!=3X/?\%&OV7].\,_'CXH>'] ^-/A&S%IXPTG5-1AM&UJ.),C
M5K9'*AT=%+3*@_<R!\A4:,M^3_\ P>4?'_X,_&;]N;X<>&OA-\2]$\2S^%OA
MR\&OOH6I1W4=E<37TSK!(\3%5EV*'*$[@KH2!N%?T?VO[+7[,EE(9K+]G/P)
M"[1O&SQ>$+)24=2K+D1="I*D=P2#UJ/_ (9/_99_Z-J^'_\ X1MC_P#&J /R
M!_X,P/VD_@-X8_8C^(_P$\4_%SP[I7BY?BW/K,6@:GJ\-O<SV5QIFG6\<T22
M,#(OFVTJ$KG:0 <;ERW_ (+?_MO_ !Y_X)]?\'!WP7_:&^!OPSUSQK#;_ ".
MS\;^$=!LI9YM4T&36=2-RN(U8J8V2*9'(VK)#'N^7(/[!VO[+/[,5C<QWME^
MSEX#AFAD#PS1>$+)61@<A@1%D$'D$5T<7P[\!P?$&X^+,/@_35\3W6C0Z1<:
M^+-/M<EA%++-':F7&[REEFE<)G&YR<9H \/_ &5?^"L'_!/;]LGX;VWQ)^"_
M[4WA%D> /J&A:YK4&GZKI3@9>*ZM)W62)E(8%L%&VDHS+\U?C;_P</V_A#_@
MM]_P46^#?['?_!,^ST[XB^+_  9I.H6WQ"\>>'I!<:1I=M=7%LT27-]%NC\J
MU\JXD8J6 >Z\I-TI,=?MC\:O^";O_!/W]HWQ,_C;X[?L5?"[Q7K<K[I]:UOP
M/8SWDQ_VYVB\QQ[,Q%=[\&_@#\"OV=?"W_"#_L__  8\*^!]&W[SI7A'P_;:
M=;L^,;C';HBEO<C- '+? []D'X4_!W]BWPU^PU?Z5%K_ (/T/X>0>$=1MM1A
M^75K1;06TYF4'_EL-[, >LAQ7\R__!1/_@D'^V9_P06_;5T+]LK]GSPMJGBW
MX6^$_&5KXA\%^-+:V>==.6&=95T_5A&,P$ >492!%.C94AF:)/ZOJ;-#%<1-
M!/$KHZE71UR&!X((/44 ?+G[&/\ P66_X)X?ML_!'3/C%X"_:<\&Z)<3V"3:
MYX4\4>)K6QU/1)]H,D-Q#,Z-A6W*)5!C?;N1B*_)K_@YJ_X*I^&/^"A;^%?^
M"4W_  39N+GXLWUWXCBU3QG?^ 8'U*&]GA5A;:=:O &%RJLYGED3,:&.$!R1
M(%_8OQY_P2D_X)D?$[6W\2^//^"?GP;U+499?,GOYOASIPFF;UD=80TG_ B:
M]&^"G[,/[-G[->FRZ-^SM^S[X)\!VLX N+?P=X6M-,6;'3>+>--Y]SF@#\^/
M^#;[_@A;J/\ P2Z^&.I_'W]H^ULY?C1XZTY+:]L[:59H_#&E[ED_L]95)629
MW5'G=24S%&B$A"\EK_@Z"_;A_9M^$O\ P3+\8_!#4OBQH%WXZ\2^)/#T.D^#
M[/5X9=0;['K=EJ$[O K%XXUBM) 78!0[(N<L ?TVKBM=_9M_9U\4:Q<^(?$O
MP#\%:CJ%Y*9;N^OO"UI--.YZL[O&68GU)S0!2_9S_:O_ &<?VMOA_IOQ-_9S
M^,WA[Q;I.IZ?'>0OHVJQ32PHX!VS1*Q>&12=K(X#(V58 C%:'[0GP ^$G[4_
MP5\2?L]_'7P=;:_X3\5Z8]CK.EW0XDC;D,K#F.1&"NDBX9'164@J#5WP1\&?
M@_\ #.]FU+X;_"GPUX?N+F+RKBXT30K>T>5,YVLT2*6&0#@\9KI: /YK?V!O
M^"4WQ;_X),_\'/\ \&/@OXO^TZIX/UB;Q/??#OQ@\.(]8T[_ (1W5!M<@;5N
M8=RI-&,88JX&R1"?Z4JQ?$?PY\ ^,/$>@>+_ !5X-TS4=5\*7\M[X:U*\LDD
MGTNXEMY;:66!R-T3/!-+$Q4C*2,#P:VJ "OS(_X..O\ @AG>_P#!4[X4:9\;
M?V>H;.W^-'@.PDM]*@NY5AB\2Z86,ATZ25L".5'9W@=B$#22(Y42>9'^F]%
M'\\7_!L[_P %0]%_X)F^)_&?_!++_@I8M[\)FG\1-K'A/4/'EL^GPZ;?2(D5
MS973S "WBD$4<T4K8B+>;E_WB9_8+]KC_@L-_P $Z_V-O@QJ7QD^(_[4_@O4
MQ:V+3:5X=\,^);34-3UF7:3'#:V\,C,Y=L+YAQ&F=SLJ@FO9OC1^S9^SK^T?
MI$>@?M"_ 7P9X[L8<^1:>,?#%IJ<<6>NU;B-PI]QCI7F7@K_ ()._P#!,'X=
M:ZOB?P7_ ,$]_@U8:C'+YL%['\.--:2!\YS&S0DQGTVXQ0!_.-^PI_P2F_;.
M_P"#@S]N_P 2?MH?&[PCJG@[X6>+?&5QKGB_QG<P-%'/;O,673-*,BC[2ZQA
M8%E ,<*IN<E@L<G]2GAS1/A-^SI\*='\%:*-(\)^$/"VE6NEZ1;S7*6]K86L
M,:PP0AI"  %55&3DXKI+:VM[.WCM+2!(HHD"111J%5% P  .  .,50\6>#?"
M'CW1)/#7CKPIINM:;,RM+I^K6,=S Y4Y4F.0%200".."* /Y!?\ @Y8^-7PM
M^/?_  63^*WCGX.>.=,\2:'%%HVG1ZSHUXEQ:SSVVE6L,ZQR(2KA)5>,D$C=
M&V":_>G_ (-=_P!I3X"^,?\ @D#\(OA!H7Q>\.R^+?#?]L:?K?A?^V(1J%I.
MVKWL\:M 6\S#PRQR*0,%7X/!Q]R?\,G_ ++/_1M7P_\ _"-L?_C57?#O[.?[
M/?@_6K?Q+X2^!'@W2]1M'WVNH:=X7M()X6P1E'2,,IP2,@]#0!U&EZ'HFB&Y
M;1M'M;0WMTUS>&UMUC\^=@ TK[0-SD* 6.2<#GBK5%% %?5;NZL-+N;ZQTY[
MN:&W>2&TC<*T[!20@+< D\9/'-?SZ? '_@\Q_:*\"_M-ZIX"_P""@G[(.BZ3
MX1BUJ:RO++PA9W=KKOADK(5*3Q7DS)>-'C:Z;;=B0S#'$=?T)UY1\;OV$/V)
M/VEM=7Q3^T-^R'\,_'&JJJJNJ^*O ]A?W051@+YTT3/M XQG% 'S]XH_X+N_
M\$\?B#\&9M4_9.^+UM\8_'.OZ3(G@SX5>#=.N+K7-7O70B.":S,8DM(]Q'FR
MSJB1H&9CP :'_!O[_P $I;__ ()2?L0Q_#_XC26D_P 2/&NHC7/'\UG*)([6
M<QA(-/CD'$B01@@L,AI9)BI*E:^KO@G^S'^S=^S7I4NA_L[?L_\ @KP'9S@"
MXMO!WA:TTU)L="XMXTWGW.37<T %%%% 'SW_ ,%*?VG?V??@-^QE\7+SXL_&
M/PUH4L7PYU>)+'4=:ABN9YI;&5888X6;?))(S*J(H)8L  <U_')_P3^^('A/
MX3?MY?!+XJ>/=8BT[0O#/Q=\-ZKK6H3G"6UI;ZI;332M[*B,Q]A7]N7BWX!?
M GQ]K<GB7QU\%?"6M:C*BK+J&K>'+6YG=5&%!>2,L0!P!G@5F_\ #)_[+/\
MT;5\/_\ PC;'_P"-4 ;_ ,/_ (M?"KXLZ?\ VM\+/B9X?\2VAACF%SX?UF"\
MC\MP2C[H78;6P<'H<'%:/B7Q7X6\%Z2^O>,?$NGZ38QL%DO=3O$@B4GH"[D
M9^M9O@;X2?"GX8/<R?#7X8^'O#S7H07C:'HL%H9PN=H?RD7=C<V,YQN/K5[Q
M=X)\&?$#16\.>/?".F:WISR*[V&KV$=S"S*<JQ212I(/0XXH _CQ_P"#C+XR
M_#'X^_\ !9OXU_$SX.^-M.\1^'KB^T>RM-9TB[6>VN);31+"TG\N1"5=5G@E
M3<I(.S()%?MQ_P $"?\ @L#_ ,$U/A;_ ,$F_A/\(/C'^V1X&\'>*_"&EWFG
MZ]H'BC64L;F"07US(C*LN/-1XGC<,FX?-@D,"H_2K_AD_P#99_Z-J^'_ /X1
MMC_\:H_X9/\ V6?^C:OA_P#^$;8__&J /S9_X**_\'4/_!.[]DOX):CX&_80
M\5Z=\2_'[6#VOAJQ\.Z7)%H.C2L"$N+B=D2.2-#EA#;[RY 4F,-O'NW_  1_
M^+GP\_9/_P""(_PG^/'[7?QFTKP]!K>AWWBWQ-XK\6:FD'VR[U:_O-5>1G<@
MRS2"X+!%!=^B@\"OK#_AD_\ 99_Z-J^'_P#X1MC_ /&JW]>^$OPJ\5>%K+P-
MXH^&?A[4M$TSR_[.T>_T6":UM?+0QIY<3H4CVH2HV@84D#@T ?E/_P $0/\
M@HW^R]^WY_P4,_:6_;:\??%C0M$\6:M>:5X.^$_ACQ+JT-I>VW@ZV\QX_L\<
MK NUS<XGG1-VR7:. RY_72[N[6PM9;Z^N8X8(8VDFFF<*D: 9+,3P  ,DFN'
MM?V6?V8[&ZCO;+]G+P'#-#('AFB\(62LC Y# B+((/((KM[^PL=4L9M,U.SB
MN;:YB:*XMYXPZ2HPPRLIX92"00>"#0!_(?\ \'.WP:^ WPG_ ."M7C'Q%^SW
M\0?#^N:5X_TNU\5:O;>'M2BN8]*U6Y>6.\MY&B8A99)8#=E3R!>+Q@BOV _X
M-3O^"M'PW_:'_8OT?]B#XQ_$S3;'XE?# C2?#UAJVHI%/KNADYLVMPY!F> 9
MMFC0$JD4#'[]?IM_PR?^RS_T;5\/_P#PC;'_ .-5:T/]FO\ 9T\,ZO;>(/#?
MP"\%:??V<RRVE]8^%;.*:"0'(='6,,K#L0<T ?B!_P 'I?[2WP%\?_"/X,?!
MCX?_ !<\.Z]XDLO%6HZIJ6E:+K$-U+8VPMDB5YEB9O*WNY"[L%MCXSM..!_X
M,J/VC_@9\(O''[0'PQ^*GQ7T#PYK'BJS\,7?ARTUS5HK0ZBEFVJK<"(RLH=D
M^UP$J,MAB<8!(_?-_P!E']EN1R[_ +-G@!F8Y)/@ZQ))_P"_5'_#)_[+/_1M
M7P__ /"-L?\ XU0!^9O_  =)_P#!&N']N/\ 9]'[</[.GAE;KXH_#C1V?5;/
M3HMTGB?0$S(\:A?]9<6^7EBQRZ&6,;F,0'Y'_P#!N7_P68NO^"7/[4#?#_XQ
M:[<?\*8^(MU%;^+XCND70[P?)!J\:#)^0828*,O"<X=H8UK^MZVMK>SMX[2T
M@2**) D44:A510,  #@ #M7"/^RE^RY(YDD_9L\ ,S'+,?!UB23_ -^J .E^
M'_Q&^'WQ9\(V7Q ^%GCK1_$N@ZC%YFGZUH.IQ7EI<I_>CEB9D<>X)K9K-\)>
M#/!_@'1(_#7@7PIINBZ=$[-%I^DV$=M C,<L0D8"@D\DXY-:5 !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% '-_&'XP_##]G_X7Z[\:?C1XVL/#GA7PUITE]KFMZE+LAM8
M$'+'J6).%55!9F954%B ?PP^+G_!S5_P4&_X*/?M2VO[&?\ P1"^ UKICZE<
M21V/C+Q3IT5UJ,L$?^LOWBFS::?;*#D^<LS$;/NNPBKDO^#S_P#X*">*]2^*
M'@O_ ()O>!M<EM]!TO28?%7CN*WD(%]>S/(EE;2>JPQ1M-MY5FN8V/,:X]K_
M .#*;]E;PUX6_93^)G[8^HZ5$VO^+?&/_"-:==R1@O#IMC!#,X1OX5DN+D[P
M.IM8\_=% 'TC\)O^"8/_  7+MM#@\8?%7_@OYJEIXPE3S+C3='^#6E:AH]M(
M1S&%N#%YZ9[^5"<=%!YKYO\ ^"J'_!7C_@N#_P $D_A!JGPN_:6^#/P[\8)X
MPL+C2OA[^T5X&6YL(;2[>)OGNK"02(E^B;I4CS'$Q3*^<L<@K]M*\,_X*3_L
M3^%/^"AW[$?Q!_9)\4-:02^*=#==!U.]A+IIFJQ8ELKOY?FQ'.D98+RR;UZ,
M10!>^-'@']ISXL?!72M1_9S_ &G9?A_XH7PV98;BX\*V.JVE_>20QM$;F.X3
M>$5PV?*="1(2<X6OYI?#_P#P==?\%LO$GB2Q\+6'Q?\ !HNK^^BM81)X L0!
M([A!GY.F2*_JP\*:1+X?\+Z;H-Q*LDEE80V[NG1BB!21GMQ7\('PC_Y+QX8_
M[&ZR_P#2I* /[A?V=OA;\?/ASHG_ !?W]J"]^(VJSV4*3R-X5T_2K2"=1^\>
M".VC$@5B>%DDDP .<Y)^/O\ @NW\5_\ @H_^P]^R7XP_;F_9$_:TL8-.\*7M
MC+JW@3Q%X"TZ[C2RN+F&T+6USL63<DLR2$2[\J7PPV@']"J^&_\ @Y/_ .4(
MGQZ_[ FE_P#IYL* /6_V1OA3^V_<?L\6&K_M2_MG7.K^./$?ABUFN9/#G@C2
MK*ST"[D5)7%NC02&X*9,6Z8E7&6\M"0%_)+_ (+1?\%8/^"W/_!+S]J_Q!\'
M_AU^TCH'C/P?IGAC2O$"ZY>_#/3HKFQM;^>XMHDN1&NTD3VSIYBA5.^/Y5+8
MK]X/ '_(B:)_V"+;_P!%+7YL?M=?LF^#?VZ/^"NWQ^_9,\=>6EEXV_8;TFQ@
MNY4W"RO!XDO9+2Z [F&X2&4#UC% 'C__  ;3_P#!?S]HS_@HM\?/&W[+G[;7
MBK1+WQ&V@QZUX"O-,T:&P$T<#E+VU98P!(^V6&5.,A8IB<@#'[.U_#S^R_\
M&KXQ_P#!+7_@H3X<^*]WHMS8>+/A#X_>W\1:(7VO(+>9[74+!CV$D7GP$^CD
MU_;#X,^+_P ./'WP@TOX]>&?%=I-X2UGPY#KUAK;RA(&TZ6 7"7!8\*GE,&)
M/04 ?F)_P<@_\%D/VK?V +_P]\*/V%;W2HO$FE^&V\7_ !,U34](BO4TO1I;
MZ#3+"/9*"H>>[F?_ &@( 1\I:OCS_@C-_P %O?\ @LC_ ,%3?VZ]"_93\1?M
M2>&/"^C3Z3>ZMKFKV'PUT^:Y6VMHPQCA5UVAW=D3<V0H8MM;&T[G_!1'0=6^
M/G_!$7]J7_@J[X\TV:+5/VBOBCX?E\%0WD966P\%:7K$%EH\.UO]6TJI-<OM
MP'\Y&(SS7RI_P9]_\IAK7_LF>N?^V] '](GQR^"_[7.I?!2/2O@5^VEJ.B>,
M](TB],>N:QX)TF]AUB[;YX#=0"",1HF/+Q 8R5;+;F&3_-CX0_X.M/\ @MEX
MT\6:7X.TKXQ^#%NM6U&"SMC)X L0HDED5%SA.F6%?U<7?_'I+_US;^5?P<_L
MZ?\ )P?@3_L<M+_]*XJ /[A/V>OA?\=OAQHS+\=_VG;_ .(VISVL*RRR>%M/
MTJU@F4'S'ABM8PX5R?NR228"C!SDGXT_X+Q_%_\ X*1_L)_LF>+/VZ/V2/VM
M+&/2O"^I6+:SX%\1^ =.NHXK.ZNH;,-;7(19-R33QL5DWY5G.X;0#^B-?"'_
M  <T?\H.?CO_ -@_1/\ T_Z=0![7^RU\'_VWA^S_ &MQ^U!^VE=:MXZU[P]:
MR75SX;\$:396F@WC;)9!;(\$AGV\Q;IB0PRP1"1M_&O_ (+5_P#!:W_@L=_P
M2E_;DU']EWPS^U1X9\5:)+H%EK>A:IJ'PUT^&Z%M<>8OE3!%V%T>*1=RX# *
M=JY*C^@SP]_R +'_ *\XO_0!7\MG_!Y#_P I<M/_ .R0Z-_Z57] 'ZW_ /!
MO]H+_@HY_P %)/V4K+]LO]IW]L:*UL+SQ9<V>F>$O"O@#2K=9[:TD5)#<7$L
M,C_O'WKMC"%57(?+?)^F%?FC_P &D_\ RA;\'?\ 8X>(/_2YZ_2Z@ HHHH _
M/;_@XV_X*P^)O^"6?['VAZQ\&M5M(OB9XX\5VUIX6BN8UD6.SM98[F_G9&X:
M/RQ';'N#>J1TK[*_96_:,\ _M=?LW^"?VF_A?=>9H7CCPW:ZO8*7#/!YL8+P
M/C_EI$^^)QV>-AVK^9[_ (.:O%7Q[_;;^+VH_M^Z#:&X^ W@OQ_>?"+P-?QN
MQ6>^L8A<7E\H VM%<71NXTF!PRV2K_"*^TO^#+[_ (* ?\)G\(O&_P#P3F\=
M:WNO_!\[^*/ D<TG+:9<2JE];H.RQ73QS8ZDWTAZ+0!^YU?D+XL_:J_X+S?M
M6?\ !8#XW_L;?L._%GP-X2^&'PJU'3TU'Q3XM\&074.FI<V,$R6X8(TES<2.
MTS*G "H2SJ-N?UZKA?A!^SQ\.?@CXK^('C7P3;7/]H_$OQC_ ,)+XGN+J1'+
MW@L;2Q54*J"L2PV<6$);#,YS\V* /QK_ ."V?[?O_!<#_@C/X=^&^MZY^WSX
M$^(#_$*YU2'R+3X*6>FBP-FMJQ.YIYO-#_:<=$QL[YXD_P"")?[>_P#P6]_X
M++^&/B-XBT?]OSP+\/F\ 7FFVY@N?@E9ZF+\W:7+ [EN(?*"_9\=&SO[8YP?
M^#Y#_D1?V;O^PMXI_P#16EU-_P &.7_)-OVC/^PYX9_]$ZE0![-X:_:M_P""
M\?[*/_!83X(_L9_MN_%KP1XN^%WQ4U._33/%?A7P7;VD6J1VUC--) 3L$EK<
M1N(69,D%7!5W!./0/^#@O]IG_@H__P $S_V:Q^V+^S!^U];7.E2^-H=-U'P=
MXH\ :7<"T@NQ,T1M[F.)'*Q-&L>V4.S*X8R94[_T!^,/[.OPV^./BSX?^-_&
M]I<'4OAIXP_X23PO<VLBHT=X;*ZLF5R5):)H;N7<@QEE0Y^6OST_X._O^4.N
MH?\ 92-#_P#0IJ /CK_@AY_P69_X+$_\%:?VVQ^S3XM_:J\.>%=!TSPG>>(M
M=U+3/AMITMW);P2V\ AA\Q=BNTMU%\S!@%#':3@5^EW_  5K_P"'FO[/'[%^
MM_M&?L/_ +4XO_$'PY\,-J'B'PYXC\!:9=GQ#;0.\MU=(\<4?D3I 2PC12CK
M;A0H=RQ_%3_@RY_Y2L>,/^R$ZM_Z=M'K^H2\L[34+26PO[6.>">-HYX)D#)(
MC#!5@>"""00>M '\Q?[#7_!S+_P5B_:=_;#^&O[.WQ4_:H\)^$= \;>,;'1=
M1\11?#C3Y6LQ<2B-2 P"@L[*@9CM7=N.0"*_I9^&GA?Q;X.\(6^@^./B7?\
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
MW''EXVG=D?8G_!X=_P H@&_[*EHG_HNZK\T?^#*G_E*;X^_[-_U7_P!/FAT
M?K)\=_V<O^#E+P9X+O=>_9__ ."C_P '_'6K6L)DM]!UCX/V^B/>8&?+CF\R
MXC$A/"^843.-SJ,D1?\ !NG^WW^W=^W'X#^,^F?\% FMH?&?PV^(4?AZ73(O
M#T.G2Z>ZP$SP2QQ  NLBD9/IQQ7N7@/]MRV^*?\ P6+\8?L6>!O&R7NC_#GX
M(P:GXIL+9T:.#7+K4X]L;D#(DCM/*)&< 7.",@X]:^"W[*G@SX'?'GXM_'7P
MI?$7'Q=UG3-5UK3EM@D=O=6>GQV1D4@_,9$B1VX'S;CR6)H _-75_P!JC_@O
M9^UM_P %<?CG^R'^Q-\7? OA#X6_"G6;2"_\5>+?!<%U%IZSVD4L=LI"&2ZN
M'8RL$R %4EG7*[O*?^"VW_!0;_@M_P#\$9=*^&>H:W^WMX$^(+_$635D\JU^
M"EGIHT\V*V9/S-/-YH?[7Z)CR^^[C]F?@Y^SQ\.?@9XA\>^*O UM<"^^(_C.
M3Q/XFGNI$9I+UK2UM,(552(UBM(@JG)!W'/-?B/_ ,'RW_( _9F_Z_/%_P#Z
M!HU '6_\$3OV[O\ @M]_P64\%_$+Q=H_[?\ X%^'S> ]1L+3[-<_!&SU,7QN
M8YW#;EN(?*"^3CHV=V>,8/I?@;]J_P#X+O?LM_\ !9+X*_L3?MS?%?P1XL^&
M/Q2N]4.E>*O"O@R"TAU:.UTZXG>'=L$EM/'(L!>/)&UUVLX)->0_\&/'_)'/
MVA/^QF\/_P#I/>U^SOQ=_9T^&OQK\;_#SXB>-+2X_M;X8>+)/$/A:ZM9%0I=
M2:?=V$B2$J2T30WDA* KETC;/RX(!^=/_!Q#^UQ_P4J_X);_  *TG]K7]FC]
MK>RO-#UOX@C0[WPAXC^'VFSG3DN8+JY@:"X2-6:.,6QB(D#NV]6WY#9^6_\
M@@]_P5]_X*^?\%=OVP=5^ WQ _:OT'PIX=\-^"[CQ#J]]HWPVTV2[N ES;6R
M6\1E0I&2UR'+LK +$1MRP(^C?^#S/_E$UX?_ .RU:/\ ^F_5*^ ?^#)S_E(?
M\4?^R+S_ /IVTZ@#^D-/"'C./X8-X+_X6OJ3ZZ=,:W7QC)IMG]J$Y4@7/D"$
M6Y8$@[/+V<<BOS+^(WQ1_P""TWAC_@LQX3_X)R>'OV[?#<O@3Q3X"F\:_P#"
M877PITXZC9Z;!++!-:F)<1R7'G)&HD&U-LZN5)4H?U7KX%^*7_*RK\*O^S3]
M>_\ 3W%0![[^T7\'?VR3\#IY?@)^VY?Z+XOT/PY=/#J.M^!=(O;;6+U=\D;W
M,2P1^4O2+]R4 4!B&8'=_.W\!/\ @Z)_X+1_&_XZ>"_@M_POWP?I?_"7^+-.
MT3^TO^%;6,_V3[7=1P>=Y?R^9M\S=MW+G&,C.:_J/\9_\B?JW_8,G_\ 1;5_
M#;^P3_R?/\%_^RL^'/\ TYV] ']2G[1/P!_X.,OA;X U#QO^SG_P46^%?Q0U
M?3;9[B+PCKGP1M]!?4=JDF&&9+JX7S6QA0[1J3C+J.:^)O\ @F;_ ,'@GC;Q
MI\==,_9Z_P""FWP@\.>&K;5=472T\?>%H+BR32+HOY8&H6EQ)+B/></*CIY6
M,F,C<5_>:XN(+2![JZG2**)"\DDC!510,DDG@ #O7\-7[:NK:'\>/^"@WQ:U
MWX%6#ZMIOC/XR:]/X-M=+A,C7D%WJT[6B0HHRQ=9(PH YR * /[>/BCX8\9^
M,O U[X>^'GQ,NO"&KW 3['XAL],MKQ[4AU8_N;E'C<, 5((SAB00<$?SM?\
M!4O_ (+E?\%X/^"7G[9?B/\ 9+\=_M%^ ]?738H;[0M?L_AY8QKJ.G7"EH)G
MB(8PR8#*\9)VNC89EVLW]"G[/'A;Q=X&^ '@;P3X_NS<:]H_@[3+'6YS)O\
M,NXK2..9MW\69%8Y[YK\NOVX/^"7_P '?^"K?_!3+]J;]G[XC"+3M>L_@GX$
MO_ ?BT0;IM#U02:L$DXY>!Q\DL7\:'(PZHR@'H?_  ;M_P#!=VT_X*G?#._^
M"_[0U_IFG_&_PE$USJ$%G"MO!XBTTOA;ZWB'"/&66.:-> 2CKQ(53[M_:2^&
MOQ]^)/A!;+]G?]I27X:ZY!%,8=0;PG9ZQ;7$C*/+\^&Y 8HI!.(WC)W')X%?
MQ=WME^V%_P $C/VZ/)F-[X'^+'PH\2!D=#N3>HX8=%N+6XA?W2:&;G*M7]<_
M_!(W_@J-\(?^"KW[)NF_'OP"8--\26&RP\?^$1/NET34PF649Y:WDP9(9/XD
M.#ATD50#YU_X(B?%K_@K5^V;IOB_XP_MG_M9Z%9Z3X$^*>I>#W\&>&/A]81M
MJLVFNJ7<DMVR[HXFD8QJ$4/^[9MRY%?=OQ$_:O\ V8/A#\4- ^"?Q5_:(\$^
M&O&'BI0WAOPOKOB>UM+_ %,%S&I@@ED5Y-S@HNT'<P*C)!%?,7_!"?\ Y(?\
M</\ L[3XC?\ IX>O$?\ @NW_ ,$+/V'_ -L7QS-_P4-_:9_;&U?X-V_ACPS!
M8>*-8DC@GL)+>&1C RK*5>.<M*8PJ%O,8QA8]Y.\ XCPE^WM_P %8M0_X.D-
M1_8;U;6C_P *=M=/GNY/"BZ/!]BB\.#2_-@U07'E^<96NVB0OO(\US#@*,#]
M1?AA^U/^S/\ &SQWXB^%_P '?V@?!GBKQ)X1E\OQ1H7A[Q-:WEWI3[BN+B*)
MV:+# J=P&&!4\@BOP+M?V@/$-U\/H?VS?%/_  41^)6F?L^>(5/[/]G^T0_@
M"U/C>6RMUDU))IE3=(EA)(US!]J4&_W0*S ,YV_H)_P0G_X(;_L8_L ^(+W]
MMS]FS]JW5/B^?'?A-M,T#Q)&]O'IHTR6XBFEV+ 6\V4RVT0+,WR&-EV!MU '
MZ6T444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!_)
M1_P=D^%/$?AW_@M?X_U?6XI%MM>\,^'K[1RXX>V73(+9BOMYUO./J#7[ _\
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
MN?.RAFOPTDF,96>1>AK^:G_@FA^V5XK_ .";W[??@#]IZT6<1>$_$8@\4Z?
MX)N]+ES;W]O@':S&!Y-F<@2*C?PBOZ^_^'3O_!++_I&G^S__ .&;T/\ ^1:_
MFU_X.GO^"<G@;]@[_@H+:>,_@CX%TKPW\/OBIX?35M#T+0K".TLM,OK;;;WM
MK!#& L:9\B<!0%!NRH "XH _JZ\+>)_#WC?PQIWC3PEJ\&H:5J]A#>Z9?VK[
MHKFWE021RH>ZLC*P/H:OU^4?_!I1_P %%;']JK]@)?V4?&_B-9?&_P $W738
MH)Y<S7?A^0EK&90>JP_O+4@#"+#!DYD&?U<H _!?_@^0_P"1%_9N_P"PMXI_
M]%:74W_!CE_R3;]HS_L.>&?_ $3J55/^#Y*^LU\*?LV:8;A/M#:CXKE6'=\V
MP1Z2"V/3) J;_@QPO;5_ 7[1^G+<*9X]7\+R/%N^8(T6I@-CT)5A^% '[SU^
M7/\ P=_?\H==0_[*1H?_ *%-7ZC5^6?_  >#7UI:?\$>[F"YN$1[GXFZ'%;J
MS8,C@7#E1ZG:C'Z*: /S#_X,N?\ E*QXP_[(3JW_ *=M'K^HBOY<_P#@S O;
M6U_X*N^*H+BX1'N?@=J\<"LV"[C5-(?:/4[58_0&OZC* /Q;_P"#RW]@3_A;
MG[*WA3]O?P3HOF:W\+KX:3XKDAC^:70KV4+%(QZD07C( .@%[*QZ5\>_\&@_
M_!2_PK^R_P#&GXC?LE?'#QK#I/@OQ;X<NO%FE7M]-MAL-1TNV>:\/L)+".21
MCS_QX1@=:_HX^/GP3\!_M)?!'Q;^S_\ %#3!>>'?&?AV[T;6(,#<8+B)HF92
M?NNH;<K=58 CD5_(+^QY_P $COBY\5/^"R]K_P $P?'EM=0R^'/'%W9^/M0M
M T070K-F>ZN48<JEQ; ")CPQNHA_%0!_2A_P1:\#>*OB/\/_ ![_ ,%-/B[H
MDUGXP_:;\3CQ'I]G>+^^TGPE;H;?P_8'MQ9C[02.&-WDC-?;%5=#T31_#.BV
M?AOP]ID%EI^GVL=M8V=M&$C@AC4*D:*.%55   Z 5:H _EA_X/)/^4N&F_\
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
M7:+0O$O_  0@^$/A[4+>VOK9F\46FI64\:R1NK^(=3+12(<@ADD&5(P0WH:
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *^3_P!M
MG_@B%_P3'_X*!:Y/XV_:)_9@TJ7Q3<<S>+_#EQ+I6IS-P-TTMJR"Z8 8!G63
M X&,"OK"B@#\V? __!KA^P1\/;(^'?#?[07[1,'AYL"3PM;_ !;DM]/=<DE#
M';P1L0<\_-V[<Y^P?V./^"?'[&O[ /@^X\%_LC_ /1?!\%\5.J7]LKW%_J)7
M.#<WD[///@DD!W(7<=H&37LM% !7@W[<W_!,S]B+_@H]X2M?"G[7OP)TWQ,^
MG*PT?6DDDM-3TW=R1!=P,DJ(3@F,L8V(!96P*]YHH _+SPA_P:2_\$T/A_KD
M^K^!/BU\=]%@NAMN],TGXCQVT$Z\_*YCM%E88)'+]#7VK^Q1_P $Y?V,O^">
M?A*]\)_LE_!#3O#)U5UDUS6'FEN]2U5QDAKF\N&>:4 LS!"VQ2S;57)KVZB@
M#(\>^"M-^(O@_4/!.L:IJ]E:ZC!Y4UUH&MW.FWD8R#F*YM7CFA;C[R.IQD9Y
MKX[TS_@WG_X)?:+\93^T9I'P\^(-M\06O&NW\<P?&[Q2FL-<,NUI3>#4?.+E
M206+9(.#Q7VW10!F^#?"MAX'\*Z?X/TS4-3N[?3;1+>&YUG59[Z[E51@-+<7
M#O+,Y[N[,Q/))K ^!/P ^#W[,WP\3X4_ KP)9^&_#T>J7^HQZ78AO+6XO+N6
M[N'&XD_---(0,X4$*H"JH'8T4 ?+G[6__!'7]A[]NR_:X_:NT/Q[XQL_[3?4
M+?0M0^+OB%=+M+A@P,D%E'?+;P$!F4;$7:I*C XKRWX=?\&T/_!'WX0>-M.^
M)7PG^ /BCPQXBTB?SM*U[P_\6_$EG>6<F"N^*:*_5T."1E2."1WK[UHH Q/A
MSX#TKX8^"['P+HFKZW?VNGJZPW?B/7[K5+V0,[.?-NKN22:4@L0"[DA0%&
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
M4LH\M7,KJSM(6D8EV+'P%?\ @U:_X(=HP=/V2-1!!R"/B3K^0?\ P-K]#J*
M/A6\_P"#;[_@DSJ.EG0]0^#GC6>R92K6<WQE\3M$5]-AU#&.3V[U>_9Y_P"#
M=?\ X)&?LL?&OPY^T-\$?V9;O2O%GA/45OM!U&;QSK%TMO<!2 YBGNWC? 8\
M,I&>>U?;E% !6)\1? >E?$[P7?\ @76]7UNPM=0C5)KOPYK]UI=[&%=7S%=6
MDD<T)RH!*.I()!X)%;=% 'P5\0_^#9__ ((]_%WQKJ/Q)^*_P \4>)O$6KS^
M?JNO>(/BWXDO+R\DP!OEFEOV>1L #+$G  [5ZQ^R%_P2#_8G_8.OXKC]E+1O
M'GA*RCOS>R^'[7XM^(9=)N;@KL,DUA+>M;3,5 !+QDG:OH*^G:* /+_VP/V,
MOV:_V]/@G=_L\_M6?#*W\5>%+R\@O&L9;J:WDAN(6W1S13P.DL+C++N1E)1W
M0Y5V!^7/AQ_P;2?\$@/@[XVT_P")7PD^ GBKPOXBTF;S=+U[P]\7/$EE>6DF
M"-T4T-^KH<$C((X)'>OO.B@#Y)_:=_X(C_L!_MGW5O/^U/X>^(?CJ*RNY;G3
MM/\ $/QG\2SVEE+)G>T%N;_RH20=OR*/E 7H *\MTO\ X-;?^")NB:A#JVB_
MLKZO9W=NX>"YM?B=X@CDC8=U9;X$'W%?H110!\#^)_\ @V7_ .".GC=D;QI^
MSWXGU<QG,9U3XM>)+C:<8R/,OSCBO7_V$_\ @D!_P3]_X)K^+=>\<_L=?!*;
MPOJGB73H[#6+NX\3:CJ!FMXY/,5 +N>4)\W)*@$X&>E?3-% $.H64>I6$^G3
M2S(D\+1N]O,T<BA@02KJ0R-SPP((/(-?%_Q\_P"#?/\ X)A_M4>+XO'_ .TI
M\-_'?CS6H+46UMJ7BSXS>)K^6" $L(HS-J#>6F23M7 RQ.,DU]K44 ?%G[/_
M /P;^?\ !,O]E+Q3<>-OV9_A[X]\!:M>6WV>]O\ PE\9_$UA)<PYSY<IAU!?
M,3.#M;(! .,BOM"V@2UMH[6-W98T"JTLA=B ,9+'))]SR:?10 5\%_MD?\&U
M_P#P2;_;4\?7OQ6\9_ V]\(^)M4G:?5M7^'NKMIGVZ5CEI)+?:]L9&)+-((@
M[DDLS'FOO2B@#\W_ (6_\&LO_!,/P&MCIGCK5OBU\1M$TZ19+3POX[^(\TFF
M(RD%<V]FELK $#Y3E3C!!'%?H5X#\!>"/A=X-TSX=?#7PAIF@:!HUFEII&BZ
M-9);6MG @PL<448"HH'0  5K44 >1?M6?L1_!']L_P /R>#_ (Z:EXXET6XT
M^2QU#0_#?Q*UK1++4+=R=\=S!I]U#'<@@D$2ALCCIQ7R</\ @U:_X(=*0R_L
MCZB"#P1\2=?_ /DVOT.HH \^_9Y_9I\ ?LR>&IO"'PZ\2^-K^PD6)8X_&GQ"
MU;Q ULD:E42%]2N9VA3!QM0@'"Y' QXG^VS_ ,$2_P#@FC_P4-^*MM\;OVKO
MV<TU_P 4VVE1Z=_;%CXCU#39)K>-F:-919SQ+*5WL [@L%PN<  ?5M% 'R#^
MSW_P0T_X)]_LF:;J^C_LQZ'\2_ -IKRC^UK;PE\</%%A'<L"-LC+#J"CS %P
M)/OA20#@D'!\*?\ !O+_ ,$O/ GQ>;]H+P7\./'^E>/'NI+F3QII_P ;/%$.
MJR329\R1KI=1$K,^3N)8[LG.<U]N44 9_A/PW9^#O#&G^%-.OM0NH--LX[:&
MXU;4IKVZE5%"AI9YV:69R!DN[,S')))-7;BW@NX'M;J!)8I4*21R*&5U(P00
M>H([4^B@#RG]D']C#X#?L,?#S6/A-^SEX<FT;PWJWB[4/$*Z,9@T%A<7CJ\L
M-N H\N!2OR1G.P' .  /5J** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH ^:_VJ?\ @IG\+/@!\4;G]F?X9_#SQ9\5/BY%
MX9EUR;P%X!T^">32+$+\EYJ5S<SV]M8P,Q7'F3+(P9=B-N7/E7[+O_!;CP5X
MO\.?!#P_^V9^SQ\0?A)XH^-NC:&/!NO:CX<2Z\,>)M5U"WADB@L+RQN;LP>:
MTH:.*\\J549?,P0V/S\\=_MBZE_P1E_X+Q?M*W7[</AK58/AW^TSHB3>%/B%
M'9/<1VZ10[;3&T%FAA,LEK,B O&4A?:4P3^EO['?P%^'_P"U=_P29_94T?5=
M5MG7PMX1^&7BK2-2MHTN#;W^BKIMV44[L*S_ &>:U<YRBS2<$C% 'N?[6W[7
M/P/_ &)?@Q>?'/X^>(Y[+28+J*SL++3[)[J_U:_F)$%C9VT8+W%Q(00L:CH&
M9BJJS#X;^''_  =$_L>W_P"T=H_[.?[3'[-/QJ^!5UXFN(XO#VM?%GPC'IUK
M()&"1/<+YQDMT=B%\S:\2YR[JH)'Z&>)?A%\.?&/Q"\-_%3Q1X7AO]=\(17J
M^&KRY=V73VNEC2>6.,GRQ,4C$8E*^8B/*BLJS2!_SF_X.1_V;/!__!1'0_@A
M_P $[?A_?Z$_Q<\4_$N+5]-FN;B(7/A_PW!:W"ZIJ4@)#B#YH%$0YGE5 H8Q
MDJ ?I[7RIXC_ ."J'AOQ+\9_&'P,_8^_9C\?_';4_AO<"W^(VI^!+C2K73-#
MN\$FP%WJ=[;1W=ZH!W6\!<H<J[*P*UI_\%4?VB=6_8,_X);?%?XY>!=2FBU;
MP=\/WM/#=_/)ODAOYO+L;.=B?O,L\T3GU*^]>%?\&M/PJL?AS_P1A^''BAH#
M_:WCO5M<\2:_=.=TEW<2:E<6\<KL>68VUM;@D\_+0!];_L=?MH_ 7]NCX3-\
M7?@+X@NIK>SU.?2O$&B:O9-::IH&IP';/I]];/\ -;W$;<,IR""&4LK!C@_M
MB?\ !0+X,?L<ZSX2^&^NZ+KWC'XB_$*^>S^'_P ,/!-I%<ZSKLB+NED199(H
MH+>)<M)<3R1Q(H)+<8K\X/V9OB5?_LB_\';OQG_9A\,W+6_A+X^^$8-;GT=#
MB+^V(=)BU W>!P7+1:GD]_M1SG -0_\ !*SXG:C^W-_P<R?M5_M'^,93?V7P
MA\.77@;P/%,=T>FP0ZDEGYD.?N^9]DO9#Z_;)?7@ _0SX#_\%'O!/Q'_ &AS
M^QW\<_@[XK^#OQ:FT0ZQHW@SQQ-83)X@T]2WF7&FWMA<7%M=^7M/F1!UF0*Q
M,>U68?1M?D+_ ,'=&I>)/@!\%_V=_P!OSX6W7V+QM\*OCA!#H6H1\,J7-E/=
M/&Q'+1.^F1*R'AE8@C!-?K!\./'&D_$[X>:#\2=!#"Q\0Z+:ZG9!CDB*>%94
MS[[7% &U1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% 'B/[?/[(O[,G[
M</[,7B7X6_M(_"_2?%NCV^G7=S8FX&)]-O8HG GMYXR)+>96!!9&!(W*V5+*
M?PB_9D\:_MX_\&VW@[X#?M5/\19?B)^RE\?M!T'4O%'AR=64^'M0U#3HKR=(
M8RS"&Y1&F>.2,[+I+=EE565&7].M*\1?\%)_V'_'/Q]\'?$']C'4?BM\'/&O
MC/Q!XI\">+?AEXITQ]3T"'4-\LEG=Z?J%Q:/(@D+REX2Y1GD \P%,>"^$/V/
M?VH?^"RG[$7[(O[+_P 1/@5=_#+]G;X?>$/"&O\ C+Q/XHU>REU;QU+9Z+%;
MPVVFVEG-,;:TD665C/<M%(RRHPB!CV. ?L,ZV^I6)196,5Q%@20RLA*L.JLI
M!!P>""".HK\7_P#@X$_X($_ +PW^S[XQ_P""E_['&L^+/!OQ7^',*^)]5N?^
M$PO[T:M!;,KS7'G7<TD]O=0QJ94DCD"GR2I3+!U^\?\ @I3^T!_P55_9Z\1>
M ]=_X)Y_L3>%/C-X5EEN%^(>E7WB5-.U6W4&/R%M&EFCC16!DR^RX((&8U W
M'A/CA9_\%"/^"IOP$O/V5O$G[(VH?LY>"_&D"V7Q+\6>,?&.F:GJSZ26'VJQ
MTJST^293+.H,)N+IHECC9V$4C%0 #Q3]MWQ]\8/V^?\ @TSU;XO>-[=[CQ=K
M_P &]$\0>(9HX=INFT[4+.[NKK:HPHDCLY)B  H#G& *]]_X-PO$.F>)O^")
MWP$O]*E5HX?#M]:2;3TE@U2\AD!]]Z-7U?X:^ _PD\)_ BR_9FT;P19KX%T_
MPI'X:M_#DB%X/[*2V%L+9@>60PC8<\D$YZU\%?L#? S]LO\ X(L^&/&G[&_A
M3]E/Q?\ '7X42>*+S6_@MXD\$Z_H\-YIL5V0SZ1JL6IWMKY 24%Q=1>:C>;(
MQ521& #YJ_L"_P#BG_P>Q#4_#\;31?#?X=&ZUMHQD0QR>%C;@MZ#?JD ^K"G
M?\&YOAR[^$'_  6Q_;V^#'BB(Q:J/%=S>VJRC#36BZW>LLP!YVNEW;N#Z.M?
M;W_!+#_@F]\1OV?/C'\7?^"@7[7,ND3_ !Q^.VMFZUC3M#N3<V?A/1U8&VT:
M"X95-PR*L(EE "L8(@H(CWOS7[4W[!GQR_9]_P""H6B?\%@?V(OAN/&5]K/A
MA_"OQS^%]EJ=M8WWB#3=L0AU"PENGCMVNX3;VNZ&62,2+:QJK*S,: /GG_@]
M-UV-/^":OPZ\%6JM+?ZO\<M/>VMXU+/(D6DZJ&V@<D[I8A_P*OU-_9J\!ZG\
M+/V<_ 'PQUI=MYX<\$Z5I=V,YQ+;V<43?JAKXG^*_P"QC\>_^"LG[<'PE^/7
M[5/P&U'X6_!'X$:A-K7AGP+XMU*PN==\8Z^[1-'<7<-A/<6]I90F"/:C3/))
MAPR!9?D_0Z@ K)\=>#M+^(/A&_\ !>MW%W#::C 89Y+&Y:&95)!RCKRIXZBM
M:B@#PO\ X=[_  3_ .AM\=_^%E<_XU2_8.T.'7/@I>'4=1U"0V?BS4[2%I=1
MED;RXIRJY9V))P/7\J^@:\+_ .">_P#R1/5O^Q[UG_TI- 'KG_"#Z1_S\WO_
M (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L
M44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6
MU'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!
MC_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@
M^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P
M@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_
MS\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1
M_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_
M .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[
M_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U
M;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X
M%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44
M 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\
M(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\
M\(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D
M?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^
MD?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>
M_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S
M>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%
MM6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_
M^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%
M% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'
M_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_
M /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/
MI'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (
M/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\
MWO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S
M\WO_ (%M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^
M!;5L44 8_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\W
MO_@6U'_"#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6
MQ10!C_\ "#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M
M1_P@^D?\_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8
M_P#P@^D?\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"
M#Z1_S\WO_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\
M"#Z1_P _-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\
M_-[_ .!;5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?
M\_-[_P"!;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO
M_@6U;%% &/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _
M-[_X%M1_P@^D?\_-[_X%M6Q10!C_ /"#Z1_S\WO_ (%M1_P@^D?\_-[_ .!;
M5L44 8__  @^D?\ /S>_^!;4?\(/I'_/S>_^!;5L44 8_P#P@^D?\_-[_P"!
M;4?\(/I'_/S>_P#@6U;%% &/_P (/I'_ #\WO_@6U'_"#Z1_S\WO_@6U;%%
M&/\ \(/I'_/S>_\ @6U'_"#Z1_S\WO\ X%M6Q10!C_\ "#Z1_P _-[_X%M1_
MP@^D?\_-[_X%M6Q10 D:"*-8U)PJ@#)YI:** "BBB@ HHHH **** "BBB@ H
MHHH **** &7%O;W=N]I=P)+%*A26*10RNI&""#P01VJOH&@:%X5T*R\+^%]%
MM--TS3;2.UT[3K"V6&"U@C4)'%'&@"HBJ JJH    &!5NB@ HHHH **** "B
MBB@ HHHH **** "O"_\ @GO_ ,D3U;_L>]9_]*37NE>%_P#!/?\ Y(GJW_8]
MZS_Z4F@#W2BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ KPO\ X)[_ /)$]6_['O6?_2DU[I7A?_!/?_DB>K?]CWK/_I2:
M /=**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "O"_^">__)$]6_['O6?_ $I->Z5X7_P3W_Y(GJW_ &/>L_\ I2: /=**
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 **** "
MO"_^">__ "1/5O\ L>]9_P#2DU[I7A?_  3W_P"2)ZM_V/>L_P#I2: /=***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***XKXR
M?M%?!3]GR+2;CXR_$*RT"/6[TVNFO>!R)9 NYB=JG8@&,NV%!902"PSOA<+B
ML;75'#P<YO:,4VW97=DKMZ*_H<^*Q>%P-!U\34C""WE)J*5W97;LE=M+U.UH
MJCX:\4>&?&>C0^(_"'B&QU73[E=UO?:;=I/#*/570E3^!J]64X3IS<9*S6Z>
MYM"<*D%*#NGLULPHHHJ2@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 *\+_X)[_\ )$]6_P"Q[UG_ -*37NE>%_\ !/?_ )(GJW_8]ZS_
M .E)H ]THHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@"MK.L:5X>TBZU_7-0BM+*QMGN+RZG<+'#$BEG=B> H4$D^@K\7OVJ/C5\
M0_\ @HQ^UW;Z7\/K">YMKJ]&D>"-*8E1';;C^^<?P%_FED8_=48)P@KZJ_X+
M1_MD_P#".:#'^R7\/]5Q?:I$ESXPG@?F"U.&BM,CH9.'8<?($'(D-:'_  1B
M_8V_X0;P=)^U1X_TK;JWB"W:#PM#.GS6U@3\]Q@]&F(PI_YYKD$B0U_0? N$
MPWAYP?5XOQ\4Z]5<F&@_/[7_ &]:[?\ S[B[/WS^=^/,9B?$;C*CP=E\FL/1
M?/B9KR^S_P!NWLE_S\DKKW#X]U_X1_M]_P#!/O7Y/$=M8^)_"T"2 R:SH=P9
M]-N /N^:T9:%@>R2C/\ L\5[S\ _^"Y_Q#T PZ-^T7\.+;7[885]:\/[;6[
M[LT+?NI3[*8A7Z;RQ13Q-!/&KHZE71UR&!Z@CN*^9/VL?^"7?[.'QS\(ZSK/
M@7X=V/ASQDUE+)I6H:*?LL$UT%)19H5_=,K-@,^T-R3FHH>)G!_&#CA^+<MC
MSNR]M3T:Z7>JFDMW:<E_=+K^&'&7!JEB.$<SER*[]C5U3ZV6C@V]E[D7_>/7
MOV<OVFOA%^U3X$?X@_!_79;NT@NC;7MO=6S0SVDX56\N1#WVL"&4E3S@G!QW
M]?C]_P $I?VC-0_9H_:G/PQ\<226.D>+IQHVKV]SE/LFH(Y6WD8'[I$A:(YZ
M"4D_=K]@:_/O$C@U<%\1/#46Y4)I3IR>K<7NFU9-Q=UZ6?4_0_#3C1\;<.+%
M5DHUZ;<*D5HE);-)MM*2L_6ZZ!115+Q+XCT/P?X=O_%GB;4HK/3M,LY;J_NY
MCA(88U+NY]@H)_"O@H0E4DHQ5V]$NY^@3G"G!RD[):MOHB1=8TE]7?P^NI0&
M^CMEN'LQ*/-6)F95D*]=I96&>F5(JS7Y>_"/]L+XIO\ MX7W[6GB_3[E?"6N
M64NF'14F4W$.D@;K550D*)%=8Y&R1DO)TW5]/:Q_P5*^'D&?[ ^%VM7/]W[9
M=0P9_P"^?,Q7N\19+1R+%TZ$,1"JW"+ER--0F[\U-M=8M?,\#AS.ZV?82IB)
MX>=%*<HQYTTYP5G&HD[:23^6I]245\8:Q_P5/\639_L#X0Z=;?W3>:I)/C_O
ME(ZY76/^"E?[0^HY%A9>'=/!Z&VTV1B/^_DC#]*\ ^A/OFBOS>U7]MW]JG78
MY)'^)US#$OWOL6FV\03/'WDC!_,U]6?L'_M!W_QF^&T^@>+]6:Z\0:#-LNIY
MFS)<P.28Y3ZD?,A_W5)^]0![K1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
MRY8Q3;;V22NV_1'1DA068@ #DFOG/]H[_@J-^RE^SS]HT<>+_P#A*]>ARO\
M8WAAEGV..TL^?*CP>"-Q<?W#7YQ_$[]L']N/]O#Q,W@#2KW5[RWO"?+\'^#;
M.2.W\O//F+'EY4&1EIF91UXKVG]G'_@A[\2O%/D>(/VD_&<7AJR;#-H6BNES
M?,.ZO+S#"?=?-^@K]XH>%W"_"=*.)XQS",9;JC3=Y/YVYGV?+%)?SGX'7\5.
M*N+JTL+P;E\I1V=:JK17RNHI]5S2;?\ )T.4^*?_  6S_:M\6ZS-+\-M/T+P
MEIV2+:WCL5O9U'J\LX*L?I&H]JX,_MW?\%(_BP2FB_%7Q??F3@#PYHJ1?E]E
MA6OU5^!G[&/[-/[.NEK8?#'X4Z;!<%0)]5OH1<WDQ]6FDRP&>=JX4'H!7J"J
MJJ%50 !@ #I45/$_@'*Y>SRG(*<HQT4ZG+S?.\)O_P G;*I^%OB!FL?:YOQ!
M4C*6KA3YN5>EIPC]T$C\6O\ A5W_  5,^+G_ "$]!^,NHI+T.LW&H11D>WVA
ME7'TXJ]H?_!)?]OGQ=/]LU3X60V'FG+7&K^([3<?<A)7?\Q7[,45E/QZS^A%
MQP&"H4E_AD_RE%?@:P\ .'Z\E/'X[$5G_BBOSC)_B?E-X9_X(6_M0ZEME\3_
M !%\%:9&>J1WEU<2K^ @5?\ QZOL[]B[_@FU\&/V1+>/Q*X7Q-XQ9")?$E_:
MA1; C!2VB)80C'!;)=LGY@#M'T717QW$/BIQIQ-@Y83%5U&E+>,(J*?DVO>:
M\KV?5,^SX<\*.">&,9'%X7#N56.TIR<FO-)^ZGYVNNC05QWQ\^"7@W]HGX2:
MU\'_ !W;;K'6+4QK.J@O:S#YHYTS_&CA6'KC!X)%=C17P6&Q.(P>)AB*$G&<
M&I1:W33NFO1GZ!BL+A\;AIX>O%2A-.,D]FFK-/U1^)WP?^('Q5_X)G?MDS6O
MB>RE+:-?'3_$VGPDA-3TYRK;X\XR&79-&3CD+GN*_9SPUXX\)>+_  79?$3P
M]KUM<:)?Z>E]:ZD) (FMV3>)"3C:-O)SC'.<8KY%_P""P/[&7_"Z/A>/V@/
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
M=KF9_P"(["Q"C"@X^\0#0!]TT5':W5M?6L=[9SK+#-&'BD0Y#J1D$'N"*DH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **AU#4+#2;&;5-4O8K:VMXS)/<3R!$C0#)9F/  '
M<U\;?M4?\% [S7/M/P_^ ]]);67,=YXC4%99QT*P9Y1?]L_,>VWJ0#U?]IS]
MN7P=\$IG\(^#8+?7?$B,!<0>8?L]ESR)67DO_L Y'5B. <KX5_\ !2;X1>+?
M+T_XBZ7=^&;ML SG-S:D_P"^@WK^*8'=J\?_ &6OV$?$7Q4>#Q_\6TN=-T"0
MB6"S8E;K40><\\QQG^\?F8?=P"&KTCXJ?\$Q_!>L>;J/PC\6SZ/,<E=.U/,]
MN3V4./WB#W/F&@#Z6\-^*O#/C'2TUOPGX@LM3LY/N75A<K*A]LJ2,^U7Z_-W
MQ)\$?VI_V7M5?Q'9V&KZ='%UUKP_<M);LH_OM'T7VD SZ5[K^R#^W?K'C7Q'
M%\,_C=?6QN[PA-(UI8EB$LO00RA<*&;^%@!D\$9(H ^K:*** "BBB@ KR[]J
M;]IC0/V<_!BWAC2\UW45=-&TYCPS#&99,=(UR/=C@#N1Z;>7=KI]I+?WUPD,
M$$;232R-A40#)8D]  ,U^;_Q:\8>)OVO_P!I00>&D=TU&]33]!A<'$-JI.'8
M=AC?*WIEO2@";X*_!KXF?MC_ !7N]>\1:K<M:M<";Q#KTJYV ](HQTWD#"J.
M% Z8&*_0?P+X&\+_  V\*V?@OP;I4=GI]C%L@A3OZLQZLQ.26/)))JM\+OAG
MX6^$7@>Q\!^$+%8;6SB 9PN'GDP-\KGNS'DGZ < "N@H **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BF75U;65M)>WMPD,,*%Y997"JB@9+$G@ #G-5
M?#?B3P[XQ\.V'B[PCKUEJNDZK917FEZIIMTD]O>6\J!XYHI$)62-T965U)#
M@@D&@"[1110 4444 %%%% !1110 4444 %>%_P#!/?\ Y(GJW_8]ZS_Z4FO=
M*\+_ .">_P#R1/5O^Q[UG_TI- 'NE%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7Y^_\ !<G]H_\ LCPK
MH/[,/AZ_Q/JS+J_B)4;D6T;%;>)O9I5>0CJ/)0]Z^]]?UW2/"^A7OB;7[^.U
ML-.M)+J]NI3A888U+NY]@H)/TK\57;Q=_P %'OV\N//B7Q?XBP.[:?I40_+,
M=M']&<>K5^R>#&18?%Y]4SK&Z8?!1=1M[<UGR_\ @*4I^3BNY^+^->?XC"9!
M2R3!:XC'25-);\MUS?\ @3<8>:D^Q]V?\$7_ -G#_A5O[/5Q\9]?L-FK^.IQ
M+;%U^:/3HBRPCGIO8R2<?>4Q^E?9-5/#^@Z1X6T&R\,>'[".UL-.M([6QM8A
MA888U"(@]@H _"K=?G/$^>XCB;/\1F=;>K)M+M':,?\ MV*2^1^D\+9!A^&.
M'\/EE':E%)OO+>4O^WI-OYA114&I:GI^CV,NIZI=QP6\*[I99&P%%?.UJU+#
MTI5:LE&,4VVW9)+5MMZ));MGT$8RE))*[9/17A?Q"_: \0:WJ0L_!-Q+96D4
MGR2JH\V<^IST'HOY^@H:;^T/\2].(6ZO;:\"]1<VH'_H&VOYTQOTH_#3!9Q4
MP5JTZ<'9580BZ<GUM>:DTNCY==UI9OZJGP=F]2@JGNIO[+;NOPM^)]!T5X[I
MW[4UXJ[=6\(1N<??MKLIS]&4_P ZY;QQ^T!XQUV"4MJ<>D6*@EUMY-F%_P!J
M0\_E@>U=.:_2<\,,'EZK8&I4Q-66BI0ISC*_2[FHQ2\TY/LF31X0SBI5Y:B4
M(KJVFOPN_P CU'XS_&6#X<:'+;^';6#4M>E4K9V+S;8XF_YZ3,.509!P/F;H
M!U(\=\'_ +2G[2.A%8_%UGX6\01 Y<H9K*;Z!E5T_P#'*Y_X4M+\;?&#^&_
M227=O:L&U;6BA^RVBG_:/^LD/\*+UYRP )'N[_LS> G@6-=1U-75<&19T^8^
MI!3^5?,4>*/I*<8R>893E]+ X?[,*UN>:\^?WOGRTXM;7.N6#X2P'[JO5E4E
MU<=E]VGXLK^&?VG/!^MH+7Q/X?OM*=E(E:0)/!] 4.\_B@KY T[]B3X,_##]
MIC7OB]X&U&*^T>YE%SX7TL6[(NE/("91A@,[6)$?'RJ><L 1]7:Q^RS\C2>'
M_%WS!?DAO+7AC[NIX'_ 37+:;^S3\3]6U\:!XG2TT_2V&;G5M,U'S79,\QQJ
MR*RR$<;BN%Y.20 ;S'/?I:9CD6*X8>&I8?#X]1HUJU*<4_9.2YE*U:346KJ3
MC!2<'*"TDT_.Q&0>'&,Q^&S'$)U:F%DZE-23TG:R:]U7ULTF[<RC+>*9Y]X1
M^$'B#]IWQ6WARWN)K+P9I-R!KVJ1\&]F4Y^RPGN1_$W13ZD*#]<^%_"_A_P7
MX?M/"WA;2H;'3[&$16MK N%11_,GJ2>222<DT>&/#&@>#- M?"_A?2HK*PLH
MA';6T"X5%'\R3DDGDDDG)-7Z_?.!N#,HX!X:HY/EZ]V"O*76<W\4Y><G]R2B
MM$CRLQS"OF>+E7J[O9=ET2_KS"BBBOKCA"BBB@#G/BCX'A\>^$I]*55%U%^]
MLI#VD Z9]".#]<]J\B^!OCB7P3XO;0=79HK2^D$,ZR<>3,#A6/IS\I^N>U?0
M%>(?M&> ?[(UA/&FFP8M[YMMV%'"38^]_P " _,'UK^8/'OAS,N'\PP?B+D<
M?]IP32K)?;I-VO*VZ5W"?7DG>Z4#[#AK%4L32J95B7[E3X?*7]:KS7F>@^$?
MA7\+O@UJ7BWQWX:T6#39O%&J'5O$=T/^6LPB5"WL/E9]O]^1SU8UX[XKU_7O
MC-X]CAT^!B)9/)T^W)XBCZ[CZ<99C_0"G^+OB]KOBSP=8>$[@LH@0?;IMW-R
M5/R9]@,$^K<]J],^ _PS_P"$3T?_ (236+?&HWT8VJPY@B/(7V)X)_ =C7RG
M$_%N/^DKQ9A.'\JJ3CEM*-.KBJCOS/W5:FV^L%^[@M4Y\TK.--,Z<NRS"\%Y
M=.O*$54;DH15K:MMNR_F;<GZ]VSJ_!'A#3O _AV#0-. /EC=-+C!ED/WF/\
MG@ #M6'XV^"'@OQ@'NH;;^S[ULD7-H@ 8^K)T;]#[UV5%?U!C^".$LTR"GDN
M+P5.>%IQ480<=(I*RY7\46E]J+4O,^3IYCCJ.)>(A4:FW=OOZ]_38_/F?]J[
MX/>'O$^O>!?B-X@'AG7/#6H2V>JZ?JJ-]^-]A:%E!$R'[R[?F*D':!77>%O^
M"A__  3W^%P75+OXF7OB354Y!T_PW=^7"WHGGQQ@G_:/X8I_[<?_  2=U/\
M:G^/K?&/P/\ $32_#L>HZ;!'K<5W923/+<Q902J%(&#$(U()'*9[UQ7AO_@@
M=X9@VOXO_:4OKG/WH]-\-)!CV#//)GZXKZ7@+Z,WT4.%,PCQ!6Q.(E7DHRC0
MF_:0P\K+F4'[%N5I7Y)3E*45:SYKR?Y)GW'_ -(3%5:F78/!4)4H2DE6TBZD
M;^[)KVT;-QMS*,;7OI;0ZWQ1_P %T?V8;>.2U\/?"_QIJ>5*G[3;6MO&X/OY
M[MCZK70?L]_&#0_%$?ASXO\ AQ)(-.U +-Y,KAGAC;*21L1P67YE)]5KR3]J
M+_@C;\(?A%^S9XI^)'PO\7^*]5\1Z#IWV^.+4[FW,$D$3!IQLCA5LB$2,/F/
M*CUKA/\ @F=\1/[;^&6K?#B[GS-H6H">V4GI;SY. /:19"?]\5\U],+@'@[%
M>$>&\0."E/V^3XNFYRFW=4ZCBKV?15O8V=EIS=CK\)N,..L'XA_ZL\6\BCC*
M$I4U!*W/"[M==>13NKO[/<_5">"WO+=[:YA26*5"LD;J&5U(P00>""*^7_VD
M/^"=NA>*/M'B_P"!?DZ7J!R\V@R-MM9SU_='_EBQ_NGY.GW!7O\ \(_$7_"3
M_#[3K]Y-TL4/D3YZ[T^7)^H /XUTE>KD6;X7B#)<-F>'_AUZ<*D?2<5*WJKV
M?F?I6)H3PN(G1GO%M?<?G'\)OVAOCG^R1XJE\'ZK87/V.";_ (F'AC5PRJ,]
M6C)YC)'(9<JV02&XKW#XH?\ !37PQ'X.MQ\)/#5S)K=Y!F9M6B"Q:>W0C"G]
M\W<8(7!!)SE:]W^-'P ^&?QXT/\ LCQYH8>:-2+/4[?"7-J3_<?'3U4Y4]Q7
MA7PO_P""97A_0O&-QJOQ/\7+K.E6\^=.T^SC:$W*]<SG.5[C8A.>NX?=KU3
M\'^'OP>^/W[8_C6;Q->WMS=1O+MU#Q'JI(@@'78F!@D9XC08&1G:.:QOVK?"
M'PF^"GQCM/@)X&UFZO\ 6-,\/17GB&[N7&'GE=B$"#[A$9C;;S\LB\DY-?HQ
MXO\ $O@;X%?"S4_%U_;6^F:!X9TF6ZE@M8EC2.&)"VQ%&!DXP .I('>OPN\0
M?'/Q)XZ^/^H?'/Q7.3>:UK4MW?J&)"1R,08U_P!E$(51V"+Z5^F< >'^(XSP
M.85U?]S3?)_>JO6,?2R:?;F3/S#Q!\0\/P7CLOP[M^^J+VG]VDM)2];M-=^6
M2/V)_8'^*O\ PLCX!66E7USOO_#<G]FW()Y,2@&%OIY9"^YC->UU^?W_  3L
M^*Z>!OC>GA2\NPNG^*K;[*<M\OVA<O WOGYT'O+7Z U^9M-.S/T]--704444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !45_?66EV,VIZE=QP6]O$TL\\SA4C11EF8G@  $DU+7Q;^WY^U
M?_PD=Y<? OX=ZEG3[:7;XAOH'XN95/\ Q[J1_ I'S'NPQT4[@#B_VJ?VH/%_
M[2'C@?#[X>27A\."[6WTW3K92'U.;=A974<MEL;$/08.-V:]L_97_8%T;P']
MF\>_&BU@U'6AB2TT<XDM[$]07[2R#_OE3TW'#!O[!/[*'_""Z7#\:/B%IN-:
MOH<Z-93)S8P,/]8P/21P?JJG'5B!].4 %%%%  0",$9!ZBOA?]N?]DI_ACJL
MGQ>^&^G%?#]Y/G4;.!>--G8_>4#I$Q/'96.. 5%?=%5]6TG3-=TNXT76;"*Z
MM+N%HKFVG0,DJ,,,K ]00: /GK]AK]K9?BII,?PJ^(6I#_A)+"#_ $&[F;G4
MH%'<GK*H'/=@-W)#5]&U^=W[4G[.OBC]EKXC6WB[P3=W2:)<7@GT'4XG/F6<
MRG<(6;LRXRI/WE'J& ^L?V2_VI]"_: \(QV6L75O:^*+% FI6&X+]HP/]?$O
M=3CD#[AX/!4D ]@HHJKKFM:7X;T:[\0ZW>);V=C;//=3R'Y8XT4LS'Z &@#Y
M[_X*+?'/_A!/AO'\*]"O-NI^)5/VO8WS0V(.'^GF-\GNHDKF/^":7P,^R:?>
M_'?7[/\ >7(>RT$.O2,'$TP^K#RP?]E_6O#-9O?%O[9G[36VS$D;:YJ BM58
M9%C8Q]R.GR1@L?5L]VK]&/"GAC1O!7AFP\(^';006.FVB6]K$.R(H SZGC)/
M<DF@#0HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** /RFN/VD_&G_!
M4;_@IY^TO^QQXM^.?BWP3\,/V>/"?DZ?X&\"^)9]$O?&&HLK)=7M]>6C)=-:
MPR#RQ;Q2)&PEA9\Y8,G[.'[+/[0G[-/['7[''[5_[&_[5?Q,L-)UJ/X76/Q=
M^&/B+Q1<>(-#U+1]8;3+2[ELK?43.VFR(]VK8MFCC2+=M5 @KF?^"T__  18
M_:GTO]H_5/\ @KI_P25^),OA[XIKI4G_  L#P<+F.*/7[=;<12RP>;^Y=GAC
M42VLPV2[!(I$HP^]_P &[W_!>#]G#]IWX,_#W_@GM\5=-;X??%;P1X*TS0=
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
MM_PHTKX6? ;X1Z)\-- UZU@TKPWI$=LL\K! PC7YYG/0%FW.Q]6)K^@N*?\
MC ?"["Y#'W<3C7[2KW4=&T^WV(=GRS[G\\<*?\;!\5,5G\O>PN"7LZ/9RU2D
MN_VY]US0['=T5\Y?$/\ X*6_!OPS-+8^"-!U/Q%-&Q"S*!;6SX]'?+_^.5YC
M%^V_^TM\:M8?1O %KI?AJR4YN+VWM//DA0^KRY4L>P55/TQD?S9F^;Y9D.6U
M<PS"JJ5&FKRE)V27ZM[)+5NR2;9_1E"A6Q-54J4;R>R1]D>+/%^A>"M);6->
MO!'&.(XQR\K?W5'<_P N^*^=_BI\8+[QC,U[KFHPZ=I<#_N8)K@)%'DX#.S$
M M[GUXK$C7Q?KD06:]U/7[Z.+_67=V&DD/7&Z1@B GME5&>,5Q?B']ECX_\
MQ>U!;CQ1XB\.:%8QMF"PN-5:3RQZXA1P[>Y(]L5_).(Q_&GTC\REA,O<L%D-
M.5IS>DZ[3V\WU4?@AO-RDHQ/MX4\OX4HJ=6U3$M:+I'^N^[Z65V>E^"OVC?V
M3OA4%U35_'AUK6<=-.TR>2.V]D9D56/^UGZ8[W-?_P""A_[+5_D:AX,US4L]
MVT2W;/\ W\E%<'X<_P""<'A0 2^+?CW$3CYH-.TK&/\ @;OS_P!\UTMG_P $
M[?V<D_Y"'Q6\02^ODSV\?\X6K^G>'N"N%^%\AAD^ PL50CNFE+F?64V[\TGU
M;]%9))?(8K,,9C,2Z]6;YONMY+LCEO''[:G[.6H:5='PC\%M774#"WV1[FX6
M")9,<%ECD;*@\X R<8R,Y'F'P?\ A=\6OVO?'?\ 9LVJ31Z5;2!]3OV4BWLH
MR>%1!PTA'"KU.,DX!-?1]E^P/^R;:X\_Q%K=S_UVU5!G_OB):]C^&^C?"7X3
M>$[?P7X$-K96%OD[0Q+R.>KNQY9CW)] .@ J\!P5P=E>8_7\%EU"E6_GA2A&
M7WJ*>O7OU%5S#'UJ7LJE63CV<FT:/PR^&7@[X1>#K7P/X'TM;6RM5Y)Y>9S]
MZ21OXG/<_0#   WZS?\ A,?#'_0:@_[ZH_X3'PQ_T&H/^^J^G.,TJ*S?^$Q\
M,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC_A,?#'_0:@_[
MZH TJ*S?^$Q\,?\ 0:@_[ZH_X3'PQ_T&H/\ OJ@#2HK-_P"$Q\,?]!J#_OJC
M_A,?#'_0:@_[ZH TJH>)O#UAXJT&Y\/ZDF8KF(J2!RIZAA[@X/X4S_A,?#'_
M $&H/^^J/^$Q\,?]!J#_ +ZKFQF$PV882IA<3!3IU(N,HO9QDK-/R:=F73G.
ME-3@[-:I^:/)OA+\%K]O&-S=^++/%MI%SL5&7Y;B4<J1ZJ!AO?('K7M=9O\
MPF/AC_H-0?\ ?5'_  F/AC_H-0?]]5\5X=^'60^&N32R_+4WSSE.4Y?%*[?*
MF^T(VBEMN[7DST,US7$YMB%5K=%9);+O][U_X8TJ*S?^$Q\,?]!J#_OJC_A,
M?#'_ $&H/^^J^^/,-*BLW_A,?#'_ $&H/^^J/^$Q\,?]!J#_ +ZH N:A866J
MV$^EZE:I/;W,+13PR+E9$8$,I'<$$BOQU^$^@WO[(?\ P4$UGX)ZK*Z63ZG<
M:/&\IYE@E(ELY#[N/(_[^&OU^_X3'PQ_T&H/^^J_-C_@MA\/;70/BOX._:5\
M#WB"2^A%AJ$T _U=W;-YMO(?5F0LH]K<5]YP?E6#XTRC-^!\:TJ6:X:K13>T
M:O))TY^L'>2_O*)^4^*2KY/3R_BK"J]3+J\*CMNZ<I)3CZ/W4_*Y]L_LO>(R
MLVH^%)I.&474"D]QA7_]D_*O8*^2?V;?BK8:N/"_Q0LY EIJEK#-, <B-)4
M=3_NEC^*U]2?\)CX8_Z#4'_?5?Q[]&W-\94X+KY!CTXXG+JTZ,XO>*YFTGZ2
MYX?]N'[WQ/&A6Q=/'8=\U.O",XM;.Z6J]59_,TJ*S?\ A,?#'_0:@_[ZJ.Z\
M=>#[*VDO+SQ#;10PH7EED?"HH&223T %?T.DV[(^9;25V?%'_!<']HS_ (1+
MX6Z-^SAH%_MO?%,PO];5&Y6PA?\ =HP]))P"/^O=AWKY[^$?_!/&Y\>_\$WO
M%'[0\FE2-XHDO?[6\-Q[3N;3+,2).H'7][NG<#'S&WAQ]ZO.OC'XP\0_\%!?
MVZ99-&NW2V\2^((].T5Y5.+/3(SL64KV"Q*TSCU+^M?L=X.B^&G@/P5IGP]\
M-W-M#I.DZ;%865J>0L$:!%4\<_*.?6OZ5SO.,1X3<(97E.$TQ522KUEY)IN#
M\I-*%^L8/N?S)D>3X?Q<XQS7-L7KA:<94*+[-II3CYQ3=2W24UV/R$_9Z\>Z
MA<>&--UFPO6CU+1+E%293\R/$0T;C\-O/J#7[!?"?X@6'Q4^&VB_$+3=HCU6
MP29XU.1')C$D?_ 7#+_P&OR)^+7PPM?V7?VR/$WPDTQQ_P (_J\OVOPZX/RF
MVDS)"H)Z[/WD)/=DK[B_X)I_&BPB\,:S\)?$6IK$UC-]OTOS&ZQ/A94'LK[6
M^LIK\C\1<LPV!XDEB<'_ +OBHQKT_P##4U:\N67-&W2R/U_PXS3%8_AF&&QG
M^\864J%5?WJ>B?GS1Y97ZW9]:T5F_P#"8^&/^@U!_P!]4?\ "8^&/^@U!_WU
M7PI]Z:5%9O\ PF/AC_H-0?\ ?5'_  F/AC_H-0?]]4 :5%9O_"8^&/\ H-0?
M]]4?\)CX8_Z#4'_?5 &E16;_ ,)CX8_Z#4'_ 'U1_P )CX8_Z#4'_?5 &E16
M;_PF/AC_ *#4'_?5'_"8^&/^@U!_WU0!I45F_P#"8^&/^@U!_P!]4?\ "8^&
M/^@U!_WU0!I45F_\)CX8_P"@U!_WU1_PF/AC_H-0?]]4 :5%9O\ PF/AC_H-
M0?\ ?5'_  F/AC_H-0?]]4 :5%9O_"8^&/\ H-0?]]4?\)CX8_Z#4'_?5 &E
M16;_ ,)CX8_Z#4'_ 'U1_P )CX8_Z#4'_?5 &E16;_PF/AC_ *#4'_?5'_"8
M^&/^@U!_WU0!I45F_P#"8^&/^@U!_P!]4?\ "8^&/^@U!_WU0!I45F_\)CX8
M_P"@U!_WU1_PF/AC_H-0?]]4 :5%9O\ PF/AC_H-0?\ ?5>&?M:_MMZ%\)M-
ME\%_#.]@O_$]Q'AY@-T6FJ1]]L\-)W5.@ZMQ@, 1?MT_M7K\*="?X6^ =2 \
M2:E!_I=S"_S:;;L.N1TE<?=[J/FX^7/DO[!O[*)^(>KQ?&3XAZ;NT.PGSI5I
M.O&H7"G[Y!ZQ(1]&88Z*P/%?LX_L_:W^T7XVD\9?$;7IH-#%V9=6U.ZE)FOY
M,Y:.,GDL?XGZ+GN<"OOW1M9\!^'M)MM"T.[M+6SLX%AM;:$;4BC4850.P %
M&Y16;_PF/AC_ *#4'_?5'_"8^&/^@U!_WU0!I45F_P#"8^&/^@U!_P!]4?\
M"8^&/^@U!_WU0!I45F_\)CX8_P"@U!_WU1_PF/AC_H-0?]]4 5_B%X \+?%#
MP?>^!_&6G+=6%_%LE0\,AZJZG^%E."#V(KX5^,?["OQO^#-\_B?P-YVO:;;2
M>9!?Z.&6[MP#D,\0^8$?WD+ 8R<5]Y?\)CX8_P"@U!_WU1_PF/AC_H-0?]]4
M ?#_ ,%?^"B?Q4^'[Q:%\3[4^)M.C.PS3-Y=]"!Q_K,8DQZ.-Q_O"NF_;)_;
M3\%?$_X2V/@GX3:I<-_;,N_7%G@:*2WBC((@;/!+-@DJ2,)C)W5[9\:OV>?V
M</C@DM[X@@@L=6<'&LZ61%.3ZOQME_X$"<="*^9=0_8'\4Z5\2M,T:'QAI^I
M^&KJ^47FL6\@BEMH!RQ>)CD,5! VEADC)&: /7/^";?P,_X1CP;=?&C7K/;?
M:XI@TH.O,=FK?,_MYCK_ -\QJ1PU?3U8FD:WX'T'2K;0]'O[6WM+.W2"U@C.
M%CC10JJ/8  59_X3'PQ_T&H/^^J -*BLW_A,?#'_ $&H/^^J/^$Q\,?]!J#_
M +ZH TJ*1'61!(C95AD$=Q2T %%%% !1110 4444 %%%% !1110 4444 ?/W
MPB_;$\"_M5^ /CEX5T*6TMM>^%GB[Q%X0\2:1%>B26$VPD^SW#*0&59X"C@X
MV[A(H9C&U?C;_P %B/V8/AQK?_!,;_@GU\</@!H4=C^TYK6C> -!\"W.@*(]
M4UF :#!(&;9\TGV:Y6R*3-GRO.VY DX_6[XZ?\$>OV(OB]\1/$?Q^\-?#S5O
M GQ,\1VEPFH^./AOXUU7PW=W\LJG<UW_ &=<11W09L%_-1R_.<Y.:W_!/S_@
MDO\ LY_L8>$? /C+Q#X6/BOXN^&/A]IGAZ^\?^(O$6H:U+:&"SC@FATLZA(X
MTZT+!U2&W2$"-@I7'% 'H?[<7[=_P(_X)\? \?%_X_\ BJSAGO+B/3O#>AB_
M@MKC7M4DP([6 SND: L<O+(RQ0INDD=44FOGG]DG]I']@CP/XMUS]K_]JW_@
MHU^S]J_QG\9Z<EMJ]W9?%S2'T_PEHZ,9(= TQGN 5MHF.^68A7NI]TSA1Y<<
M?L7[9/\ P20_X)[_ /!03QUIOQ(_;"^ !\:ZOH^F?V?I4UWXLU:VBM+?>TA6
M."VNXXE+,Q+.$W-A0Q(5<>/_ /$,O_P0Y_Z,1T__ ,+;7_\ Y/H [?\ :%N/
M@O\ \%IO^":WQI^$W[-GBN/6]$\2:?J?ASPQXLVA=-U35;6..6&YMI<GSK6.
M^5(3+@!GMYMFY0KMY'_P:Z_%>?Q1_P $H] ^ GBVRFT[QG\&/%>M^#O&>A7R
M>7=:?=1W\US''+&?F3$5RB<\%HG'52!]P_L\_L\_!G]E'X-:%^SY^SWX$MO#
M/@[PU;O!HFB6LTLB6R/*\K_/*SNY:21W+,Q)+$D\UY=\8O\ @EY^Q_\ &CXK
M:Q\;M2\,>*/#'BCQ191V?C+5?AU\0M8\,OXFMD&U8M172[J!;P!25#R N%.T
M,!Q0!\ _\$^_A%>_MJ?\'+?[2/\ P4>T:'[3\//A1;)X'\-:U'\T-[KD>GVM
MA<I#)]V58TBO6<KG'VF#LPRG["OPLN_^"=/_  <W_'7X/^,8#8^&OVF_"EYX
MP^'.HR#;%J-^+M;VZM$/3S(FDU+*#D)'&V )%K]5_@A\"O@[^S7\,=+^#'P$
M^&^D^$_"VBPF/3=$T6T6&"($EF; Y=V8EF=B6=B68DDFN=_:A_8X_9T_;(\,
MZ9X9_:!^'PU5M U-=2\-:Q8ZC<:?JFAWRXVW5E?6DD=Q:2C ^:*1<X ;(XH
M_-C_ (.C? GB3]M[QC^S!_P2N^$LANO%7Q$^)TGB#4H;8;VTC2;2VDMI=1G4
M?<B1+RZ<,?O?9I ,D8K]:/#/AW2/"'AS3_"?A^T$%AI=C%:64 /$<,:!$7\%
M4"O*OV<OV#OV:/V7/%^M?$[X;^$=2O\ QIXC@2#7_'OC+Q+?:]KU_ A!2W>_
MU&::=8%PN(498QM4[<C->Q4 %17UA8ZI:2:?J=E%<6\J[98)XPZ./0J>"*EH
MH PO^%7?#/\ Z)WH7_@HA_\ B:\A_P"">VFZ<OP2U55T^  >.=8  B' %P0!
MT[  ?A7O=>%_\$]_^2)ZM_V/>L_^E)H ]N_L[3_^?&'_ +]"C^SM/_Y\8?\
MOT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_ +]"C^SM
M/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_
M +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L
M[3_^?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT
M*FHH A_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_
M .?&'_OT*FHH A_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[
M]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3
M_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*F
MHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_ +]"C^SM/_Y\
M8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^?&'_ +]"
MC^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH A_L[3_^
M?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&'_OT*FHH
M A_L[3_^?&'_ +]"C^SM/_Y\8?\ OT*FHH A_L[3_P#GQA_[]"C^SM/_ .?&
M'_OT*FHH A_L[3_^?&'_ +]"OF__ (*E?M#:?^SI^RUJ=OHK0P^(?%V[1]%V
M* \:NI^T3CN-D6X!AT>2.OI:OQN_X*A?M"7W[3_[6ESX4\(W)NM&\*R'1-#C
MC<;)IP_^D3@]/FE&W=G!2)#7Z7X4\,0XCXKA/$)?5\.O:U&]K1^%-O2SE:]_
MLJ78_,?%KBBIPWPG4AAF_K&(?LJ:6]Y?$TEK=1O:WVG'N>D?\$6_@'H]WXN\
M0_M8_$006^A^$;5[+2[J]PL0NY$S-+D\?NX6V_\ ;P,<BO2/VL?VM]3^.NL'
MX>_#.SEMO#:W CC2&$K/JLF<*S #(3.-L?4G!;G 7S.V\7ZT?A9X8_9B^&-G
M.NA:4B(;2TC)FUK49&W2W,@'+;I&.R/G8NT<D9KZH^ G[-?AW]ESPM'\5_BC
M:P7WC&Y0C2].)#1V#$=!_>< _,XX7[J]<M\QXM^(&7X_-L;G^.JJ&%HIJ,GL
MJ<-%IO>3NU%:N4K*[L>WX9<'5.&>&<-E<(WK2]Z=NM26K_\  5:-^T;G$> _
MV*_!7@7P/!XN_:$FO)=:OEWV'A:QNA$(T[>>X!;/KM(V],D].Q^%_P *!KU\
M/#7@?0H-/LT;?,T2'RX%/=B268\8&26..3U-;?AGPSXN^-/BV6ZNKMFRP:^O
M9!\L*]@!^@4>G89->_>%/">B>#-'CT70K41Q)R[GEI&[LQ[D_P#UAQ7\)X/!
M<3?23SQ8['J>%R"A-\E.]I5Y)VN[;OI*6L::O"%Y<TC]PJ5,'PEA_9T[3Q,E
MJ^D?ZZ+KN]+(K>$/ 'AOP7HZ:3IE@CXYFGE0%Y6_O$_TZ"M7^SM/_P"?&'_O
MT*FHK^NLMRW 9/@*>"P5)4Z5-*,8Q5DDNB7]7>KU/AJM6K7JNI4=Y/5MD/\
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
M&4T >^?MA?MG>'OAS:S?#GX12V=WK\T>V\U2%$>+3E(Z*>0\N/P7OD\5XO\
MLG_LA>(_V@]:_P"%@?$&2Z@\,K<%Y[F1SY^J2[LLB,>=N<[I/7('.2O8? K_
M ()O>+Y/%\>J?'1K6#2+7$ATZQO/,DO'SQ&S+]Q/4@Y/08SD?9FFZ;I^CZ?#
MI.DV,5M:VT2Q6]O!&$2-%& JJ.  .,"@"KHGA3PSX;TFWT'0= M+2SM(A';6
MT$"JL:CH ,5:_L[3_P#GQA_[]"IJ* (?[.T__GQA_P"_0H_L[3_^?&'_ +]"
MIJ* (?[.T_\ Y\8?^_0H_L[3_P#GQA_[]"IJ* (?[.T__GQA_P"_0H_L[3_^
M?&'_ +]"IJ* (?[.T_\ Y\8?^_0H_L[3_P#GQA_[]"IJ* (?[.T__GQA_P"_
M0H_L[3_^?&'_ +]"IJ* (?[.T_\ Y\8?^_0H_L[3_P#GQA_[]"IJ* (?[.T_
M_GQA_P"_0H_L[3_^?&'_ +]"IJ*    8 P!T HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *\+_X)[_\ )$]6
M_P"Q[UG_ -*37NE>%_\ !/?_ )(GJW_8]ZS_ .E)H ]THHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBJ^JZKI>A:;/K.MZE;V=G:Q&2YNK
MJ98XXD R69F("@#J3Q347)I)7;%*48IMNR18J(WMF+P:<;N+[08_,$'F#>4S
MC=MZXSQFOB_]I/\ X+#_  _\.:PWPT_97T>+QEX@ED,(UNYW)I=LW=EQA[C&
M"25VICD.W2OG^X^-WQCU3Q]:?%C7?B)>W/B>T96AU5=J>41GY(XU&Q(OF8>6
M!M(9@P;<V?>S3AO-,CPU*KF,/9.KK&$OC<?YG'>,;Z+FLWK9-)L\#*N)LJSW
M$UJ673]K&EI*<?X:E_(I;2E;5\MTM+M-I'ZJT5XC^RM^V9X5^/-G%X7\3&#2
MO%<<?[RSW8BO<#EX"3U[F,G([;@"1[=7@'T 4444 >&?\%$OVE5_9@_9?UOQ
M=I=\(=>U9?[*\-A6PRW4RL#*/^N<8>3/3**#UK\G?V=/ S%I?'VIQDD[HK#=
MU/9Y/YJ/^!5[?_P5-^-EY^T]^US#\%O"FH%]!\#[[%I(VRANR0;R;ZJ56$9[
MQ''WJ[3]C?\ 9\LOBS\1;+P_<6HA\-:! MUK4A.$6W3[L1/JY&#WV[V[5^RY
MGBX\!>'-/*X/EQ68+VM9[.%'[$7VYE>]]DYI[H_%<MPKX]\1ZF;5%S83+FZ5
M'M.MO.:[\KMKU:@ULSZ2_8<^!GAOX1?#'_AH#XC:>BZKJ,)ETUITR]I:,,)L
M!Z22YSGKM91QELWM6U+Q1\;/':QV\)WS-LMH<_);0@]2?0=2>Y_ 5;^*GQ N
MOB)KL/A_PW W]FVT@BT^UA3'G-]T-M'Y*.P^IKUGX1_#.V^'VB;[I%?4KI0;
MN4<[/2-3Z#OZG\,?YK9_C\P^D/QO_8&63<,DP<E*O5C_ ,OI+91>SOJJ?1+F
MJN_NQ7]2X:E2X6R[ZS65\147NI_97G^OW=S7\$^#M*\#:!%H6EID+\TTQ'S2
MR'JQ_P .PP*UZ**_K?+<NP.48"E@L%35.E3BHQBM$HI627]:]3XBK5J5ZKJ5
M'>3U;"BBBNTS"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** /SM_X+N? [S;/PA^T5I5G\T3/H.LR*O\)W36S''8'[0"
M3_>45\]>!O\ @IK\0?!/P=\*?",?#'0K\^&H?LSZY>33?:KFU$C%(1L9538A
M6,%@^ @..M?K)^T!\"? W[2?PHU/X._$470TO53$99;&14GB:.59%>-F5@K9
M0#.#P2.]>?\ PF_X)N?L8?![RKC0/@CINI7D6#]O\1[M0D+#HP6<M&A]T5:_
M7:7$WAQQ#X:PX9XTRWZ_"G*7+3DERV:?*^;FBXN/-))QNXVBU9I-?A^<\!<<
M8?Q JY[POC8X15H1YY=>9-72CRM-/EC)W:NW);-I_.WPG^+/@#]J?X:7ESIN
MFWZV<\7V;6+"Y22(QEARHE3 8<<,C9Z9VGBN5^"/[$/P]^!WQ?B^+NA>(+^\
MN-.G:;0;.\1"EDY4KO8X_>LN24) VG!Y(#5^CO\ 8^D?V7_8@TNW%GY?EBT$
M*B,)_=VXQCVK T'X-_#WP[J<FK66A+)*S[HA<L9%A]D!X'U.3[U_"^*\+_$O
M@G'XW+?##/:N7Y/C[JK0G5<Y4XO?DDH+F;7NJ<?95>6T)SFKR/WR-'AW/:6$
MQ?%6$IXO'86SA54.1.2V;CS.ROKRMRAS>]&,79+Q[PQ\*/B'\2+O^V+[S8H9
MCN?4-19LN/50?F?^7O6C\5_@G!X#\.6NMZ/>3W2H_EZ@\H P3]U@!]T9XZGD
MBO>*JZUI%CK^DW&BZE%O@N8FCD7V(ZCW'4>]>?/Z,7!U'A3%X6,Y5L?5B[8B
MHW=5/B344[*+DK2OS2<6US:GT:XPQ\L;";2C2B_A7;;?O;;97Z'#_L]>.?\
MA(O"Y\.7TV;O2P%7<>7A/W3^'W?H%]:^#/\ @NY\(-.T3XA>#?C;I5D$EUVQ
MN--U:1!@-);%&A9O5BDKKGTB [5]1Z->ZK\'/B9MNPQ^QSF*Y51CSH&[CZKA
MA[XKF/\ @LSX&M_'W[%#>--. F_X1S7K'4XYH^<PREK8X]C]H1O^ CTK]C^A
M+XEXO%9IA<GS.3CC,%/ZK5C+XG"5X4V^[C)*,M_>@F_B1^7?2#X9I8W@O&U:
M,;Q<?;0?9P:E*WK&_P I-'2?\$YM1\)?M#?L)^"H_B#H%AK<FDVLVD7,>IVJ
M3^7]FE:.(#>#@^2(CGJ,U8^-W_!._P"$_B3PU?ZG\)M,FT;7$A:2RMH[QFM9
MY!SL99-Q3=R 5*A20<$ BO%?^"#?Q"_M'X6>.OA;-/EM)UVWU.!&/.VYA,;8
M]@;4?BWO7WO7[;XC98LHXXQ^&2LO:.27E/WU]RD>5X;9H\XX%R_$MW?LU%OS
MA[C^;<;GY[_L;_M$:E^SM\2I_!'CIIK;0=2N_L^K07 (.GW*G8)BI^[@C:X_
MNC/)0"OT'CDCFC66)PRL 593D$'H0:^1O^"B'[,?G1R?'_P/I_SH%7Q-:PKU
M7@+= #TX5_;:W9C6K_P3U_:<_P"$HTE/@5XWU#.HZ?"3H%Q*_-Q;J.8,GJT8
MY7U08_@Y^*/MSZD9E12[L  ,DD\ 5^='[4?Q4UG]I_\ : 31_!JO=V4-TNE>
M&[>,\39?:91_UT?G/]T+GI7T_P#M^_';_A5GPG;P9H=[LUKQ.KV\91OF@M<8
MFD]B00@_WB1]VO+?^":OP)_M'5;OX[^(;+,-D7L]!$B_>F(Q+,/]U3L!Z99^
MZT ?4'P1^%.D?!;X8Z5\/-(VO]B@S=W"KC[1<-S)(?JQ.,]  .U>$_M9?L$Z
M?XS^T_$7X)V,-IJYS)?:&F$AO3U+1=HY#Z<*W^R<EOJ&B@#\^OV7_P!K;QQ^
MSMXD3X>>/HKJ;PX+OR;W3[Q&$^EMNP[Q@\K@Y+1G@\XP22?T!M+NUO[2*^L;
MA)H9HUDAEC8,KJ1D,".H(.<U\I_\%(?V?!J>EQ?'KPM8#[19JMOXACB7F2'.
M(YSCJ5)V,?[I7LIK3_X)S?M!?\)=X3D^"GB>^W:CHD7F:0\C<S6><&/W,9(
M_P!AE X4T ?3M%%% !1110 45YQ\?_VH/AI^SYI1?Q)??;-6ECW66AVC@SR^
MC-VC3/\ $WH<!B,5P/[(O[:Y^.WB34/!'CRRL]-U=Y7GT6.V)$<\ &3#\Q),
MB ;L_P 0R<#:: /H6BBB@ HJ*_O[+2[&;4]2NHX+>VB:6XGE<*L:*,LQ)Z
M$DU^=_QZ_:'^)'[0OQMW?#&^UB.UCD-GX<T_2Y9$EE0')DVH02[D;CZ  ?PY
MH _16BOS@'C;]N'P#_Q^:I\1;-4Z#48;MT ]O-!&*+C]MW]JB+3;GP_J'Q)G
MVS0M$YDTVW2:,,,$JZQAU;T.<CJ* /<?VXOVS/[ 2[^"WPFU7_3V!BU[5[=_
M^/8=&MXF'_+3LS#[O0?-G;R?[$'[&A\:S6OQC^*VE_\ $GC82:-I5PG_ !_L
M.DT@/_+('HO\9Y/R_>S?V*OV.[CXL:A%\5?B=8N/#D$V^RLY@0=4D!Y)S_RQ
M!ZG^(\=,U]U0PPV\*6]O$L<:*%1$7 4#@  =!0 X * JC '0"BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *\+_X)[_\
MD3U;_L>]9_\ 2DU[I7A?_!/?_DB>K?\ 8]ZS_P"E)H ]THHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** .0^//QI\'_L\_"36_C!XYN-EAHUF9
M?)5@'N93\L<"9_C=RJCTSD\ FOR!^*'[0_[9W_!1[XA#P5IMOJ>JP2S&2Q\'
M^'XREE:)NX>7D [<C,TS<9ZJ#BO3/^"P'[8,OQM^+<?[/?@#46F\.>$+PI?-
M;MN6_P!5Y1SQ]X1 F)?]HR'D%:]"\&^&8_V#/V8(_A)8A8OB9\0+5+[QI=(?
MWFDV;*?*LLC[KA68'N"\A[H:_HG(</EWA5P;3S['4(U,PQ+_ ',)KX(VO?NM
M'S2:L_>C"ZU9_..?XG,?%CC2ID& KRIY=AE^^G!_'*]K=GJN6*=U[LIV>B/G
MSX=? J7X5ZI<:9?WEKJ>MO+]GDDTQC+$C9P8HFQ^\^;@L!AB/ER,,WZ+_ []
M@_P%8_ BY\)?%O0UN-:\0QI/?W,9 GTQP#Y2P/@['3<22,AB65MR<'SW_@GC
M^S'_ &Q?1_'SQQI^;6UD(\-VTR<2R@X:Y(/9#D+_ +0)XVC/V;7XAG7$.:Y_
MG$\SQE2]63O?9*VR2Z)+1+[[ML_<\DX=RGA[)X99@J=J45:V[;>[;ZMO5O[K
M))'Y9?'+X1?$#]ESXGP^#_&$\B">4S>%_$MH#%#J*(<@H0?W5PG&Z/.0<,I9
M2#7U!^RC^W]8ZU';_#[X]:I%:WBJ$LO$DS!(IP.BW!Z(W_33[I_BP>6^@/C;
M\$OAW^T)\.[WX8_$[1!>:=> ,CH=LUK,,[)X7ZQR*3D,/<$$$@_F'\:_@3\>
M_P!EWXFCX6^*O ^M>+M.NRS^&_$N@:8\[7T .,21H#MF7(#KG/((W ACZ.%R
M:'$E)RRY)8B*O*E=+F2WG2NTO\5.]UO"\;QAYN+SJ?#551S)MX>3M&K9OE;V
MA5LFU_=J6L]IVE:4_P!8;75])OM.76++4[>:T=-Z744ZM&R^H8'!'O7AO[8?
M[<OPA^ /P4\1Z[X:^*/AV_\ %D5@T.A:)::O!-<M=2'8CF%6+;$+;VR ,(1G
M)%?"/B7X'?$2\\(_VGXY^#'B6UTIP&=M:\.W-NL9]3YB+L/OQ7ET_P"SQX'.
MKP:E927,44<P>6S9]\<@!SMR?F /U/%=?#.&X/H8U2S^K5@Z;NZ:IIQERZ\C
MES<RYMO@2UW6YR<48KC*O@7'A^E2FJBLJCJ-2CS:<ZCR<KY=_C;T^%[$_P "
MO!.HV>FMXFU9)KG5]=D\QF?+RLK'*CU+,3N/<Y'<5^CWA/X;P_LU_L[67@21
M%7Q#XE<7.O2+]Y> 3%GT0%4]"3(1UKR7_@G=\ !X]\>O\5_$5B&TCPW*/L*N
MORSWV,KCVC!#G_:*>]>P_$76[SXG?$UK?2CYB/.MGIXSP5#8W?0DEOH:_FKZ
M5/B;F3X=Q#@W]<S.?L:<8[J#LI**[1A:FK:WG%[GZ#X9\)X'),-0P5%?NL-&
M[;^U+=R?G*5Y/YH[+]FSP';-;2^.]2M@TAD,6G[APH'#N/?/R@]L-ZUZW5/P
M]HEIX;T.UT*P7$5K L:G'WL#DGW)R3]:N5]'X:<%X;@'@S"Y13BE.,5*JU]J
MK)7FV^NONQO]E170Z<WS">9X^==O1O3R2V_KN%%%%?>'FA1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
MN+^$O@.\^)GBV35=<+RV<$OG7\SGF9R<A,^I/)]L^HKZ%1$C01QH%51A548
M'I7\Q>%.2YEXJ<:5?$;/H-48-PP=)ZJ*BVE/L^36SZU7*2MRH^PSK$4LER^.
M589^\]:C]>GS_P#2;+J+1117]9'Q(4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5X7_P $]_\ DB>K?]CWK/\ Z4FO
M=*\+_P"">_\ R1/5O^Q[UG_TI- 'NE%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%>=?M'?M3_!S]E;P]IGB3XO\
MB![2'5]5CL;**"+S)6+,-\NP'/EQJ=[L,X&  695/5@L%C,QQ4<-A:;G4EHH
MQ5V_1(Y<;CL'EN%GB<544*<=7*3LEZMGHM%0:9J>G:UIMOK.CW\-U:7<"36M
MU;R!XYHV 975APRD$$$<$&IZYFG%V>YTIJ2NM@HHHI#"BBB@ HHHH ***\Y^
M-7[7'[-_[/,+GXM_%W2-+N47<-,6?S[QO3%O$&DP?7;CWKJP>!QN8UU0PM*5
M2;VC%.3?R2;.7&8[!9=AW7Q=6-."WE*2BE\VTCT:O,OVE_VN/@E^RCX7&O\
MQ5\3A+NX0G3-"L@);Z_8<8BBR.,\%V*H#P6R0#\B?&S_ (+57WC%Y?A]^Q_\
M*K^?5;P^5:Z_KT:?NB>"\=JI8-ZAI' '&Y#TKSWX5_LD^,_%_BB3XP_M)>++
MS6/$5^XEN)KR8R3 ]E!;B, <# R , (*Z.,\5PCX/90LVX_Q2P_,KTL+%IXF
MNUVBK\D+Z.<E==EN?)Y=Q#F/'&,>!X0I^VL[5,1)-4*7I>SJSMJHQ:CLW*VA
M;^*7QY_:3_;QUTZ/KNGRZ!X.\U7MO!=A,=LB@Y634)L R8P#Y?"@@?+D<^P?
M!OX)V7@^.#1O#^G_ &W5;D"-YHX^3_L(/X$'],GIQW'PK^">HZS;II7@O08K
M+3XVQ)<LNV)3W)/5V_,^M?0/PY^%N@?#NT/V/-Q>RKB>]D4!B/[JC^%?;\R>
M*_C[/N(_$KZ3^*IX7#T'E?#L'HEHZD;K9/\ B2=E=^]%25YSJ.,$OUK)LCR3
M@"E*K*H\3CIVYIRUDWYVLHQ5WRQBHI)^[%7;>;\)_@WIW@2!=7U8)<ZJZ\R8
MRMN#U5/?U;\N.O<445_1W"_"V1\&Y-3RO*:*ITH=%O)]92>\I/JWZ;)(\7&8
MW$X_$.M7E>3_ *LNR"FS0PW,+V]Q$LD<BE71UR&!X((/44ZBOH)1C.+C)73.
M5-IW1X/\8_@Y<>#;AO$WAF-VTQGRZ*26M&S^>W/0]NA[$]5\&OC;#K4*>&/&
M-ZL=Y&N+>]E; G [,3T?W_B^O7TR:&&YA>WN(EDCD4JZ.N0P/!!!ZBO&O'?[
M..K'6FNO QA:SFRWV>>;:8&_N@GJOIW'3W/\H<3^'W%OA3Q5_K1P!1=7#UG:
MO@XW:=WO"*UY;NZLN:DWHG3<HK[;!YI@<ZP7U/,Y<LH_#4_S??\ !^NIZY_P
MD&@_]!NS_P# E/\ &LKQKX^T7PSX7O=:M]3MI9H83Y$23*Q:0\*, ],D9]LU
MX]_PSI\2O^?:S_\  L?X4?\ #.GQ*_Y]K/\ \"Q_A3S#Q?\ &G%8"K1P_"E:
MG4E&2C/]X^2332E;V:ORO6UU>PJ61</PJQE+&Q:35UIKY;]1/@3X6E\7^/AK
M&H RPZ>?M,[OSOE)^0'WW9;_ (":^@JY3X/^ 9? 'A7[#J"I]MN)C+=M&V0.
MRJ#W  _,FNKK]+\"N!:W O 5&EBX..*Q#=6M?XE*7PQ?6\8I)KI+F[GD<1YC
M',<SDX.\(^['M9;OYO\ "P4445^R'@A1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% 'R]_P6#^'O_"=?L0:YJD4'F3^&M4LM5A4#GB7R'/X1W#D^P->*?\$%
M/B%YWA[X@_"FXGQ]FO+/5K2//WO,1X9C^'E0?G7V]\??A^OQ6^!_B_X:F(.V
MN^&[VRA!'222%U1A[ABI'N*_*[_@C+\0&\$_MJVGAFXE,<?B?0;W361^!YB*
M+I<^_P#HY _WL=Z_>>#_ /A<\'<XRW>5"2JKR5E+_P!QS^]GX#QE_P (7C+D
MV9[1Q$71?F[N'_N2'W(^]OBOX8N_AO\ $/[=H^88991=Z>ZCA#NR5'^ZW;TQ
M7NO@SQ/:>,?#-IXBM, 7$0,B _<<<,OX$&L+XW^"O^$P\%RR6L.Z\T_,]M@<
ML /G3\1^JBN$_9L\;?V=K$W@N^FQ#>YEM-QX64#D?\"4?FH]:_S/R#_C3GCC
M6R:7NY=FWOTOY856W:*Z*TG*G9=)TF]C^M<5_P +W#L<0M:M#27=Q[_=K\F>
MV5Y/^TCX^^SVT?@/39_GE EU J>B=53\3\Q]@/6O1O%_B>Q\'>';KQ#J!^2W
MCRB9P9'/"J/J<?SKP/P)X=U/XN?$)I]6=GCDE-SJ4HXPF?NCTSPH]!]*^G^D
M#Q?F"PF&X)R3WL=F+46EO&DW9W[*;O%O90C4;MHSDX8P-+GGF&(TITM?67_
M_-H5OA!KH^&R>/T#%BYD:UV\BW[2?GDX_ND&NT_9X^)GVB(> =;N/WD8)TV1
MS]Y1R8OPZCVR.PKU9;>W2W%HL""()L$84;=N,8QZ8KY]^+G@&\^&GBN/5]#+
MQ64\OFV$J'F"0'.S/J#R/;Z&OSKB;@/'_1^QN7\6\.\U6A3C&EC(7?OIV3GU
MLIO;I"HH/5-H]3!YE3XGIU<#BK*3;E3?;R^7XJY]"T5S/PK^(-M\0?#:7K%5
MO;?$=]".S]F _NMU'XCM735_7^19WEG$F3T,SR^IST:T5*+\GT?9IW4ENFFG
MJCX;$X>MA*\J-56E%V84445ZQ@%%%8OCOQWHO@#16U;5I-SME;:V4_/,_H/0
M>I[?D#P9IFF79)EU7'X^JJ=&FG*4I.R27]626K>BNV:T:-7$553IJ\GHD@\=
M^.]%\ :*VK:M)N=LK;6RGYYG]!Z#U/;\@>-^'?[0^G:]<_V5XRBBL)W<^1<H
M2(6!/"MG[I]SP?:O./\ BM/C=XT_YZ2R?416D6?T _,GU)KK?&_[-MSI^F)?
M>#+V2[EBB'VFUFP&D('+)_\ $G\">E?R%B/%7QAXRS2MQ'P=@W+*\(W'V<HJ
M^(7VG;XI222:5-W@K+WFY)_<QR7(L!1CA,?4M6GK=?9[>27KOY'LP(8!E(((
MX(HKY^^'7QG\1_#^X&A:]#+=6$;;'MI<B6WQUVYZ8_NGCZ5ZIK7QJ\":5X93
MQ);:HEWYP(M[2)L2NX_A(/*8[D_KD9_9^#?'3@3BO(ZN.KUUA:E&-ZU*JTI0
MMHW'^>-]$XKFNTG%2:1X&/X<S+!8A4XQYU)^ZUL_7M\]/,W_ !%XDT;PII4F
MLZ[>K!!&.K=6/95'4D^@KPWQ?\??&&LZZE]X=O)-.M+=S]G@7!+^\G9L^G0?
M7FN1^+OQ;O+_ $O5/B+XYU#R-+T6S>ZN-N?*M85]!W8G"C^)F*J,D@5^<_QP
M_:N^,?QY\0SZOX..J:3H?A\"\AMM*D<-:H)%C6YGD3^+?(B@G"J7"CDDM\]P
MGD7B[]+7.JN%X-JO+,DPTO?QD^:+J5%K",>5J4I-V?LX22@FIU)<SA!_-\;\
M<\(^#^"ISS2'UG&U5>-"-KJ/VI-M-1BE?WFO>:M%64FOUX\!_M':/JNS3O&D
M"V,YX%W&"87/N.J?J/<5Z7;W-O>0)=6DZ2Q2+N22-@RL/4$=:_/+_@F_\6[W
M]JWP7JG@+Q)XDB_X3GPZ@G1;A0@U6P) $@VCB2-R$8XP0\9ZEC7OVG>(_B7\
M']2?32T]F3DM:7*;HG_VE'0_[RG\:\O.>-O%OP S^?#_ (FX%XBC3:C'%T-5
M)/X97M&,E):I25*INVI,^@X>K\+^(>24\WX>J\JJ*_LYZ.+6CBU=V:>CLY1[
M.Q[A\0OB7H'P\T_S]1D\VZD4_9K*-OGD]S_=7W/X9/%>'W-UX\^-OBL1JC32
M'[D:Y$-K'GK[#WZGW.*E\'^!?&'QAUZ75+VZD\II,WFI3C('^RH[G'11P!CI
MQ7O/A'P=H/@G2ETC0;,1IUED;EY6_O,>Y_0=J^2H8+C?Z2&8+$8WGP.0PE>,
M%I.O9[]I/^\[TX;04Y*3/H95,NX4I<E.U3$M:OI'_+TW?6RL>"^*?A[X\^$N
MI1ZQ!,_EHP\G4K(G:#Z-_=^AX/O7>_#C]HBPU3R](\<[+6X.%2_48BD/^T/X
M#[]/I7IT]O!=0O;74*21R*5>.1058'J"#U%>5?$?]G2&X\S6/ .(Y.6?39&P
MK?\ 7-C]WZ'CW'2O1S/PPX^\(,=/./#ZM*OA6^:I@YMRNNO*M.?39KEJK1)U
M+M&5'.,LSRFJ&:149]*BT^_M_P"D^AZ3KGB?0/#FF?VQK6JPP6^,K(S9W\9
M4#EC[#->._$']HC6=;WZ7X,C>PMC\INC_KY![8^X/IS[CI7,Z!\.OB!XPU(:
M#%IURHLF\N1KTLL=KSDCGIUS@<GKBN4_;Y^(OA;]B?\ 9VFNM&OQ=>._%(?3
M_#UP_!M,K^_NHU_A\I&&UN2)'C[9%=61YCXX_2.S6CDG#F&>5X.K)0J5I.7.
MWM-1E:,FHV=U!1LDU.HKV/-SS&<*>'N4ULTS*I[5THN7*K?]NJVJO)V2N]6U
M9'A?[1_[>?@?X43WGA?P2(_$'B2)V2;+$VMI*#@B5P078'JBG.0064UX1+^V
ME_P4#^/1'@WP%XV\4R0JNR'1_ 6EM;F-3_#_ *(@E;//+,Q/.2:]1_X(]_L9
M:1\<?'^H?'/XI^&+;4O"_ALFVL+'4K998-0U!UR=R."KK$C!B"/OR1GL:_5'
M1=!T/PWIT>D>'=&M+"TB'[JULK=8HT^BJ !7]T\%^'_@[]%_GRC(\N689BXQ
M]OBZ[BYN3UY8KEDH16CY(<NZYY3E&Y_,<I^)'C?AHYMF68RP.#DVJ="BI).*
M=N:3YH\S>JYI<U[7C&,6D?C';_\ !-7_ (*"_$'3[GQYJ?P<U>:;9YC-K>L6
M\=Y.>^(YI1(6'7# 9Z#)XI/"O[7/_!07]C#68_">M^)O%&EQP<+X?\:V,D\#
M(.T:W W*GO$RCG@\U^U%9OBKP=X2\=:-)X=\;>%].UC3YO\ 6V.J64=Q"_U2
M0%3^5?>Q\<JN8MT,[RRC7P_2*33BO+GYT_NCZHYY^!-++4J^1YI7H8A;R;34
MGY\G(U\W+T9\"_!7_@N[H=UY.F_M!_!R:T<X$FK>%)_-CSZFWF8,H^DK'V]?
MN3X-_&3X=_'WX>6'Q2^%FOKJ6C:B'\B?RFC961BCHZ. R,K @@CW&003\H?M
MJ?\ !)+X%>)OA?KWCG]G;P/+H7BZQM&N[+3--NG-IJ!3YGA\ERP1F0,$$>P;
MMN1@FOG_ /X(S?M9-\*_BW/^SGXSU$QZ)XQG#:29FPMKJH 55YZ><H$?NZ1#
MN:,XX4X*XOX4Q&=\*4ITJN'=ZE&3O[MKMI7ETNXM2LU&2Y;[&3<6\;\'<68;
M(N+*L*M+$*U.M%6]Z]HINT;ZVC).-TY1?-;?]5ZAU'3[+5K&73-1MEF@GC*2
MQ..&4]JFHK\!JTJ5>E*G4BI1DFFFKIIZ--/=-;H_H!2<6FG9H^<O'G@[7/A!
MXQBO=*N9%A\SS=-O!UP.J-VR,X([@^^*]K^&GQ!T_P"(7A]=1AVQW46$O;8'
M_5OZC_9/4?EV-7?&7A'2O&^@3:#JR?+(,Q2@?-$XZ./<?J,CO7@4]OXY^"/B
M\.K&*5?N2 $PW4>>GN/;J#Z&OX\Q^'S3Z.'&4\QPE.=7(<9+WX1U=";VM?9K
M[#;7/#W&^:,9'W=*5'BO *E-J.)IK1_S+^M^SUV=CZ2HKG/AU\2]#^(FF^?9
M,(;N)1]JLG;YD/J/[R^_YXKHZ_K+)<[RKB/*Z68Y;656C45XRCL_U33T:=FG
M=-)H^)Q&'K86LZ56-I+=,@U/4K'1M/FU74KA8H+>,O+(W10*^=?$VN>(/C/X
M]2&P@8^=)Y5A;D\0QCG)].,LQ_P%=%^T!\3?[<U ^"M$N,VEK)_IDB'B:4?P
M^X7]3]!78_ OX9?\(=HW]O:O;XU*^C!*L.8(NH3V)X)_ =J_E?C?,<;XZ>($
M>#<IJ-99@Y*>*JQVG*+MRI[.SO"'1SYIV<8)GV>74J?#F6/'UU^^J*T$^B[_
M *ORLMV=3X*\(Z=X(\.P>']-&1&,RRD8,LA^\Y^OZ  =JU:**_K'+LOP64X"
ME@L'!0I4XJ,8K91BK)+Y'Q56K4KU74J.\F[M^84445V&84444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5X7_P $]_\
MDB>K?]CWK/\ Z4FO=*\+_P"">_\ R1/5O^Q[UG_TI- 'NE%%% !117YR?MV_
M\%7/BE\*?VJE\&?L^ZO83:+X05K/7K6]M5F@U6\+ S(Q&'41;1&"C*0XDY((
M%?4<)\(9QQGF,L'EZ7-&+DW)VBDMDW9ZMV2\WT2;7RO%W&.3<%9='&9BWRRD
MHI15Y-O=I76D5=OR6EVTG^C=%?+O[)W_  5;_9Y_:.^S>%_%EXO@KQ3+A!IF
ML7*_9KE_2"Y("L2<81PC$G #=:^HJ\[.LASCAW&/"YC1E2FNC6C\XO:2\TVC
MTLDS_)N(\$L7EM>-6#ZIZI]I+>+\FDPHHHKR#V HHHH **** "BBB@ HHHH
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
M^W7^WO\ #[]C3P;Y)\G5O&6I0$Z'X>$G0<@7%QCE(0<^C.057HS+\H?LC?\
M!:WQ-IVL_P#"*?M<6BW^GW5RS0^*-)LE2:RW,3ME@C $D2YP"@#J!TD/3^]>
M$_"'/I<(QKY)@U#"T4HTX+1RBMW3C]JW5WO)MVYI7/PC/_%/A3*>(XY;F.)_
M?3UE+>,&[6527V6^FEDM9<J:O^@/Q&^$7AWX@0M<L@M-1"XCO8E^]Z!Q_$/U
M'KVKR73?@)X\N_%#>'KVR%O#'AI=0/S0[/53_$3_ '>#ZXKW'P5XW\'_ !'\
M,6GC3P%XELM7TF_B\RTU#3[A98I%]B.X/!'4$$$ BN8_:9^//AO]FGX(Z_\
M&/Q,4=-*LR;*T9\&[NF^6& =_F<J"1T7<W0&OYVXO^CQP=XA\44*];#RIXIU
M$IQI^XZS;MR5%;23=DYJT[73>SC^G8;C2MDF45*[JQ=",'+F>JC%*_,GU5M;
M:KMY_G]_P6%^.^@>%1IW['/PRN<0V9BU/QI<J^7N+@KFWMW(_NJ?-*],O%C!
M4U[C_P $N/V'_#G@_P#94U+6_BUX9CN-0^*.FD:C:7*?-%I+H1##ZJ7#&4D8
M/SQ]"E?%?[$'P+\4_MY_MA/K_P 29)+_ $Z._?7_ !M>./EF4R;A![>;(0@4
M=$WD?<K]GHHHX(UAAC5$10J(HP% Z #M7]H<9T\J\+N"LOX"R",:2I1C.K[/
MW4G>Z2MWDN;75*,-7<_FGP\PN*\0^+,;QMFT7*$G*G1C+7W;<K>O:+Y>SE*?
M8_$WQ'I7Q._X)E_MM!K!Y)I?#>I">QD<[$UC2I<@!L<8DB+(V,['#8Y2OV*\
M'>)?AS^T)\+])\=Z*D.J:'KMA'=V3R*-RJPZ''*.IRK '*LI':OG#_@KM^R+
M_P +Z^!O_"V?!^F>9XH\$0R7 6),O>:=]Z>'CEBF/-4?[+@#+UX9_P $3_VN
M?[$UV[_9,\;ZGBUU)Y+[PA),_$=P!NGM1GH'4&11P-RR=2XKKXSP."\6O#>&
M=RI1J8G#1]GB(.*:G#=MQ>C7VTFK6<UK8PX1KU_"SQ%J</59..#Q;Y\/*_PS
M>B5^[_AOJVH/2Y^DNFZ9I^CV,6F:7:1P6\*[8HHUP%%3TDDB1(TLKA54$LS'
M  ]37RA^U3_P5S_9W^ OVGPQ\.IU\=>)(LH;?2;D"QMG_P"FMR 58@_PQASP
M02M?BO#W#&:YY6C@<HPSGRI)**M&*V5WI&,5LKM+H?N&?<29-P[A7B\TQ$:<
M>\GK)^2UE)^239]845\/?LY_\%N?@UXY:#0/V@O"UQX/U!R%.K66^[T]SZL
M/-AR>VUP.I85]F>#/''@SXB^'X/%?@'Q7IVM:9<C,%_I=XD\3^P9"1D=QU%=
MW$'"7$7"];V>9X:5/M+>+])*\7Z7OW1R</<7\-\54?:99B8U.\;VFO6#M)>K
M5GT9H7M[9Z;9S:CJ%U'!;V\323SS.%2-%&69B>   237XN?M8?&+QK_P4-_;
M*CTOX>P2W5I=ZA'HG@JR;(5;8.0)F'\.\EYG)^ZIP>$%?:G_  67_:T_X51\
M(8?V>_!^I[->\:0,=4:)\/:Z4"5?/H9F!C'JBRCTKAO^")7[)?V'3[W]K7QI
MIF);H2Z=X/25/NQ [;BZ'^\085/7"R]F%?KOAYA</P+PAB>,<;%>UFG3P\7U
M;TO_ -O->JA&36DC\>\1<5B./>,<-P9@9/V4&JF(DNB6MO\ MU/T<YQ3UB?;
M/[/'P0\*_LY_!K0?@[X00&UT:R$<MSLVM=3GYI9V_P!IW+-CMD < 5VE%%?@
MV*Q6(QN)GB*\G*<VY2;W;;NV_5G[[A,+A\#A88:A%1A!*,4MDDK)+T04445@
M= 5^0W_!6#]EN^_9K_:+C^+O@""2ST#Q?=-J-A-:93[!J2L'FC4K]SYB)4Z?
M?('W*_7FO+OVQOV;=$_:K^ &M_";4A%'>RQ?:=!O9!_QZ7\8)B?/93DHV.=D
MC"OT'PUXO?!_$U.O5?[BI[E5=.5_:MWB]>]KKJ?GGB;P<N,N&*E"DO\ :*?O
MTGUYE]F_::T[7L^AD?L$_M267[67[.VE>/KFXC&O6(_L_P 3VR8&R]C49D"]
MED4K(.PWE>JFO:*_&_\ X)P?M(ZW^QE^U3+X&^)7FZ;HNMWO]B>+;2Z.T6-R
MDA2.=AT!BD+*Q[(\AYP*_9 $$9!K;Q0X07"7$LEAU_LU;]Y2:VL]XI_W7HO[
MKB^IAX6<8OB_AF+Q#_VFA^[JI[W6TFO[RU?]Y270*S/%GA'0_&FD/HVNVHDC
M;F-QP\3=F4]C_DUIT5^6X_ 8+-,%4PF,IJI2J)QE&23C)/=-/<_3:56I1J*=
M-V:U31\X>*_!_C#X->)8M0L[J14$A-EJ,(PKC^ZP[''53P?<5UFM?M'MJ'@-
MK:QM6MM:F_=2L@^2-<<R(?4] .H/TY]9UK1-+\1:9+H^LV23V\RX>-Q^H]".
MQ'(KQG5/V<=;@\9P:9I\[2:1<.6:].-T"#DJP_O=@>A]N<?QMQ9X;^)?A;7Q
M%/@*I.I@,<_9NE\4J$YM14DWLM;*MO%:5/AC-_>X+-LHSF,7F:2J4];[*26M
MO_M>O3=H;\ ?AF?$.ICQEK<&ZRM)/]&1QQ-,._NJ_J?H:]RJOI.E6&AZ;!I&
MEVZQ6]O&$BC7L!_,^]6*_HWPM\.\O\->%:>6T;2K2]ZM/^>HUKY\L?A@NRN]
M6V_E<YS2KFV-=66D5I%=E_F]V%%%%?HYY(4444 %%%% !1110 4444 %%%%
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
M@4HS<4I-?9BE9)=K+2/9:[LFHHHK^NCXH**** "BBB@ HHHH **** "BBB@
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
MS1ZOAMP!7X-HXG$8^JJV+KS;G4U=XWT5Y:W;;E+NW;7E3"BBBOS,_3@HHHH
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
M0>G:)XP;]FCXD:H+72_$=WGPWJ%P<+IVJ-A1$WI%/@(1VD"$8RY/Z^U^4/\
MP5\_8SD^"/Q13]HCX=::T/AKQ7>EM1CMEPNG:H<NV,?=67#2+Z.)!P-HK]BX
M-APYXD\)8SPWXJ@JF%Q47[+F^S/XK1?22E[\&FFI)J^J1^$^).79KP=G^'X]
MR'2K1:5:*VG#:[[IKW)[Z<LOLMGTS\5/AB=5L;KP%XSL7@EC??$^,M#)C"RH
M>X(_!AQZ$>+_  K^)/Q$_9%^+(U%86DMWQ'J5B'(AU&VSU4^HY*MC*G((^\I
M]?\ V(OVM_AK^V?\&-+^''Q6\9V.G_$W1X_L:M>3K'-J@4#9<1AB/-+#_6("
M6#JS  $58^,/P<34%F\'>-=/,-Q#EK6Z09*$]'0_Q*<<COT."./\[<SR_CGZ
M)/&$\CSR,\1D=2;4)V;E2;;U7D]VE:-17G"T^>!_361YUD/BCD5/,\MFE6<4
MVKK736,NS6SZIZ.ZLST?]I7]L/PKH'P M/%'PNUU9]2\6P-#HS(<26HQB:1E
M_A>/.W']\CJ :\0^!/PPN/">BQO<6C2:QJC+YJ 99<GY(A[\\^Y]A7)?"[X$
MZMH_C66^\6QJ]KID@:QP<I<2'D.!V X./7'H:^MOV:_ EOJ$DOCZ_0.L$K06
M"D<%QP[^AQG:/<-W%<OB;Q55\8N(L)P)PK74\--1JXJM#6*IZ22OVBFFT]ZC
MA!V:DCU,HP<<APL\RQL;35XPB][[?C^5WV/0/A9X M_A_P"&(]/95:\GQ)?2
MK_$^/N@^B]!^)[UTM%%?U)D629;PYD]#+,!#DHT8J,5Y+J^[;UD]VVV]6?'8
MG$5<77E6JN\I.["BBBO6, HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** /(OVUOV3_"_[7WP3O?AW
MJOE6VKVV;KPUJSKS9W@4[<D<^6X^1QSP<@;E4C\O?V+/VE_'W_!/;]IB]\+_
M !)TV[M='FOO[+\<:*X):'8Q"W* <,\1)8$9#HS ?>!'[/U\-?\ !8']AG_A
M:/A*3]I_X8:/N\1:#:8\2V=O'\VH6"#_ %V!]Z2$=>YC!&?W:@_M'A9Q7@>2
MIPMG?O8/%:1O]B;VL^BD[6?V9I2TO)GXGXK<)8_GI<5Y'[N-PNLK?;@M[KJX
MJ]U]J#<=;11\\?\ !7W]K33OC_\ &33?A3\.->CU'PSX5MU=+BQE\R*^OYU5
MFD4KPX1"D:^C>;CK7WW_ ,$\OV8X_P!EK]F;1O!^J6(B\0:J/[4\3,1\PNY5
M'[D_]<D"1^F48C[U?G1_P22_9?\ ^%^?M*P>-?$.G>;X=\"^7J5[YB92:[W'
M[+"?7YU,A'0B$@_>K]B*]/Q;Q^"X=RO!\&9;+]W02G5?64GK'FMU=W-K;WHV
MV/+\(,!C>(\UQG&N91_>5VX4ETC!64N6_164$]_=E?<*_.S_ (+F?LX>;:^'
M_P!J'P[8?-$5T7Q(8U_A.Y[:9L>A\R,L?[T0K]$ZY+X[_"+P_P#'KX/>(O@_
MXG4"TU_3)+8RE<F"3[T4P']Y) CCW45^8\#<23X3XHP^8I^Y%VFN\):2];+5
M>:1^H\=\,T^+>%<3ES7OR5X/M..L?2[T?DV?.?\ P1S_ &C_ /A<7[- ^&.N
MW_F:UX"E6Q(=LM)8/EK5_HH5XO80KZU]<U^)G[(G[0'B7_@GQ^U7?7GCG0[R
M6WL&N]$\7:/9E?-D"L1\F\A2R31HP)(RH(R-V:^]_#?_  6Q_8QUO:-5A\7Z
M.3U_M#0T<#_OQ+)7Z+XD^&F>?ZS5L=DV&E6PU>U1."YK.6LE9:[WDK*UI)+8
M_./#/Q.R%<+T<#G6*C1Q-"]-JH^5M1TB[O3:T7=WO%M[GUY7@W[>G[</@_\
M8T^&AO5\C4/%VK1.GAO0V?[S#@W$P!RL*'KT+G"C'++RGQ _X*^?L9^'_AMJ
M?B[P)\0'\0ZQ;6__ !+_  \FE7=M+<S'A5+31*JJ"<LV3A0<!C@'\\OAI\._
MVA?^"H7[4-UJ6L:H\EQ>2K/K^M/$?LNC6(.%1%SP ,K'$#ECDD_?<<7 WAE7
MKUZF9\34Y8;!8?6:J)P<VM>6S2?+W:U>D8ZNZ[>//$^A0P]/*^&*D<3C<3[L
M'3:FH)Z<S:;7-V3T5G*6BL[_ .R=^S!\8?\ @H[\?]0\7^.]>OGTO[<+OQGX
MIF&6^;D6\.1M\U@-JJ!MC09QA54_L3\//A[X-^%/@K3?AW\/]!@TS1])ME@L
M;*W7"HH[D]68DEF8Y+,2222365\#/@A\//V=OAGIOPH^&.CBTTS3H^6;!EN9
M3]^>5L#?(QY)^@    ZZOG_$/CW$<99A&G17L\'2TI4UHK+3F:6G,ULMHKW5
MU;^A\.> ,/P7E\JE=^TQE;6K4>KN]>5-Z\J>[WD_>?1(HHHK\Z/T@**** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *\J_; _9/\  7[7WPCN
M?AUXN1;:_AW3^']:6/=)IUUC <?WD;A73HR^C!6'JM%=F7YAC,JQM/%X2;A4
M@TXR6Z:_K5;-:/0X\QR_!9M@:F#Q<%.G434HO9I_UH]T]5J?BA\&/BS\=O\
M@F+^U%>:5XCT>5&L[A;3Q3H#2$0:I:9RLD;'@G:=\4N.,X/#,I_8SX2_%?P+
M\;_AYI?Q1^&^MI?Z/JUN);:9>&4]&C=?X'5@593R""*\4_X**_L(Z'^V%\./
M[4\.006GCK0K=FT'4'PHNDY8V<S?W&.2K'[CG/1G!^#/^":O[87B3]CWX[2_
M"'XJ75Q8^$]9U,V.OV-]E?[(OPWEBY(/W-K#9+T^7DY,:U_0&=83 >+_  P\
MZP$5#,L-%*M37_+R*6Z6[T3<'OO3=_=9_/.28S,/!SBA9)F$W/+,3)NC4?\
MR[DWLWLK-I36BU516]Y'[ T4BLKJ'1@01D$'K2U_.9_204444 %%%<+\=/VE
M?@K^S;I>G:O\9/'-MH\6JWZ6E@D@+R2LS ,X103Y: AG?&%&,G) /1A,)BL?
MB(T,-3<YRVC%-M^B6IS8O&83 8:6(Q-10IQWE)I)>K>B.ZHHHKG.D**** "B
MBB@ HHHH **** "BBB@ HHHH **^$/C+_P %&?V@?VA_VN_BI^P7_P $^;?P
MAI5Q\'/"BWWQ7^*?CBUNKZ#3;JXB9H=.TZQM9[=KBY"JQ::2=(XVC=2K%0&\
M\_9G_;/_ ."H?[.'[/W[*7CW]H+0O OQF^&7QDM/ GA^_P#&6DB_TGQ+X8NM
M;AM(K>[U+[1/>1:FOF3JKSH8&EE8$JGF# !^F5%9OB_7-4\-^&;W7=%\'ZAX
M@N[6 O;Z+I4MNEQ>-VCC:YEBA4GU>1%]Z_/+]@__ (*_?M:?M5_\%I/BG_P3
MI^-G[-FB?#+0OAI\-+S5VTC^UAJFJ7%Z+W2%MYY;N)A!Y3VU^9!%&AP9!F1]
MM 'Z/T5%>WMGIMG+J.HW<4%O!$TD\\T@1(T499F8\   DD\#%? W[,O[=O[:
M?_!6#5_'/Q3_ & O&'@+X;_!CP;XCGT#PIXP\=>"+O7K[QUJ%NJM-.D$5]9K
M8Z>-Z!6S)*^2?D*LB@'W]17RE_P3/_X*32?MH:E\1?V>_C3X)LO!GQO^"WB)
M]$^)?A*PNVFLYCO=8=3T^20!Y+.<(64,-\>0&)#([X'[8W_!1_XDZ9^VSX/_
M ."7/[#>A^'M5^,/B;1Y->\6>(_%4,UQH_@30D&3>7-O;R1R75Q)PL5N)(AF
M2(NZK(N0#[,HKX;E_P""@7[07[#G[;/P[_8P_P""BOB'PCXCT#XT)+:_"KXP
M^$?#LVBQMK,31J^D:E8RW5TL<DAFA$-Q%*%=I$4QC+LGW)0 4444 %>%_P#!
M/?\ Y(GJW_8]ZS_Z4FO=*^+/"O[4^B?LD?L,^*/B/<-%-K-QXZUJS\,Z?(<_
M:;U[AMA(ZE$ ,C=.%QG+"NW+<NQ>;8^E@L+'FJ5)*,5YO\EU;Z+5G#F>8X/*
M,OJXW%RY:=.+E)^2_-]$NKT1YC_P6G_;)^W7D7[(OP_U7,-NT=WXTG@?AY.'
M@LR1V7Y97'KY8X*L*D_X)F6OP+_9!^'L_P 7OBEJ3WOCWQ7"J6&AZ9:&>ZL-
M/)#)&>B1R2L%=E9@=HC& 0PKY=^%7P1\;_%3QA-\0/'MK=ZMJVIWCWLEO,N]
MYY78NTTY/ RQ)P>.>>.*^PO@]\%5\(N/$'B15N=7E/[M5.\09]#_ !.>Y_ >
MI]'Q_P#'O@7P6X$7">65XUL1O4C"2YJU1]-+M4^9>]-JRC%0CS/1_FGAEX?<
M1<<<7SXQSNDZ:>E"$E_#ATDUTERO2.[E*4VEH>Y>/?CWK_Q%T=+0:.VBV+#?
M-:R7 >5QU'F,, 8X^49 /<\8\'\4+\7OCE</X2^"/@K5+_3@Y2ZU6WA*0S-T
M*><V$5?JPW?3K]8?";X"Z=:V(USX@:3#=3S+F'3KJ,/'$I[NIX9O8\+]>GJ,
M,,-O$L%O$J(BA41%P% Z  =!7\A>&?AEGG$N>?Z]<=KGQ4[.A0DO=HQWBW%[
M-?8@_A^.=ZC]W^BLWS?#X3#_ -FY;I!?%);R?77\WUV6F_P[X#_X)C?%?6]E
MSX^\7Z7H<3<M#;AKN<>Q VI^3FO:? ?_  3G_9\\*;+CQ%;ZEXAN%P2=1NS'
M%N]DAV\>S%J][HK^GSXXH>&_"_ASP=H\7A_PIH5IIMC ,16ME L<:^IPH R>
MYZFK]%% #98HYHVAFC5T=2KHPR&!Z@CO7Y#?M#CQ1^PE^U?K'PU^T7,/AV:8
M:AX5O$R6AL)V)2/G_61QL'B(/_/(D9&!7Z]U\;?\%GOV;/\ A:G[/L'QH\/6
M&_6/ DK2W)C7YI=-E($PXZ^6P23GA5$GK7W/ =/A_-<SED.?48U<'C5[*2DD
M[2?P25TU>[<7?1J;YDU='Y_XBQSO!9+_ &UDTW#%81^T5MI0_P"7D)+JFDI=
M[P5FGJ?.7QG_ &H+N[^$EMK6HV)AL+B58Y+BT)*ZA(5#HD>>@V_.W)Q\OJ 8
M/^":_P #?$7[8_Q\'Q(^(%AM\#^"+B.[?3\9AN[[.ZW@;/\ K,8\Q\Y&%"D
M25\J^'!\4OC-?^%?@EHEW>:JT5XUEX8T??E()+F;<X0=%#.=S,>PR3@<?N#^
MRE^SKX9_9:^!NB_!_P .;)7LX?-U:^1,&]O7 ,TQ[X+<*#R$5%[5];+PTX$^
MCIPA/+<AHQ6,Q,ZCC)7_ '<)-\TU=MJ3C:"E>ZV@U&%C\]R'B[B;QLXDCB,;
M>GE^&C!S@MJE5)-1D_M14KRY=N5+F7-*YZ-576M%T?Q)I%UX?\0:7;WUC>P/
M!>6=W")(IXV&&1U;(92"00>M6J*_&HRE"2E%V:/Z!E&,XN,E=,_,W]I[_@B?
M\09OBM_:'[+E_IG_  C&J,TCV>N:BT3:.^1F/=M9I8CGY2 6 !#9P&;1^''_
M  05U>3R[GXN_M 6T.,>;9>&]):7/TGF9<?]^C7Z0T5^I_\ $9_$".7PPL,2
MERJW/R1<Y?XG)/7I=)-[MMW9^4_\04\/99A4Q<\,WS._)SR4(_X5%K2^MFVE
MLDE9'RW\./\ @CO^Q+X#\N;6?"&K>*)X\$3>(-9<C/\ USM_*0CV92*^D_"?
MA'PMX#\.VGA#P5X=LM)TNQB\NST_3[98885SG"JH '))/J23WK1HKX7-N(\^
MSZ2>8XJ=6VJ4I-I/R5[+Y)'WF4<-Y!D$6LNPM.E?1N,4FUYNUW\VPHHHKQ3V
MPHHHH **** "BBB@ HHHH *YOXN_"?P1\<OAQJWPJ^(VE?;-'UFV,-U$&VLO
M(99$;^%U8*RMV*BNDHK6A7K86O&M1DXSBTTUHTT[II]&GL95Z%'%4)4:T5*$
MDTTU=--6::ZIK<_)O]IS_@C3\>_A#)/XK^!6H'QQHT),BVMN@AU2W Y_U6<3
M8XYC.XG_ )9BN&^%W_!1K]HOX4PK\-?C+%<>*],TZ0Q"S\1%X]3TYAP5CN&!
MD&, &.4.,# "G!'[.UY7^T;^Q=^SK^U-I[0_%?P#!+J(CV6^OZ?BWOX..,3*
M,N!V1PR?[-?KT_$?(N-<CGP_X@9=#'82HN63Y5SI/K;35;J4'"2M=79^(8WP
MES#AW,?[6X(QTL)76O(Y-P?E?5V_NS4XOR1\;>)/VO\ P'?_  ;B\>_#"Y_M
M+5]7NDTW0M$E4"X_M"3 6*2,$XVDAC@X(P QW U]\?!OP ?A;\+-!\ 2WINK
MC3--CCOKQNMU<D;IYS[R2L[GW8U\5?!'_@CEK7P/_:[\,?$M/'EGX@\$Z+>O
MJ"+=1&&^BN(U+6Z.@RC@2[&WJ1G8?D7(K[ZK\)RGPC\,/""A5P?!U>6)CBIR
MK3JU%[\87<:.'>BTHKG;=DYRJ<TMHI?IF09_QSQ34GC.)J"H5*25*,(N\6TE
M*I65FU^\;BDKM14++JV4445Z9]0%%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %(Z)(I1U#
M*PP01D$4M% '#_ O]G;X4_LXZ/J^@_"?PZNG6NM:Y/JMY$""!++CY$X^6-%
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
M;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\
MP+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_
M  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH
MV**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_
M (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK
M'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!
M](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q_P#A
M!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\
MGYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^
M?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_
M ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q_P#A!](_Y^;W
M_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJ
M -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^?F]_\"VH
M_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VH V*
M*Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q_P#A!](_Y^;W_P "VH_X
M0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\
MX0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_
M )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC
M_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]
M_P# MJ -BBL?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F
M]_\  MJ/^$'TC_GYO?\ P+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+
M:@#8HK'_ .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ M
MJ/\ A!](_P"?F]_\"VH V**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -
MBBL?_A!](_Y^;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/
M^$'TC_GYO?\ P+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_
M .$'TC_GYO?_  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](
M_P"?F]_\"VH V**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!]
M(_Y^;W_P+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GY
MO?\ P+:@#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_G
MYO?_  +:C_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\
M"VH V**Q_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ -BBL?_A!](_Y^;W_P
M+:C_ (0?2/\ GYO?_ MJ -BBL?\ X0?2/^?F]_\  MJ/^$'TC_GYO?\ P+:@
M#8HK'_X0?2/^?F]_\"VH_P"$'TC_ )^;W_P+:@#8HK'_ .$'TC_GYO?_  +:
MC_A!](_Y^;W_ ,"VH V**Q_^$'TC_GYO?_ MJ/\ A!](_P"?F]_\"VH V**Q
M_P#A!](_Y^;W_P "VH_X0?2/^?F]_P# MJ /#/\ @I7^QS!^UE\"I7\-6"-X
MP\,K)>>&Y !NN.!YMH3Z2!1M]'5.0-V?SR_8-_X*'^*_V(8?$GA+6?"%QK^C
M:BAFMM%>\^SFTU%<+OW%6V*R#:XVDY1/0Y_8#_A!](_Y^;W_ ,"VKY:^*/\
MP1T^ OQ7_:"O_C#K7BW5K+2-3"W%_P"&M,1(S->$GS9?/;)5'^5F0+NW%R'&
M0!^S\ <<</X?(,1P_P 3Q<\(_?A9-M233<%RV:N_>3NDGS7?O'XIXA<"\0XG
MB##<0\+R5/&+W)W:2<6FE-\UT[+W6K-M<ME[I\0_&+_@H/\ ML?MD:]_P@'A
M>_U"RM-08I;^$_ UK*KSJ?X79-TTW'4%MG?:*]%_9Q_X(G?'#X@F#Q!\?/$,
M'@O3'PS:;!MNM1D7K@A3Y<.1W9F8'JE?HE\*?V5?@7\#M&.A?"?P/#H<# "9
MK-R)9\=#)*<O(?=B:ZS_ (0?2/\ GYO?_ MJZLS\99X'"O \*X.&#H_S63F_
M.WPI]V^=_P!XY<K\%H8_%+'\68R>,K?R\S5->5_B:[)<B_NF1\#?@5\,_P!G
M3X=67PO^%/AY+#3+,;G8D--=2D#=-,^,R2-@9)[   * !U]8_P#P@^D?\_-[
M_P"!;4?\(/I'_/S>_P#@6U?BN)Q.(QF(E7KS<YR;;DW=MO=MO=G[=AL-A\%A
MX4,/!0A%)1BE9)+9)+9&Q121H(HUC4G"J ,GFEK W"BBB@ HHHH **** "BB
MB@ HHHH **** /A3Q%_P32_;$_9Z^*7QC^-?[#O[;]K#HOQ;U?4?$7B?X2_$
MSP"=9TTZI<PE99K&XL[NTGM'8*J 8D#;4W^84%<5^QW_ ,$E/BQ\=OA'^S/X
MY_X*5_%D:WI7P9\">'KGP+\"](\(/I&G:-JMOIMO%'/K#3W$\VHWL 0(5/D0
MK(K@1!7=&_2"B@"CXFM_$MWX=O;;P;JUC8:M):NNFWNIZ<]W;P3$'8\D"30M
M*@."466,D<!EZU^?WPE_X(Q?M4_"'_@IKXW_ ."J6C_\%!/"M[X\^(.B-H_B
M+0[[X'S?V0UAY=G''#'&FNK,GEC3[7:QE+$Q_,6W$']#Z* $C#A%$K M@;BJ
MX!/L,G%?%7P^_P""8'QZ_8R^(/C^_P#^":'[37A3P!X'^)VMR:WK7P]\=?#N
M;7;'P]J\JA)[_2#;ZA9F .JH3;3"6(&-=NU0$'VM10!X'^P)_P $^/A3^P+X
M*\1VGA;Q#JGBKQIX^\13>(?B9\1?$0C_ +2\3:M*S,\\HC 2*)2[B.!!LC#M
MU9G=N;_;-_X)N6W[0'[0/@3]MWX ?%1?AK\<OAQ!+9:)XP?0QJ5AJ^ERAQ+I
M6J6?FPM<VS>9(5*2QR1-(SHV<8^H** /DWX<?\$V_%OC;]KO0OV\/V]?C/I7
MQ)\>^"=.GL?AGX?\->%GT?PWX/6?B>YM[::YNIKB\D &ZXFF.T !479&5^LJ
M** "BBB@ KPO_@GO_P D3U;_ +'O6?\ TI->Z5X7_P $]_\ DB>K?]CWK/\
MZ4F@#W2BBB@ 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
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ KPO_ ()[_P#)$]6_['O6?_2DU[I7A?\ P3W_ .2)ZM_V/>L_^E)H
M ]THHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH *\+_ .">_P#R1/5O^Q[UG_TI->Z5X7_P3W_Y(GJW_8]ZS_Z4F@#W2BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KP
MO_@GO_R1/5O^Q[UG_P!*37NE>%_\$]_^2)ZM_P!CWK/_ *4F@#W2BBB@ 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@ KPO_@GO
M_P D3U;_ +'O6?\ TI->Z5X7_P $]_\ DB>K?]CWK/\ Z4F@#W2BBB@ 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
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KPO_ ()[
M_P#)$]6_['O6?_2DU[I7A?\ P3W_ .2)ZM_V/>L_^E)H ]THHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *\+_ .">_P#R
M1/5O^Q[UG_TI->Z5X7_P3W_Y(GJW_8]ZS_Z4F@#W2BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KPO_@GO_R1/5O^Q[UG
M_P!*37NE>%_\$]_^2)ZM_P!CWK/_ *4F@#W2BBB@ 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 **** "OGK]J'_@JG^P/^QU\0_#GPJ^/?[37@_1M?\ $.OIIDNF
M3>)[%)]%5K6>X6\U".2=7M;7]R(_-92/,GB7&&)&U_P4B^)/Q9^#O_!/[XT_
M%;X$I+_PF/AWX8:WJ/AR2"+S)(+J*RE=)D3!WO'CS N#DH!@YQ7Y7_\ !'?X
MC_LK?%O]A/\ 8Y_X5=)I%YX^B_:@N%^-1NBDNL7NL3>'O%DANK]WS+<">-E:
M.1RP*#8#F-E4 _9SX:?%?X6_&GPE;^/_ (._$G0/%FA7>?LNM^&=9@O[2;'7
M9- S(W4=#4/Q;^,GPD^ ?@2]^*/QP^)N@>$/#>G &^UWQ+JT-E:09.%#2S,J
M@D\ 9R3P 37@?[-/_!.[X=_LG?\ !0'XK?M'? GP!IOACPG\4O!&B+K&D:.D
M<%M_;UI=W_GSI;I@1>9!-;%BJ@,ZNW+.U?%'PK^+B?\ !57_ (.4O&?P^\?%
M=4^%7[(GAVZ_X1/PU<#S+.;Q8L\%I-J$\1RCS1RR7:QL<^7]CB90K%S0!^F_
M[/G[6'[,W[5^@WGB;]FGX\^%/'-EITXAU*3PSK<-VUE(02J3HC%H6(!(5PI(
M&17H-?DO_P '$'Q(U?\ X)D?M)?L\_\ !7OX,VIT^_@\8GP-\6+:P4(/%>@W
M$3726MR!Q*\<=K=F)VR4=HV_Y9J!^L&DZKIVO:5:ZYH]XEQ:7MND]K<1'*RQ
MNH96!]""#^- %BBBB@ KPO\ X)[_ /)$]6_['O6?_2DU[I7A?_!/?_DB>K?]
MCWK/_I2: /=**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ;+%'/&T,T
M:NCJ5=&&0P/4$=Z_"#_@KU_P0M\3_L1_M.?#C]O;_@C+KMUX4^(OBCXF&PT?
MX:6T=O\ 84U0Z7J5^TMDUP1%%&\-E<1FTE5HR9]J&-/W=?KQ_P %%OB)\:OA
M'^PW\4/BC^SGHNHZEXX\/^$KC4/#6GZ3IS7=S<W,6'$:0JCF0L 1@*3@GBOC
M;XV_\%B_^"=G[3(_9>^*NA?M0>$O#<NB?'F#4O&GACQIKD&E:KX70>%O$,4H
MOK:Y9'B6.:6.$RX,3.Z!7;>N0#KO^"(O_!;JT_X*76WB']G3]H/X:2_#S]H#
MX=0-_P )MX/GMI((KR.*58);JWCE_>0%)F5);>3+1-(F&<-\OR'_ ,&SEE=Z
M=_P6 _;ZL?$^X:S%X\NUG$OWR1K^J>:>>?O;/S%>R_\ !/+X,W7[9'_!=_XM
M?\%@?A-X&U#1/@RG@>'PIX1\37^F261\>ZCY-K#/J-O%(JO):(MNR"8C$FV$
MJ21($A\<_"F/_@D#_P %X=<_X* >+XFT[]GS]I/PR^D^-?%K1D6'@WQ/O@E2
M:_<#%O;W$EN2MQ)B,/>RABHCS0!B_P#!Z=>VD'_!+'P19S$&6?X[Z7Y*GK\N
MCZR2?RX_&OTU_8]T[5](_9(^%ND^(%<7]K\.=$AO1)]X3+80J^??<#7YL?\
M!3OPGX0_X+V_M=_ _P#8V_9=\26GC;X-_#3Q5)XK^.WQ(\/W"W6A0!41(-(M
M[V,F&YO98C<H4B9S$+A68820+^MD<<<4:Q1(%50 JJ,  =A0 M9/CKQ#JGA3
MPC?^(]$\*W>N7=I 9(-)L643739'R(6XS]?2M:B@#PO_ (:P^-G_ $8_X[_\
M"K;_ .*KYR_9[_;5^/GP>\':AX4\!?L!^/O'-C)XDU"[?6='G58HY9)V+VY
MB?YHSP3G\!7Z UX7_P $]_\ DB>K?]CWK/\ Z4F@#RW_ (>4_M9?](G_ (I_
M^!8_^1Z/^'E/[67_ $B?^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!
M8_\ D>C_ (>4_M9?](G_ (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_
M^1Z/^'E/[67_ $B?^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!8_\
MD>C_ (>4_M9?](G_ (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_^1Z/
M^'E/[67_ $B?^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!8_\ D>C_
M (>4_M9?](G_ (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_^1Z/^'E/
M[67_ $B?^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!8_\ D>C_ (>4
M_M9?](G_ (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_^1Z/^'E/[67_
M $B?^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!8_\ D>C_ (>4_M9?
M](G_ (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_^1Z/^'E/[67_ $B?
M^*?_ (%C_P"1Z^QJ* /CG_AY3^UE_P!(G_BG_P"!8_\ D>C_ (>4_M9?](G_
M (I_^!8_^1Z^QJ* /CG_ (>4_M9?](G_ (I_^!8_^1ZR]>_X*M_M&^&M2TS2
M-<_X)>?$:TN=8NC;Z;!=:HJ/=2A=Q2,&W^=L<X%?;5>%_M8?\EL^!_\ V/<O
M_I,U 'EO_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K+_I$_P#%/_P+'_R/7V-1
M0!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D3_Q3_P# L?\ R/7V-10!
M\<_\/*?VLO\ I$_\4_\ P+'_ ,CT?\/*?VLO^D3_ ,4__ L?_(]?8U% 'QS_
M ,/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/_%/_ ,"Q_P#(]?8U% 'QS_P\
MI_:R_P"D3_Q3_P# L?\ R/1_P\I_:R_Z1/\ Q3_\"Q_\CU]C44 ?'/\ P\I_
M:R_Z1/\ Q3_\"Q_\CT?\/*?VLO\ I$_\4_\ P+'_ ,CU]C44 ?'/_#RG]K+_
M *1/_%/_ ,"Q_P#(]'_#RG]K+_I$_P#%/_P+'_R/7V-10!\<_P##RG]K+_I$
M_P#%/_P+'_R/1_P\I_:R_P"D3_Q3_P# L?\ R/7V-10!\<_\/*?VLO\ I$_\
M4_\ P+'_ ,CT?\/*?VLO^D3_ ,4__ L?_(]?8U% 'QS_ ,/*?VLO^D3_ ,4_
M_ L?_(]'_#RG]K+_ *1/_%/_ ,"Q_P#(]?8U% 'QS_P\I_:R_P"D3_Q3_P#
ML?\ R/1_P\I_:R_Z1/\ Q3_\"Q_\CU]C44 ?'/\ P\I_:R_Z1/\ Q3_\"Q_\
MCT?\/*?VLO\ I$_\4_\ P+'_ ,CU]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(
M]'_#RG]K+_I$_P#%/_P+'_R/7V-10!\2^$_^"K?[1OCC39-7\*_\$O/B-J-M
M%=26\D]AJBRHLL;;70D6_# \$=JU/^'E/[67_2)_XI_^!8_^1Z]2_P"">_\
MR1/5O^Q[UG_TI->Z4 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\
M%/\ \"Q_\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__
M  +'_P CU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\
M\"Q_\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'
M_P CU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_
M\CU]C44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P C
MU]C44 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_\CU]
MC44 ?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P CU]C4
M4 ?'/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_\CU]C44
M?'/_  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P CU]C44 ?'
M/_#RG]K+_I$_\4__  +'_P CT?\ #RG]K+_I$_\ %/\ \"Q_\CU]C44 ?'/_
M  \I_:R_Z1/_ !3_ / L?_(]'_#RG]K+_I$_\4__  +'_P CU]C44 ?%7B?_
M (*G?M+>#M NO$_B7_@EK\2;"PLHO,NKR]U%8XHE_O,QM\*/>K5C_P %-OVJ
M=1LH=0LO^"4WQ0EAGB62*6*]#*ZL,@@_9^00<YKW3]N?_DT?Q[_V 7_]#6NZ
M^%W_ "3/P[_V K3_ -$I0!\K?\/*?VLO^D3_ ,4__ L?_(]'_#RG]K+_ *1/
M_%/_ ,"Q_P#(]?8U% 'QS_P\I_:R_P"D3_Q3_P# L?\ R/1_P\I_:R_Z1/\
MQ3_\"Q_\CU]C44 ?'/\ P\I_:R_Z1/\ Q3_\"Q_\CT?\/*?VLO\ I$_\4_\
MP+'_ ,CU]C44 ?'/_#RG]K+_ *1/_%/_ ,"Q_P#(]'_#RG]K+_I$_P#%/_P+
M'_R/7V-10!\<_P##RG]K+_I$_P#%/_P+'_R/1_P\I_:R_P"D3_Q3_P# L?\
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
M_8_^(7P;\'^(-7@TRV^(&MZEHNJZ1IMU,0L,>I2:9?3R6 =R$$SH8 QPTJT
M?6%%)')'-&LL3AE8 JRG((/0@TM !1110 4444 %%%% !1110 4444 %%%%
M!1110 454U_7]!\*:%>^*/%.MVFFZ9IUK)=:AJ.H7*PP6L$:EGEDD<A415!8
MLQ  !)-?)7P6_P""W?[$'[2?[?"?\$]OV?-=UGQ7XGAT>^U#5O$-II;0Z39B
MV5&,(EF*/<.P<$-$C1$<B0]* /L"B@D 9)P!U)K\Q/VE?^#JC]ACX'>-M:T'
MX9_!#XL?%;P]X7U![/Q)\0O OAV%]!MYD.V1(KN>9!.5;C=A8VX*.X(- 'Z=
MU!=Z7IE_/!<WVG0326LF^VDFA5FB;&-RDCY3CN*\2_X)^_\ !1O]E3_@II\$
MA\=?V5/',FHV$%S]DUK2-2M_L^HZ-=;0WD74&6V,5.596:-QDH[8./;=4U33
MM$TRXUK6+Z*UM+2!Y[JYG<*D4:*69V)X  !))Z 4 3T5XU^R9^U_I'[1?[''
MA_\ ;.^(7AJU^'GA_P 1:7<:U:IKFN*T=OHWGR_8[Z>>2.%8A/:K#<E2,1B;
M9O?;O/E'[-'_  6Q_8J_;%_;JU?]@S]FW5-=\2:[X>\+WNLZWXF&DM:Z7#]F
MN+:!K:-IRDTTA:Y!WK'Y6%RKMF@#Z\HHKY+/_!5JS^)^L^*4_8F_8^^)7QVT
M#P/JDVF^)O&G@NXTBSTEKV$9GM;"74KVW;4YH^C?9T>/) $C%@" ?6E%>+?L
M-?M^?LW_ /!0SX4W/Q4_9X\1WK_V5J4FF>*/#6O6!LM7\/:A'P]G?6K$M#*I
M!Z%D;!VLV#CVF@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***\ _;O
M_P""G7[&/_!.#P'/XW_:D^+$>G2I;+/:^'M*M7O=4NU=F2,I;Q E$=T9%EE,
M<6Y2"X(- 'O]%>9_L;?M0^$/VU/V7_!7[57@'P_J6E:+XYT9=3TW3]8$8NH(
MF9E591&S(&^7)"LP&>IKC/\ @H1_P4M_9?\ ^":'PST[XA?M$ZSJEQ>^(+YK
M'PEX/\+Z=]MUGQ!=* 6BM+?<H;:&7<[LD:[T!8,Z!@#W^BOS/_9;_P"#I?\
M8,^._P"T)8?LR_&/X8_$CX+>)-9NX[;1I?B9HL-M9S2RMMACEDCF9K9G) #2
M((\G!D'&?TPH @T_2],TB VVE:=!:QM(SM';PJBEB<EL #DGJ:GKR+XI?M4?
M\('^UM\+?V2?#G@3^W-4^(.FZYK&M7RZIY(\.Z/IL,0:\>,1.9O-N[JTMD0M
M&,RNVX^64;Y4_;B_X.._V._V._C!K_P%\&?"3XE?&#Q)X.E\OQPWPS\/I=6'
MAV4??@NKJ215$RX.Y4#*I#*[(ZLH /T(HKY8_P""8O\ P6)_8P_X*Q>#=3UW
M]FCQ+J5GKF@+&WB+P7XHM$MM4T]'.$F*)))'+"Q! DB=P#@-M8@5ZM^V#^V1
M\ /V%?@I>?'G]HSQ@=*T6"YBL[&VM;9KB]U6^ER(;*SMTR]Q<2$$*BCH&9BJ
MJS  ]1HKY/TC_@JSH/@_XB>#/ G[87[*?Q'^!-K\2]133_A]XE\?R:3-IVHW
M[KOBT^YETZ]N#IUY(H)2&Y"!BK*&+*5KZPH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBJFOZ_H/A30KWQ1XIUNTTW3-.M9+K4-1U"Y6&"U@C4L\L
MDCD*B*H+%F(  ))H MT5\?\ P6_X+=_L0?M)_M\)_P $]OV?-=UGQ7XGAT>^
MU#5O$-II;0Z39BV5&,(EF*/<.P<$-$C1$<B0]*^P"0!DG '4F@ HK\Q/VE?^
M#JC]ACX'>-M:T'X9_!#XL?%;P]X7U![/Q)\0O OAV%]!MYD.V1(KN>9!.5;C
M=A8VX*.X(-?8_P#P3]_X*-_LJ?\ !33X)#XZ_LJ>.9-1L(+G[)K6D:E;_9]1
MT:ZVAO(NH,ML8J<JRLT;C)1VP< 'M]]86.J6DFGZG917%O*NV6">,.CCT*G@
MBGQ1101+!!&J(BA41!@*!T '85%JFJ:=HFF7&M:Q?16MI:0//=7,[A4BC12S
M.Q/   ))/0"OENQ_X*T_ ?P/_P $Y-#_ ."E'[5&G2?#GPIXFB:Y\.Z,]TVH
M7VIV\\\PTQ8(UBC:2XN[9(KD0A<1+*VYRD;2T ?5=%?E=X(_X.V/V"Y_C!IW
MPQ^/W[/OQF^$FGZU,HTKQ1X]\*PPVHC8@+-/'%.\L<>2,O&LJCJ2!DC]2-'U
MC2?$.D6NOZ!JEO?6%];)<65[9SK+%<0NH9)$=20ZLI!# D$$$4 6:*^-/^"A
MO_!=O]@+_@G)?V_@KXF>.+[Q1XSO;W[':^#O!=H+NX2<.J.MQ.S+;VQ0NN]'
MD$H# B-J^RZ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **\ _
M;O\ ^"G7[&/_  3@\!S^-_VI/BQ'ITJ6RSVOA[2K5[W5+M79DC*6\0)1'=&1
M993'%N4@N"#79_L;?M0^$/VU/V7_  5^U5X!\/ZEI6B^.=&74]-T_6!&+J")
MF95641LR!OER0K,!GJ: /3**\ _X*$?\%+?V7_\ @FA\,].^(7[1.LZI<7OB
M"^:Q\)>#_"^G?;=9\072@%HK2WW*&VAEW.[)&N] 6#.@;Y._9;_X.E_V#/CO
M^T)8?LR_&/X8_$CX+>)-9NX[;1I?B9HL-M9S2RMMACEDCF9K9G) #2((\G!D
M'&0#],*@CTO3(M0DU:+3H%NY8PDMTL*B1U'12V,D#TJ>O(OBE^U1_P ('^UM
M\+?V2?#G@3^W-4^(.FZYK&M7RZIY(\.Z/IL,0:\>,1.9O-N[JTMD0M&,RNVX
M^648 ]=HK\]_VXO^#CO]CO\ 8[^,&O\ P%\&?"3XE?&#Q)X.E\OQPWPS\/I=
M6'AV4??@NKJ215$RX.Y4#*I#*[(ZLH]A_P""8O\ P6)_8P_X*Q>#=3UW]FCQ
M+J5GKF@+&WB+P7XHM$MM4T]'.$F*)))'+"Q! DB=P#@-M8@4 ?4]%?.7_!13
M_@J1^RW_ ,$R_!>CZ_\ 'J\UO5==\47,EOX/\">#M,^WZUKLL8!D^SP;E&Q
MR[I'94!91DLRJ?FK]C?_ (.?/V$/VH_VA[+]E;XD?#WX@_!OQKJUZEIHEI\2
M](AMK>\N)"!#;F6.5F@FDR JRHB,655=F900#](J*** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHKXT_;7_X+M_L!_L2_%#0/@/XF\<7WB[QWXB\
M10:-:^&O!MH+K[).]RMLYN;EF6WA\J1L21[VF4C'ET ?9=%%?$__  40_P""
M[7[)_P#P3[^)X_9\D\!^._BG\2H].2_U'P1\,-"%_<:1;.H:.6]D9U6W#J0P
M4;Y-K(Q0*ZL0#[8HKXH_X)@_\%Z_V'/^"IWBG4?A5\)I_$/A'Q_I5O)<7/@7
MQS916U[/#&<22V[12R1SA"1N4,)%&24"C=7VO0!!I^EZ9I$!MM*TZ"UC:1G:
M.WA5%+$Y+8 ')/4U/7B?PZ_;2\->.?C-\<?!6I:%::-X,^!DFGVFN_$*_P!<
M46L]_)IW]HW\#(8U6!+.VEM&DE,K9:=@53RR6^$_B?\ \'<O["/@#Q =2T+]
MFKXX^)/A\M^;1?B?IW@^&#2KQ@^W?;?:;B-I4Z_?\M^/N4 ?JQ17F_[)O[6W
MP _;@^!6C?M'?LS_ !!MO$GA36T;[/>0HT<D$J'$EO/$X#PS(W#(P!'!&003
M\_?MX_\ !:?X'?L5?$.\^"/A'X"?%3XT^.](L8[WQ+X:^$/A%]4_X1V"1/,B
M?49P0EL70%U3YGVX9E565B ?9-%?)?\ P2X_X+-_L>_\%9= UQOV?Y]<T3Q-
MX6V'Q)X(\7V4=OJ-I&Y*K.HBDDCFA+@KN1B5. ZH64'ZTH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@#XU_P"#A#3K+4O^",?[04%];)*B^"5E
M"NH.'CN[>1#]0R@CT(J]_P $#_\ E#A^SU_V3RW_ /1DE0?\' 7_ "AH_:#_
M .Q#?_THAJ?_ (('_P#*'#]GK_LGEO\ ^C)* /<E_9<^'5Y^U;-^U]XDMDU7
MQ/;^#[?PWX9:\ME9= M%GN)[IK8G)22Z::-97&"R6L*= <_F]_P>%_ 'X4?$
M+_@G)H/Q6U'PG!-\0M$^(VEZ7X'O[:V#7UR;SS5FT]"!ND1U4R^6,_/ I'0Y
M_6>\O+33[26_O[J."""-I)IIG"I&BC)9B>   22>E?#_ (1^' _X*M?M=^$?
MVP_&-D[? #X+ZE+=_!33+J,A?''B/_5MXH93_P N-N 8[$D9F<R7((C:,. ?
M6G[//A[QQX1^ '@;PI\3M0:[\2Z9X/TRT\0W3R[VFOH[6-)W+?Q$R*YSWS7S
MK^Q+_P 9$?MX_M#_ +:%U^^TO0=5M?A%\/Y6_AL]&W7&KRIC@B75KN:$GJ?[
M-3T%>R_MQ?M)67[(/[(?Q$_:4N;074_A+PM<WFE6&TL;[4"OEV=J .2TUR\,
M0'<R"L__ ()[_LVWO[(_[%OPZ^ .NW9NM<T7P]'+XKOBX8WNMW+-=ZE<$CKY
MEY/<29_V^IH ^<?^#F[3K+4/^"'7QU6[MD?R[/0YHRR@[777M.(8>A]Z]?\
M^"-O_*)S]F__ +(IX;_]-T->3_\ !S%_R@\^/'_8,T7_ -/NG5ZQ_P $;?\
ME$Y^S?\ ]D4\-_\ INAH ^&_^#BGQ-\=/V'_ -N3]EO_ (*_^&OA[?>,/A[\
M([S4M&\;:7:#=_9J:@OD/-SQ&T\$\L:2MA%F@@5B"Z ])_P4_P#VVO@Y_P %
MC_\ @GM9?L3_ /!-#6(/B;XU^/;Z83;6L95/!.E6NI6]S=:CKF0?[.6-K;R5
M63#RR-F%9=O/LO\ P5D_;"\0ZK\>?A7_ ,$=_@=::6?'/[1D5XGB76]:TJ&_
MM_#?A.**9K^Z6UG5HKFYDAM[I84E5H@T+%U/R@_GE^V]_P $Z?VG_P#@VI^*
MT/\ P4N_X)5>,M8UKX,&>TM?BK\-?$%ZUPL,!<1K]H( \ZV=W*I<8$UM)*.6
M1VH _=3X'_#8_!KX*^#_ (0-KT^JGPIX6T_1SJER,27GV6VC@\Y^3\S[-QY/
M)KJ*XC]FGX\^#?VI?V>O!'[2/P]69=$\=>%K'7-,BN0!+#%<P)*(Y . Z;MK
M =&4UV] !1110 4444 %%%% !1110 4444 %%%% !1110 $ C!&0>H-?CSI.
MGV=G_P 'EFIW-M;HCW?P'66X95P9'%A$@8^IVHH^BBOV&K\@+/\ Y7)KK_L@
M _\ 2-* /U5^.GPQ?XU_!?Q7\'5\67VA+XK\/7FD2ZSIF!<V4=S"T+RPD_=D
M578JW\+8/.*E^'7P:^%/PD^%>F_ [X;?#W2=&\(:1I0TW3O#EE9(MI#:!=OE
M>7C#*03NSG<22V22:Z6O!_VX_P!J;Q=\%O#NG?!G]G;0+;Q+\;?B&L]G\-_#
M,[_N+=E $^L7Y )ATZS#K)*Y'SL8X$S),@H _.+_ ((!_LX:?\#?^"U/[=&D
M?L_6!T[X1>'=;AT6#3K3Y;.'4WNY)TM8AT/V4"\B"C)C5U!QN&?N_P#X+!^,
M?$@_9 ?]F_X>:K)9^+/CWXIT[X9>'KB _/;IJLA34+H=QY&F1ZA/N'0PBNV_
MX)[_ +#O@7]@#]G"R^"?A?6[C7M:O=1N-<\>>,K^,+=^)]?NV\R\U&?DX:1\
M!5R=D:1IEMNX^:ZK_P 9+_\ !8[3=)7]_P"'?V9?AJ^HW)'W1XK\2;H(%.>K
M0:3:W#<<@:HOKR ?4W@OP;X:^'G@S2/A]X.TF*QT?0M,M]/TJQB'R6]M!&L<
M4:^RHJ@?2OR,_9IT^SL?^#RG]H%[2W2/[1\"+2678N-SFQ\-@L?<X%?L/7X_
M_LZ?\KD_Q[_[(#9_^D7AR@#[=_X+7_%WQ]\"O^"4'QY^)WPPO9[77;'X?7<%
MC>VC%9;3[05MGG1ARKQI,[AARI0'M7GW_!MI/X.G_P"")OP);P2D"VZZ)J*W
M@@Q_Q^#5;P7);'\1FWDY]:^P_BW\*O ?QT^%OB/X+_%+P_%JOAOQ7HEUI.O:
M;,2%N;2XB:*5,C!7*,<$$$'!!!%?F]^PC_P2;_X*K_\ !*35/$?P._8M_;%^
M$?B/X':UK4NIZ58_&#POJ=SJOAV20 .T,=A-!',2JKO!FCCD9-ZI$7?(!XY\
M"/%-U^RC_P 'A7Q*^!_PYG-OX9^.?@A=0\0Z- <0#4$TA-1-TRCCS3-;73;C
MS_ITO]ZOVEK\*?\ @AI\-_B/^W=_P7D^/7_!3?Q=\29O'7A3X=+<^%O#WCXZ
M1#8V^N:BT4=C&UK##\B0+90SN$#/(B7-MYCN[L[?NM0 4444 %%%% !1110
M4444 %%%% !1110 4444 %?&O_!PAIUEJ7_!&/\ :"@OK9)47P2LH5U!P\=W
M;R(?J&4$>A%?95?'G_!P%_RAH_:#_P"Q#?\ ]*(: )_^"!__ "AP_9Z_[)Y;
M_P#HR2O<E_9<^'5Y^U;-^U]XDMDU7Q/;^#[?PWX9:\ME9= M%GN)[IK8G)22
MZ::-97&"R6L*= <^&_\ ! __ )0X?L]?]D\M_P#T9)7UQ>7EII]I+?W]U'!!
M!&TDTTSA4C11DLQ/   ))/2@#\F/^#POX _"CXA?\$Y-!^*VH^$X)OB%HGQ&
MTO2_ ]_;6P:^N3>>:LVGH0-TB.JF7RQGYX%(Z'/Z=_L\^'O''A'X >!O"GQ.
MU!KOQ+IG@_3+3Q#=/+O::^CM8TG<M_$3(KG/?-?)?A'X<#_@JU^UWX1_;#\8
MV3M\ /@OJ4MW\%-,NHR%\<>(_P#5MXH93_RXVX!CL21F9S)<@B-HP_T?^W%^
MTE9?L@_LA_$3]I2YM!=3^$O"US>:58;2QOM0*^79VH Y+37+PQ =S(* /%OV
M,([C]HW]N;]HS]LM;@&QT/4;?X0_#N[D3<(K71P\^K3H.C+)JUW-$3GYO[-0
M<8KWC]E+]F'X9?L?_ W1?@9\+--5+338?,U/5)8E%UK6H2?-=:C=./\ 6W,\
MI:61SU9L#   P/\ @GO^S;>_LC_L6_#KX Z[=FZUS1?#T<OBN^+AC>ZW<LUW
MJ5P2.OF7D]Q)G_;ZFM+]KK]JCPQ^RA\,4\577AZ\\2>*-<OETGP!X$TAE_M#
MQ1K,JL8+&W!X4':SR3-\D$,<DKD)&30!^6_[/_[,&@?"W_@[V\=7G[+VAQ:-
MX:MOA"^O?$W3])C$5G!=7]O"ODE5PJM-<-:W>SJ6+N!@'#O^"@WQ.U']K?\
MX.G?V7_V(=8E,_@[X36#^*KG3'.8FUH6%WJBW#KT8JEIIZID$J2^,!S7Z"?\
M$WOV'-:_92\,>+OB]\<-=LO$/QM^,6O_ /"1_%OQ/8H1 ;HJ5M],M-WS"QLH
MCY$(;D@.Y"[]J_F]\2/#EW\+?^#U;P-XA\41&&V\?_#I[G1)Y1A7"^&KZTX)
MXYEL)4X[G'>@#[,_X.4/A'HWQ=_X(P?&>'4;16N_#>F67B'2;G'SVMQ9WT$I
M=#V)A\Z//]V1J]!_X(C?M3>*/VSO^"5?P7_:!\=:G)?:]J/A9M.UZ^G?=)=W
MNGW,VGS7$A_ORO:F4^IDSTK _P"#@OQ+9^$_^",G[06J7\H1)?!'V-2QQ\]S
M=06Z#\6E4?C7+?\ !LS\.];^&O\ P1(^".E^(;5X;G4K'5M76-UQ^XN]8O;B
M!A[-!)$__ J /O&BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H(!&",@]
M0:** /QYTG3[.S_X/+-3N;:W1'N_@.LMPRK@R.+") Q]3M11]%%?JY\=/AB_
MQK^"_BOX.KXLOM"7Q7X>O-(EUG3,"YLH[F%H7EA)^[(JNQ5OX6P><5^55G_R
MN377_9 !_P"D:5^O] '-?#KX-?"GX2?"O3?@=\-OA[I.C>$-(TH:;IWARRLD
M6TAM NWRO+QAE()W9SN));))-?D?_P $ _V<-/\ @;_P6I_;HTC]GZP.G?"+
MP[K<.BP:=:?+9PZF]W).EK$.A^R@7D049,:NH.-PS^CO[<?[4WB[X+>'=.^#
M/[.V@6WB7XV_$-9[/X;^&9W_ '%NR@"?6+\@$PZ=9AUDE<CYV,<"9DF058_X
M)[_L.^!?V /V<++X)^%];N->UJ]U&XUSQYXROXPMWXGU^[;S+S49^3AI'P%7
M)V1I&F6V[B <3_P6#\8^)!^R _[-_P /-5DL_%GQ[\4Z=\,O#UQ ?GMTU60I
MJ%T.X\C3(]0GW#H817I.K?L6?!;6_B7\+/'&IZ#!/IOP9T*ZL? 'AB:V5[/3
M;F5+6&*_4-G]_!;VS00MCY%N9B.6!'D6J_\ &2__  6.TW25_?\ AW]F7X:O
MJ-R1]T>*_$FZ"!3GJT&DVMPW'(&J+Z\_75 'P;_P<J?!;X*?%C_@CQ\7/$'Q
M?T.QDN?!NCQZSX3U:XB7S].U1;B)(?)<\H92_D,!]Y9B/2O2/^"'O@GXF?#S
M_@DA\ /"?Q>^TC7(/AS9RR0WF?-@MI=TUI"P/*F.VD@CVGE=FT@8Q7!?M#>"
M+;_@L'\>=/\ V?+/_2/V;?A/XNCOOB?JJ\P?$#Q)929A\/VYZ2V-I,/,O)1E
M7G1+=/FBE9/N:...*-8HD"JH 55&  .PH _'K_@\GTZR?]COX'ZHULAN(?CQ
M9Q12[1N5'T^\9P#Z$HA/^Z*_8:OQ_P#^#R7_ ),K^"G_ &7ZP_\ 3;?U^P%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 ?&O\ P<(:=9:E_P $
M8_V@H+ZV25%\$K*%=0</'=V\B'ZAE!'H15[_ (('_P#*'#]GK_LGEO\ ^C)*
M@_X. O\ E#1^T'_V(;_^E$-3_P#! _\ Y0X?L]?]D\M__1DE 'N2_LN?#J\_
M:MF_:^\26R:KXGM_!]OX;\,M>6RLN@6BSW$]TUL3DI)=--&LKC!9+6%.@.?S
M>_X/"_@#\*/B%_P3DT'XK:CX3@F^(6B?$;2]+\#W]M;!KZY-YYJS:>A W2(Z
MJ9?+&?G@4CH<_K/>7EII]I+?W]U'!!!&TDTTSA4C11DLQ/   ))/2OA_PC\.
M!_P5:_:[\(_MA^,;)V^ 'P7U*6[^"FF749"^./$?^K;Q0RG_ )<;< QV)(S,
MYDN01&T8< ^M/V>?#WCCPC\ / WA3XG:@UWXETSP?IEIXANGEWM-?1VL:3N6
M_B)D5SGOFOG']C".X_:-_;F_:,_;+6X!L=#U&W^$/P[NY$W"*UT<//JTZ#HR
MR:M=S1$Y^;^S4'&*]I_;B_:2LOV0?V0_B)^TI<V@NI_"7A:YO-*L-I8WVH%?
M+L[4 <EIKEX8@.YD%9__  3W_9MO?V1_V+?AU\ ==NS=:YHOAZ.7Q7?%PQO=
M;N6:[U*X)'7S+R>XDS_M]30!O_LI?LP_#+]C_P"!NB_ SX6::J6FFP^9J>J2
MQ*+K6M0D^:ZU&Z<?ZVYGE+2R.>K-@8  'Y5?L_\ [,&@?"W_ (.]O'5Y^R]H
M<6C>&K;X0OKWQ-T_28Q%9P75_;PKY)5<*K37#6MWLZEB[@8!Q^I'[77[5'AC
M]E#X8IXJNO#UYXD\4:Y?+I/@#P)I#+_:'BC6958P6-N#PH.UGDF;Y((8Y)7(
M2,FO/?\ @F]^PYK7[*7ACQ=\7OCAKMEXA^-OQBU__A(_BWXGL4(@-T5*V^F6
MF[YA8V41\B$-R0'<A=^U0#TO0_V7?AWI_P"U'KW[7>MVR:KXPU/PY9>'M'O;
MRW4G0]*@,LKVML3DIYUQ/++*PP9,1*V1$M?F%_P>)_LW^ /B/^R/\*OB?X:\
M(QR_%K_A;VF^&/!5YI\0&H7\=[;W;-8*1AG4S10R*.=CCY<>8V?U^UG6=(\.
MZ1=^(/$&JVUC86%M)<7U]>3K%#;PHI9Y'=B%1%4$EB0  2:^*?A#\*[O_@IG
M^V'X8_X*'_$W1YX/@]\*TN$_9S\.ZC;M&_B&_G 6X\7SQ, 5A956.P1QNV W
M6$,B9 /LOP/I_B#2?!6CZ5XLU(7NJVVEV\6IW@/^ON%C422?\"8$_C6I110
M4444 %%%% !1110 4444 %%%% !1110 4444 %?CS_P=B:=9/XC_ &.-4:V0
MW$/QY2**7:-RH[V;. ?0F-"?7:/2OV&K\@/^#L+_ )"G['O_ &7^#_T*VH _
M7^O-?V</V7/AU^S9#XLU+PQ;)=^(/'?C#4?$GC#Q+/;*MWJEW<W$DD:R,,DQ
MV\+1VT*9PD4* <Y)]*KBOVA?V@?AA^R_\)-6^-/Q=UI[/1]*1 (K:!IKJ^N9
M'$<%G:PK\]Q<S2LD44* L[NJ@<T ?DS_ ,%%/V8- TW_ (.D_P!DWQW^S5H<
M6D^,/$FE3Z_\2FTF,1":PLS<I)>W&W^*:V6>U+M]_P N->2>?UV^,_Q8\'_
M?X0>*OC?\0;[[-H/@_P[>ZUK-QQ^[M;6!YY2,]]B' ]:^<?V /V0_B':?&/Q
MM_P4B_:ZT&*T^,GQ5M(;&Q\.B99T\!>%H2&L]!CD7AYR0)[N1/D>X)"C:@9X
M?^"M#O\ &/P]\*O^"?NF,7F^//Q+L]/\2PH<,/"NE_\ $VUIL] LD%K'9G/4
MWZCG.* ,+]C7]AT_&?\ X)?:/\.OVF4FM]6^-&OI\1_C!IZ+\VI7&IZI'K%Q
MI,V<8A,(ATZ11U@B9!US7UGXP^$'PL^('PLOO@?XS^'NCZCX/U+2&TJ]\,W%
M@ALI+(IY?V?R@-H0+@  #&!C&!71*JHH1% 4#  ' %?+7_!03XR?%+XC2'_@
MGE^QWKHMOBIX^T<_\)%XJC4R0_#OPW,6BN-9N,$?Z3(HDALH,JTL^7R(X)6
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
M-W@Y-&\,>'X"L2,V^XO)V.9;JXDP#+/(V69SCL%"JJJ/3J** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ KX]_X+;> /VG/VB?V#/B'^R/^R[^S!KOC
MCQ!\0/#J6-KK$/B'1M/TW3R;F-I//:]OHIRPCC8@1PNI+*"R_-M^PJ* /D/_
M ((J>!/VF/V?OV#?AW^R=^U!^S'KO@;Q#\/O#0TZZU2?Q!HVH:=J)6=]AMWL
M;V:8,8V4L)8HP"& 9N"?#/\ @M5:_P#!:WX\^.M/_9]_8>_8?T#Q/\'K*6"Y
M\:WOB?Q]I]G%XZ^0.=,DA6_M[F+3U8A9D)1KDHR-^X+";]+Z* /R4_X:A_X.
MYK#0%T'PQ_P2P_9XTR."V6"Q6W\46WEVJ* JA(QKX4!5  '08'!'%?0FN_LT
M_MD?%7X6_LJ?L[?M)37WB>Z/CB/X@?M%^)WN(GM(+S3E?5+?1U56V-;G5YK2
M*)(P8Q!IQX P#]ST4 9GC76==\.>#=6\0>%_"%SXAU.QTV>XT[0+*ZA@FU*=
M(V:.V22=TBC:1@$#2,J*6!9@ 37XVV^H?\'2UG^UCXD_:VG_ ."8?PAUW6[Z
M!]-\%V_BKX@V-TG@[1F(+6-B(=8A16F95>XN"GFSLJ@E8TCB3]I:* /S*_9X
M\<_\'+G[1?[2_@3P9^V;^SA\-/@U\(K+7H]4\;Z_\/O$$$^IW\-J&N(M/!&J
MW3K#<3QPQ2>7&I,3R OM)4^L_P#!77_@FY\2?VHO%?PG_;7_ &29M*MOCI\
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
MVO>)-6?5O&GC;Q-XYM9]6\1Z@X"FXNI4UQ$^5 L<<4:)%#$B1QHBJ!7[544
M?$/_  3$N_\ @M#\5_C3XK^,/_!5SP)X4^'&DZ3H,6E^ ? '@#4X9K&^FN)O
M-NM0NC'>W3/-&MO!%'OD  GF*HN6)YKP%^WA_P %O? _QY\6_#G]HC_@CO%X
MK\*Q:Y<)X*\7?"?X@Z7"LUB)6$#3QZE>@.6CVEI&:W*G.81G _0.B@#Y!^!7
M['/QL^-7[<EI_P %+/VV_#.C>'=?\+>%9_#OP@^&.C:J-2'A:UN2QO=0O;T(
MJ3ZA<*QBVPCR88?E#S,Q<?7U%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%>(_MK_\%$/V
M4/\ @G]X5TSQ!^T?\16L]0\077V3PIX2T:QDU#6O$%T2%$%E90!I9F+,B[L!
M%9T#,NX9 /;J*^3=%_X**?M3ZSI2^//^'.WQ\M_"KCS%N;G5O"T>L"#&?,;2
M7U<7 ;UB_P!9Z*3Q6Q^R5_P5F_9(_;:_:$UO]FKX!ZIX@N?$OA;PK_;'BZQU
M[PS=Z5/H<HNQ;-I]S!>1QR+<JYRRA2JC'S'<* /IJBBB@ HHHH **** "BBB
M@ HHHH **** "BBOE'XX?\%??V=OA[\?+O\ 9'^ W@+QM\<_BSIJ%M;\#_"3
M28KTZ$,[<ZE>W$T-G8@,=K"2;>I(#("R@@'U=17R5XC_ ."I'B;X"Z-)XT_;
MC_8$^+OPA\)0J'O?'+?V5XGTG3(\#+WK:%>75Q:H"<&1X/*'4N!7KW[$_P"V
M+\(_V]OV==+_ &H?@3/=3>%-<U;5[31[F]@,4ES%8ZE<V'VC8WS(DOV;SD5@
M'"2J&"MD  ]7HHHH **** "BBB@ HHHH **** "BBB@ HJ-;JU>Z>R2YC,T<
M:O)"'&Y58L%8CJ 2K 'OM/H:^7/V\_\ @H]XZ_8O_:*^!?P*\*_L9^-/B39_
M&+Q4='U+Q/X<D9;?PR@EMX_-D"P2"5MLS2E'>!1'!(V\[2  ?4]%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "LOQIX+\+?$3PM?>"/&^B0:EI.I0&&^L
M;D$I,A(.UL=N!6I15TZE2E44X-J2=TUHTULT^C1%2G3K4W":3BU9IZII[IKJ
MF>+?\.ZOV(O^C;O#G_?E_P#XJC_AW5^Q%_T;=X<_[\O_ /%5[317M_ZT\3_]
M!U;_ ,&S_P#DCP_]5.%_^@&C_P""H?\ R)XM_P .ZOV(O^C;O#G_ 'Y?_P"*
MH_X=U?L1?]&W>'/^_+__ !5>TT4?ZT\3_P#0=6_\&S_^2#_53A?_ * :/_@J
M'_R)XM_P[J_8B_Z-N\.?]^7_ /BJ/^'=7[$7_1MWAS_OR_\ \57M-%'^M/$_
M_0=6_P#!L_\ Y(/]5.%_^@&C_P""H?\ R)XM_P .ZOV(O^C;O#G_ 'Y?_P"*
MH_X=U?L1?]&W>'/^_+__ !5>TT4?ZT\3_P#0=6_\&S_^2#_53A?_ * :/_@J
M'_R)XM_P[J_8B_Z-N\.?]^7_ /BJU/!?[#W[)GP[\4V/C?P1\"=#TW5M-G$U
MC?6T3AX7 (W+ENO)KU6BHJ<2\1U:;A/&U7%JS3J3::>Z:OJF73X8X;HU%.G@
MJ*DG=-4X)IK9I\NC05^5?[:O_!'#]KO]G+_@H#-_P5N_X(QZYX>A\;ZUYO\
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
MKPS+J>GI%;Z/$EY- NI[2K-I99D1V95F& Y7!_66BB@ 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
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
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 **** "BN=^*7C?Q#\//!T_BCPS\)?$7C:Z@8 :!X6FT]+R53G+*;^ZM
M82!CH90QSP#7R5^R'_P7F_8Q_:Y_:_U;]A"+P=\1?AO\4=)2<'PO\5/#MOID
MUW/"-TMM#Y=U-NF$>90AV[XU+H6 - 'VO139G:*)I$A:0JI(C0C+'T&2!D^Y
M KY)O/\ @K5IUA^U]:_L*7'[!'QZ_P"%E7OA5O$MOI"67AIK9M(60Q->&\&M
M_9EC$H\LYD#;RJ8W,H(!]<45%8W$UW8PW=Q8RVLDL2N]M.4+PDC)1BC,I(Z'
M:Q&1P2.:\3_;R_X*"_L^?\$Z_A[X7^)?[1&M26FG>+/'NE^%=/:$IF.:\E(>
MX?<1B&"%)9Y&&2%CP 6900#W&BCKTJMK.LZ1X=TBZ\0>(-5MK&PL;:2XOKV\
MG6*&WA12SR.[$*BJH)+$@  DT 6:*^)O!W_!9>\_:$M]1\;?L.?\$]OC1\9O
MA_I=]-:O\1M#CTC2M-U1X7*2MIJZI>V\VH(K!EW)&!N4@9QFNH_9&_X+'_LK
M_MG_ +3L_P"Q[\-/#/CS0_B)HWA+4-=\:>$_'7@^XTB^\,K:W5A;K;723#8\
MLIOE=/(>5-L3%F&Y-P!]8T5\9_\ !1;_ (+8?!/_ ();RZ?J'[5W[,/QBM=
MUK5)K#0/%>A:9HM]I^HS1KO(79J@FA+)EU6>.)F ;"_*V$\.?\%E;3Q)X,B^
M(D/_  2^_:_@T6:U2YANY?@Y$\DD3#<'6WBOGG8;?FXC/'U% 'V;17S)^Q?_
M ,%A/^"?'[>OB^[^%_P ^.\/_";:>91J'@+Q/IEQI&M0-'GS5%K=HC3%,'?Y
M6\)_$17TW0 454\0:_HOA70;WQ1XDU2"QT[3;22ZO[VYD"1V\$:EWD=CPJJH
M))[ 5Y)^P)^W-\%O^"C/[,6B_M5? 6:[&@ZS=WEJ+3445+JTFMKB2%XYD4G8
MQV+(!GE)$/>@#V:BBO'/VT/V]_V6?V ?AY:_$3]IOXE1Z.FJW?V/P[HMG;27
M>J:Y=G 6VLK2$-+<2$L@.U=J[UW,H.: /8Z*^.+G_@J#^TW#X:/Q03_@C'^T
M<_@X)YQN@_AS^VO)QG<-%_M7[87Q_P L]N_M@'BO7_V)/^"@G[*G_!0KX=77
MQ&_9@^)2:LNE77V3Q'H5];/9ZKH5UR#;WEI*!) ^5< D%'V-L9@": /:****
M "BOD7X@?\%C?@1-\<M8_9>_9$^$GCS]H3XA>'7\KQ-I7PIT^VDTW0)<E1'?
MZK>SV]E;MN5EVB5V#*RE058!?%W_  5CL_V<M);Q3^W_ /L9_%;X'^&E8!_'
M&I6MAXCT.W+<(MQ<:#=7DEH68A09HD0L0 Y)% 'US17G/[(_[37@/]LO]F_P
ME^U!\+[6\A\/^,],^WZ3'J$8280^8Z#>H)VD[,X[9Q7HU !1110 4444 %%%
M% !1110 4444 %%%?+'QW_X*/>.O@S_P4N^%?_!/W2OV,_&GB31OB/X?FU*]
M^*NFNPTW1&0W(,3H(&639Y"M*S31&-;B(A9"P! /J>BH[JZM;&UDO;VYCAAA
MC+S32N%5% R6)/  '))J2@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M5>(OV1/@[\9-+LY9=+\+^/KW3]6:-21"U]:*T+MCHN;-DW'C<ZCJPH ^]_\
M@A;^Q=X(_8?_ ."8GPK^'OAW0H;?6O$7A>S\3>-+Y8P)KW5K^!+B4R-U?RE=
M+=#_ '($]Z^J?&/@[PK\0_"6I^ O'7AZSU?1=:T^:QU;2M0@66"\MI4*212(
MW#(RL5(/!!KSO]A+XE>&OC'^Q/\ "/XI^$+N.;3=>^&VB7MJT3 A0]C"2AQT
M93E2.H*D'D5ZM0!X9^Q'^SSX;_X)V?L5:5\!_$GC33X/#/PZ_MN2UUJ]OMD-
MGH?]I7EU:M<2RA0K164D(E8_*'C<@E0&/E,__!7Z3Q9\*[W]I+]G3_@G]\</
MB?\ ">P6:8?$#PU8:3;+JEK$S"2ZT[3KZ_@O[V$;3AQ;J'Y*;@":\%_X.[/C
M?X[^$W_!(.^T#P#J$L$7COXB:5X:\0SVKD,M@T5U>2(6'(5WLHHV'\2R,IX8
M@_>G[$MCX4TS]C+X2:=X#AACT.#X9:"FCI;@!%M1I\ BVX[;-N* ,']DK_@H
M?^R=^V]^S0_[6/[.GQ';7/"=I%-_:Z1:=,U_I<\*!Y;:>T16F6=5((15;>&5
MH]ZLI/@'PG_X.&/V#_C)\9?B5\(/"FD_$"&7X96D8OI=2\%W,%[K6I/<&W32
M]/TLC^T)[LLK?N6@C<;6)4*C,/CC_@BYI&J?LS_\'*_[9/[(GPSB:U^'VHZ-
M=^)9M'MAMMK.[^W:?/;;%'RH$35;J)5'\) Z+QT__!)3PUX>E_X.8OVY-9GT
M.TDO+&SB-E=R6RM+;^=/;&78Q&4WX&[!&<#- 'TG^SU_P<-?LH_%?]K"[_8W
M^._P1^*GP#\7_P!DW&J:1'\;O#D.BQ7MG##).\C,9V^S_N8I9 9,1L(F D+8
M4X?QB_X.4_V3?@-\0M"M_BI^R]\?="^&?B/5ET_1_C=K?PSFL?#=\[9*SV[W
M#I//!L!?<L6\HI98V S7@?\ P7?\&>$?$7_!=_\ X)_1^(?#-A?QZEXEDMM0
MBOK1)4N88]2M7CC=7!#*K2.0#T+$U[;_ ,'9&G6-[_P10^(%S=VJ226?B7P]
M-:NZY,3G5((RR^AV.Z_1CZT ?47[>/\ P4V_96_X)T_!D?'/]H+5_$-QHTT$
M<MB?"GABZU/[4)"%B'G1)]F@$A("-/+$CD@!B3BOF'XZ_P#!S;^QC\&_@[X4
M^*OA_P""/Q5\<3:_X/T[Q-X@TGP?X>BN1X/LKV!9X%U6Z,PM[:=HG5Q$'<[2
M&;:K(S<U_P %1IY=2_X-2+F[OW,TLOP%\"RR/)R6<RZ.VX^^>:^C/^"'/PV^
M'_AG_@CW\!M"T#P7IEK9:Y\+M-OM:M8K) E_<W5LK7$LPQ^]:0L=Q;.1@= !
M0!Z'_P $]/\ @HU^R_\ \%.?@)'^T%^RYXINKK3H[QK+6='U:V%OJ.CW@4,;
M>YB5F"MM96#(SHP.58X.,/XC_P#!27PA:_'/Q#^S!^S!\"_&?QN\?^#[>&7Q
MKI7@233K>Q\-&4%H8;[4=2NK:VBGD"L5MT>2;"DLB@$U^5G_  1HT74OV /^
M"N__  4%^!OP-TIO^$+\&^$-3U_1M!C),$4UK<^?IUM@?W(KN>$=RJFO?O\
M@SN\2K\0O^"=GQ)^*?B+5VU/Q?XD^/NLWOC#5[I]US>74EAILOF2-U.?,9_3
M<[D<DT ?8?[&_P#P5K_9T_:Z^./B;]DO4O"?BWX8?&7P>ADU[X6?$G3H;34O
M) 5C<6SP3307<.UU</%(2497VA&#'L_V@_VY/#/P<^->B?LN?#KX3^)_B9\4
MM>T";7H/!/A%[*%[#1XIA"VI7MS?7$$%K;F8^4F7,DDF51&PQ'Y>_P#!R%H^
MJ_L[_P#!7K]A?]L;X+Q-:>-==\7OX?OY+(;9-0MK74M.5+=\<N)(M5NX&[E)
M-N<8QZ__ ,%>_P!E'_@J9^SW^WUI'_!8;_@ECI5EXYU"U^'T?A3XB?"Z]A,\
MVHZ?%<//F*$,C7$;$QDQPNMPDD*L@D$CJH!]A_LZ_P#!1_0_CK^UAK7[%7BK
M]FCXD?#CQ_X<\%GQ-K-AXWM+#[,UD;J&VBDM;FRN[B*[CD>23$B-A3"ZMM<%
M1QFL_P#!;C]DBV_X*'>#/^":/A[PSX\U#Q]XPN+A/MMWX1N-,TZQBBMKF?S3
M)?"&2Y1_LSJDEO')$QSB3Y2*\=_X)'_\%H_V3/\ @J1^T>^G>./@MJOPJ_:1
M\(^#[_1M0\*:W,S+>:<;JVFNX[>5EC:1HIK:-S!-&DL0:3;O7S6'D'_!1*")
M?^#M+]C>Y6,!W^%UVK-CD@+XB('_ (\?SH T?^#G7_@IA\?OV>/ _AG]DSX5
M? /Q=::#XZ\7:98^*?B3):HEIJ$ DBNFTC3?G#332JNR5V"HJ!XAN+L8_P!&
M?@9^UK:?%KP%XD^)/Q&^ GQ"^#^E^%T:;49OB[IUEIH:V6)I9;I6@NYT$,:J
M=[NR[<>G-?FY_P '>'_)(?V9_P#LX"S_ /2=Z]:_X.P/BEXR^&G_  1H\96/
M@^]FME\4^)]&T35YK=RK"RDN?.D3(Y"OY"QL.ZR,IX)H ],^+G_!:.P^'/P:
MN/VK_"7_  3_ /CMXR^"EE;?;+GXHZ'I.E0PS:>.3J-OIUU?Q:A)9[/W@N'M
MXXS'^\#;,.?I']DW]K/X"_MO? ;0_P!I+]FOQW#XA\*:_"S6EW'&T<D,J,5D
M@FB<!HID8%61AD8R,@@GPK1/V2OVJOB]\";30_#_ /P4UFN_!/BCPE'!8P6G
MP>T(03:5<VH5%3:,!#"X QV(IW_!'_\ X)5^ _\ @D=\'?%7[/OPY^/FM^-M
M/UOQ,NNRQ:W;00OIT[V\<#!4B)P'6",Y/790!]=4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !5+Q'X<T/Q=H=SX:\2Z;'>6%Y'Y=U:S#*R+Z&KM
M% 'G'_#(G[-/_1'-'_[]-_\ %4?\,B?LT_\ 1'-'_P"_3?\ Q5>CT4 ><?\
M#(G[-/\ T1S1_P#OTW_Q5'_#(G[-/_1'-'_[]-_\57H]% 'G'_#(G[-/_1'-
M'_[]-_\ %4?\,B?LT_\ 1'-'_P"_3?\ Q5>CT4 ><?\ #(G[-/\ T1S1_P#O
MTW_Q5'_#(G[-/_1'-'_[]-_\57H]% 'G'_#(G[-/_1'-'_[]-_\ %5=\.?LS
M_ 7PCKEMXE\-?"_3+._LY/,M;J&-@T;>HYKNJ* *7B75;_0O#U]K6E^&KW6;
MFTM9)8-(TV2!+B]=5)$,37$L40=B-H,DB)DC<RC)'P;^RS;_ +>O@3_@J'^T
M!^TI\1O^"=OC#3_A]\7=+\):?X<O+;QOX6GO[ Z/!<P-+>6ZZJ J2?;)7_=/
M*RB)1M8L<??]% $&J:7IFMZ9<:+K6G07EG>0/!=VEU"LD4\3J59'5@0RD$@@
MC!!P:_,S_@G1_P $/+C_ ()C_P#!9_XA?M#_  (TU/\ A2/Q ^$>HP:-;?:5
M,GAO59-6TN=M+*L=[PE(I9(9 #A$:-SN0-)^G5% 'YY_\%*-"_X*'?M%?M>_
M!3PQX!_X)]Z]XC^!7PN^)</BSQO<MX\\.6MWXIO+-7&GM:VTVHJ?L\$K"YV7
M!B:9U0,D7EAC^@'AW5+[6_#]CK.I^'+S1[F[M(YKC2=1>!KBR=E#-#*8))(B
MZ$E6,<CID':S#!-RB@#\>/\ @XK_ ."?'_!0S]N']IOX-?&G_@GW^R3JB>+?
M@[>3W"_$B^\9:!817I$]K=6*VT<M]Y["">.=LRQQ8:5L*X;</K#]KK0/VT_V
MZ_\ @D9\2?@YXO\ V5-3^''Q>\2^$[?2TT"X\3:;>V<NHR2P[Y[6ZL;J<BV1
M@6W2K'(JJ?E;&3]KT4 ?#WP1_:W_ ."J'[.'PVTOX;?MT_\ !.;Q+\3?$6E6
M*6C?$;X >)-(U&SUYT4#[1-9ZG=6%Q:2, "YV,C,690@/EKYO\+OV%/VJOV_
MO^"JGA#_ (*F?MQ?!&#X2^$_A'H#:?\ "/X6W6MVVHZS?7+-,W]I:G+:L\,&
MUIRZ0([,K1QAL;',OZ4T4 ?DY_P<M?L@?\%"O^"GOP;\(_LQ_LE_L5ZU>V?A
M?QX^NZEXLUWQGX>L;6\$=I/;0K:QMJ)G97%S(Y,T<++L4;26.WZ2^%_[5/\
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
M !$_:?\ ^"V/A_\ X*X>)_V<]1^#OASP'\/)M$T[3/$LUB-=\9:K/#=VS7MU
M;V,\\<$$5M=M$IED,[F&+Y @&WS']M?]EO\ X*+?%G_@O-\$O^"B7PR_8-\0
M:A\./A#H!T/4C/XY\-0:AJJR/J2S75M ^I@! E\C(LK1LQC(81YX_66B@#\Y
M?^#BW_@GW^U3_P %$/V//A[JW[)'@N&[\??#SQ_9^*8?!NM:E:VTMS']GE22
M 2M+]G\Z.1XB1YNQE23:Y.W=Z+\1?V5/VF_^"LG_  3\^(/P'_X*,_"K0?A#
M>>.])M(?#GA#P[KZ:]<>&;ZU?SX]1N+V-8XYI'N1$3;191(8=GG,TKE?M6B@
M#\.?V+HO^#J7_@F7X=MOV%/#'['?@;XR^#M#=K/P-XRUOQ)!]ET^S!PBK<B]
M@E^RIG*PW$2S*HV(0H11^K/["O[/GQA^!_PPU+Q'^TY\1;+Q;\5_'FLG7OB)
MK>DV[0Z?'=F&*"*PL(V^:.RMK>&*&,-\SE9)6^>9Z]MHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BN=^*7C?Q#\//!T_BCPS\)?$7C:Z@8 :!X6FT]+R53G+*;^ZM82!
MCH90QSP#7R5^R'_P7F_8Q_:Y_:_U;]A"+P=\1?AO\4=)2<'PO\5/#MOIDUW/
M"-TMM#Y=U-NF$>90AV[XU+H6 - 'VO139G:*)I$A:0JI(C0C+'T&2!D^Y KY
M)O/^"M6G6'[7UK^PI<?L$?'K_A95[X5;Q+;Z0EEX::V;2%D,37AO!K?V98Q*
M/+.9 V\JF-S*" ?7%%16-Q-=V,-W<6,MK)+$KO;3E"\)(R48HS*2.AVL1D<$
MCFO$_P!O+_@H+^SY_P $Z_A[X7^)?[1&M26FG>+/'NE^%=/:$IF.:\E(>X?<
M1B&"%)9Y&&2%CP 6900#W&BCKTJMK.LZ1X=TBZ\0>(-5MK&PL;:2XOKV\G6*
M&WA12SR.[$*BJH)+$@  DT 6:*^)O!W_  67O/VA+?4?&W[#G_!/;XT?&;X?
MZ7?36K_$;0X](TK3=4>%RDK::NJ7MO-J"*P9=R1@;E(&<9KJ/V1O^"Q_[*_[
M9_[3L_['OPT\,^/-#^(FC>$M0UWQIX3\=>#[C2+[PRMK=6%NMM=),-CRRF^5
MT\AY4VQ,68;DW 'UC17QG_P46_X+8?!/_@EO+I^H?M7?LP_&*UT#6M4FL- \
M5Z%IFBWVGZC-&N\A=FJ":$LF759XXF8!L+\K83PY_P %E;3Q)X,B^(D/_!+[
M]K^#19K5+F&[E^#D3R21,-P=;>*^>=AM^;B,\?44 ?9M%?,G[%__  6$_P""
M?'[>OB^[^%_P ^.\/_";:>91J'@+Q/IEQI&M0-'GS5%K=HC3%,'?Y6\)_$17
MTW0 454\0:_HOA70;WQ1XDU2"QT[3;22ZO[VYD"1V\$:EWD=CPJJH))[ 5Y)
M^P)^W-\%O^"C/[,6B_M5? 6:[&@ZS=WEJ+3445+JTFMKB2%XYD4G8QV+(!GE
M)$/>@#V:BBO'/VT/V]_V6?V ?AY:_$3]IOXE1Z.FJW?V/P[HMG;27>J:Y=G
M6VLK2$-+<2$L@.U=J[UW,H.: /8Z*^.+G_@J#^TW#X:/Q03_ ((Q_M'/X.">
M<;H/X<_MKR<9W#1?[5^V%\?\L]N_M@'BO7_V)/\ @H)^RI_P4*^'5U\1OV8/
MB4FK+I5U]D\1Z%?6SV>JZ%=<@V]Y:2@20/E7 )!1]C;&8 F@#VBBBN;^,'Q@
M^&/P ^%^N_&GXS^-K'PYX6\-:=)?:YK>I2[(;6!!RQQDL2<!54%F8A5!8@$
MZ2BOB7P=_P %AOB)\5_!D/QS^"/_  2E_:)\6_"ZZC$^G>,[+3]&M[K5+4Y*
MW=GI5SJ$=[<0NN'C81AG5@0O(!]%_8+_ ."K/[*W_!2'QQX]\$_LRW7B&YD^
M&UCI#>+'U_P]<Z9)97U])J"'3WAN4203P?V>WF$ IF50K,5; !]*T5'-=6MO
M)%#<7,://(4@5W ,C!2VU0>IVJQP.RD]JDH **** "BBN9^,'Q*?X1_#[4/'
ML/P\\3^*Y+*/,7A_P?IBW>H7C'HD4;.B9]W=5'<B@#IJ*^0/^"/W_!6[PM_P
M5W^&_CWXK>"?@AJG@C2O!WC4Z#90:WJR7%W?)]FBG\^6..-5MFS(5,0>7&W.
M_G ^OZ "BBB@ HHKG/B[\7?AG\!/AIK7QC^,GC:P\.>%_#MB]YK.M:G-LAMH
M5[D]222%55!9F954%B 0#HZ*X'X(?&?Q!\5OA[/\6/&7PMO_  )H<^;G1(?%
M5TD.H2Z<(PPN[RWQBP+#+"%W:14VF40R;XD^9O"O_!98_M!7&KZ_^P?^P3\8
M/CAX(T+49K*\^(WAS^R=+TB_EB;;*--?5+VWDU$(P92T2;2PP"0<T ?:]%?)
M/[+7_!9C]EK]K3]J"#]C/P5X.^(/ASXFVV@ZAJOBSP7X]\'3Z3?>&X[9K952
MY$F8I&E^TJ8S!)*I5"Q(#)N7_@HU_P %?/A5_P $NM%A\=?M-?LR?%R3P?=Z
MO'I>G^-O#&FZ/>Z?<W3PF58]O]II<0Y"2 &:&,,8FVY&"0#ZUHKQS]C']L.#
M]M;X4Z1\</"O[._Q#\'>%/$>BV^J^&=6\=0Z5 =6M)ANCDB@M+^XGC#(5<&:
M.,,C*RD@BL']M/\ X*:_LH_L):EH7@GXM>)-5UGQUXL<)X.^&'@?1Y-6\1ZZ
MY8J!;V4/(4E6 DE,<9*L V1B@#Z!HKY0M/\ @HA^U!8:6OC?QU_P2#^/.E^%
MV4R->V&J>&=2U.&+JKR:5:ZJUT3CK'&LD@P1L)QGI?V(O^"HO[)W_!0_X@>/
M_!'[*_BC4=<B^'%GH[>(]2O=&N; 175^;X"S\FZCCF66'[$PDW( &D"@DJP
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
M2>+-)3Q[HG_!';X_+X4D D2ZU/5/"UCK#0XR7_LFXU=+A6'_ #S;;(<_=SD
M ^M**^7OV7?^"NG[)'[8/[4%S^R%\&KCQ.OCG1O!E]X@\8Z#XE\*W>D7?AO[
M->65H;*[ANXT87#/>!@(]Z!8R=V'0M]0T %%%% !1110 4444 %%%% !1110
M 4444 %%?+'_  3>_P""CWCK]OCQE\8_"GC+]C+QI\)X_A7XT&A6%]XK=F3Q
M A:<&6,-!%Y4J"%6DB4RJBW$)$K;N/J>@ HHHH **H^)KKQ#8^&]0O?"6CVV
MHZK#8ROIFGWM\;6&ZN A,<4DRQR&%&?:ID".5!)VMC!\Y_9E_:Z^&_[39\1>
M&=(T_4?#GC;P1J":?X^^'WB.-(M5\/W3KOC\U49DE@E3]Y#<PL\,R<HYPP4
M]4HHKC?C=\5/$WP@\(-XM\-? ;QE\06BWM<:3X(;33>11JC.7"7][:B7.W:$
MC9Y&9@ AH [*BO@S]A;_ (. _@!_P4D\4:YX4_8[_8_^/'BF;PQ##)XCNI=$
MT&PMM.$Q<1"6:[UB--[F.3;&I+D1N0N%8C[SH **** "BOES_@JE_P %0?#7
M_!+3X WOQY\5_LZ^//'5E:+")9O#-G%'I]E)-,(81>7DK@0*\I5 425@73*?
M,I/L'[(WQZ_X:H_95^&O[37_  BG]A?\+#\!Z1XD_L3[=]J_L_[=9Q7/V?SM
MD?F[/,V[]B;MN=JYP #T.BBB@ HHKP[XH?\ !07]GSX1_MR?#;_@G[XLUJ1/
M'?Q/\.:IK&A1H4\J&.T *I*200TZQW?E8!!-G(#@E<@'N-%%% !1110 4444
M %%%% !1110 4444 %%1Q75K/++!#<QO)"P69%<$QD@$!AV."#SV-24 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M1X&^'DNBVGC?78[$^)-<BT;1Q+$["YO94D>.'*J0I98GP6PI( SE@" ?"O\
MP1B_X+T_L6?\%%/A3X6^$8\5:;X$^+.G:-;6.H_#O5I4MA>311*A?2W.$NHF
MVDK$I\V, ADP [?2GP5_8VT#X(_MS_&O]JWPAI^G65G\8O#'A&/5[:U!6:76
M-*?6([BZ=0H4"2VN[!0026>&4L!D%OA3_@J=_P &IW[)G[8=_J'QN_8WU.W^
M#'Q-ED:[,.G6Y'A_5+G.X-+;1_-92%@/WUMA0<L89&.:\Y_X-[?^"CW[?/P^
M_;7\8?\ !%/_ (*;WE_K'B[P?I,]SX4\0:Q=?:;^+[.L4C6LESR;RWEMI5N8
M)W)<*I4LRN@C )/BY_P6!_:+\8_\%_?AS\'=7_8M^+5KX+^'/A'6[[0O &FZ
M-:OXB\13WEE+#_:[VTMS'''"J(ZQHTF]4,K-\TAC3]._B9^W3\$?@'^RG%^U
MY^TS#K?PTT%X(S)H?B_3U76([F1RD5B+6V>8RW4C#Y8HFD)!ST#$?G-XY_Y7
M)/!O_9O\O_I)?5F_\%Y/BYJFM?\ !<7]@C]F;QI,1X'A\=Z=XB>SE/\ H][J
MLNK1VT!D4\.8S @7/07+C^,T ?7/QM_X+.1_LK^$]/\ C5^UE_P3T^.WP\^%
MNHW4$#?$+4]/T:^32O.<+'+J-C8:C/>6,;%E WQ%]SJA0.=M?77PZ^)WP\^+
MGP[TCXM_#+QEIVN>&=>TV/4-'US3KE9+:[M9%WI*CC@J0<^W.<$5@_M0_!7P
MC^T?^SAX[^ ?CS3H;K2/&'A+4-)OHIT! 6>W>,.,]&4D,K#!5E!!! -?SU?\
M$]?VKOCYX)_X-)?VHDT77+\1>%/&R^&O#-\LC V>G:O<:1%?6T; _*H%_<R<
M<AKHGZ '[(ZU_P %=-#\5>$/$OQ9_9)_8[^*GQM^'_A"6\36OB%X(&D6^EW3
M6A(N1IO]H7UO/JWEE)%+VL3Q,T95)'/%>I_L"_\ !07]F3_@I5\ K;]HK]EG
MQA-J.C-=O9:G8:C;?9[[2;U%5GM;J'+;) KHV59D96#*S @URO\ P1VM/AX_
M_!)W]G>T^'UM:MH\GP9T#S8X5!1KEK"(W>\="YN#/O\ ]LMFNC_8@_8 _8O_
M ."=^A>)?A=^QW\-;;PK;^(-677-?TU-:N;R4R2!HHG_ -)ED>*+$+HBC"?N
MWQDAC0!^=_\ P9[JL?[.W[0Z(N OQ[O  /\ KT@K[3_9>_X*Q^&OVOOBEXG^
M&'P9_8K^-]PG@KQ5/X=\6>*;W3M BT73[Z";RIXUO/[7*79C(RRVOG.%P=IR
M,_@5^Q/^VS^T/^QU^Q5\01I?A#Q!9_ OQ=^U5/I7QS^(7@34O+\0:1IKV]L#
M:6A*8M3<1F4?:0=V4\I6A>2.0_TQ_LH:;^S?I7[-O@JV_9!L]"@^&3>'K>7P
M4OAI0+)K!UWQNG<EMQ9F;YR[,7RQ:@#@/BA^WSI^B?M!:S^RM^S[\ /%_P 6
M_'?A72;/4_'&G^%+O3;.T\-6]V':T2\N]1NK>(7$ZHSQV\9DD**78(F&*?L:
M?\%"O!O[97Q/^)?P;T[X'?$#P#XF^$TNE6_C'0_B#IMK;7$%S?+<R1QQ_9KB
M>.9/+MUD$R.T<BS(49AS7Y[_ /!0#X._\%<O^"5W_!1?XF?\%2_^">_PWMOC
M%\,?BS:Z9-\4OAOY$D][:26%JMNL@BB(G8*HD>.> 2>6)Y%EB*(K-]-?\$;?
M^"J_[$__  52\2^./C+\'?!.H>"?B\VAZ18_$KP9K4X>86MG)=_9;B&10$NH
ME>\GB,VU)!^[61$'E;@#[PK\N/VP/C<_[>G_  7Z^$?_  2\M[K[1\._@CI9
M^)?Q2TI6S'JVLQ0K+I=O.O(>*W>XL9MC?*YN6#*2B$?J/7XD?\$>[Z]\1?\
M!U#^VIKOB1V;4+;P]J]G;>;RWV6/6-*BCQ[".&$#VQ0!^G'_  54^$_Q;^.G
M_!-WXW?!_P"!"SR>+O$7PVU6RT2TM7VRWDCV[9M4/]Z9-T(S@9D&2!S7YO\
M_!M]_P %U/V/[;]F'P5_P3;_ &E-:M/A7\1O ,4FB:8?$6++3M= N)&4+,^%
MM[P%]DD,Q4R2?,A9G*)^P?Q+^)7@CX/> ]4^)WQ)U^/2M!T6U-SJFHRQ.ZV\
M0(!<A%9L#/. :^&/^"K7_!N9^PW_ ,%.I-0^)T6FM\-OBK<H6_X3WPQ9H5U"
M7& =1M,JEW[R QS< >:54+0!]'^-/V./#^O?\%"/ 7[=WA^QTZVU70/AUKOA
M/Q%=#*W&H6MU<6-Q9CA2'6%X+K&2,?:3C/;XA_X/$ #_ ,$@LD=/BGHF/^_=
MW7RE_P $P?VG_P#@I3_P1,_X*?>"_P#@CO\ M\>+Y/&/PU\?W,&G_#_5'O9+
MN&S^T.T-E<Z=/*!(ENTZ"WEM),"(DLJKC,OU=_P>'_\ *('_ +JGHG_HN[H
M^L_V6/C1X7_9K_X(R?#7]H/QC$S:/X$_9ET77M1BC8*SP6?AZ&=T7_:*QD#W
M(K\\?^#57PEXI_;?^+7Q[_X+,?M/3+K_ ,0?$OC)O#'A^^N5++HT"V\5S=0V
MH;/E1B*XLK=,<I% R X=\_8?B7X3^*OCG_P;=VWPE\#6<MSK6N?L>6%OI%G
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
M;XST!O%?@_5?"ZW)A.I:;/:B8?\ +/S(V3=^&<T ?AK_ ,$1?&]Q_P %IO\
M@N!\:O\ @IA\:0VL>'?@]90V/PBT.^&^WT2.[N+F+3Y41N!(MM:W4K''^ON3
M(,%5Q^[E?@3_ ,&6FHR?"3XQ_M1_LI_$*U_LWQEIUQHLUSI4W$RG3[C4K.]4
MJ>?W4T\"GWD[5^^U '@^O_L1^$S_ ,%%?#/_  4&\&VFGZ?KT/PVU7P9XT95
M*2ZO9S7-E<V3G:I#O!):R+EB"4F R1&H$?[0W_!0GX8?!/XUZ;^ROX"\ >*?
MBC\7-6TAM6@^''@""U>[L].#!/MU]<7D]O:V%N7*H'GF5G+ (KGBO>GDC1E5
MY%!=L("<;C@G ]> 3^%?CC_P;4_%W4_VBO\ @I#^WW\;?BC,9O&=[\0-*MHO
MM1S+9:;%=ZS!':1YY$<26]M%CTABST% 'VM\'/\ @L/\%/%/[65O^PA^TG\'
MO''P-^+FIVJW/AOPU\1H;)K3Q%&V[!T[4+&YN+:Y)*.H7>I9D9%#,I45O^"H
M'_!;;]DC_@E/H\!^.7AKQWK>LW[B+3-*\->$;AH)Y2@<(=0N!%9@A2&9%F:5
M5.?+-?&O_!YA\/K31_V-?A#^UIX4N7TSQO\ #_XPVUIH.NVC>7<VL5S9W-PQ
M1QR&6>PM9%]"A(K$_P"#NSQ%K/CO_@BW\#_'_BW35MM8U7XK>';O4(/+VF&:
M?PYJ\DL>.V'XQ_LT ?7?[;O_  7T_9\_8NN;_6(OV8/C;\2/!OA_4?L7BWXF
M^ / QF\,Z3<"01/!_:5Q)%!/*DA$;"-BBR?NS() 4'1_$C_@M[^RWIGP?\+_
M !0_9J^&?Q.^/5_XO\-1:_IOA'X->"9]7U&QTYRZ"XU!1M33U\R.6+;*PD9X
MI%1'V-CTC_@I;X.\)V7_  2S^/?@C3_#=C;:/9_ ;Q/;V6EVUJD=O;11:-<B
M)(XU 5%3:NT* %VC&,"OF?\ X-2-!T+2?^")'PQU/2M%M+:YU36?$5QJ=Q;V
MRI)>2KK5Y"LDK  R,(HXXPS9(2-%Z*  #WG_ ()U?\%;_P!E3_@I7\!O$GQS
M^#1\0:*?!%T]MXX\+>)M+\O5-%E6-I/WD,#2^8CJCE&C+%C&ZX#JRCRO0_\
M@XW_ ."=&O\ Q1^)WPVM;SQQ;K\*M)6XUJ_U/P=/:2:E?/=I:1:58V,VV]FO
M'E<*(V@CZ$D[59A\X?\ !O\ PPZ/_P %H?\ @H[HNF1+!:/\4(YFMXAA-_\
M:VLG=@<=9'_[Z-9?_!-+P#X*\1_\'4G[8WB77_"MC>W_ (>T"&ZT*ZNK97>P
MN)5TZ*2:$D?NY&CDD0N,-MD=<X=@0#Z'_8Q_X.5_V(?VMOVJ(/V./%'PS^)/
MPD\;ZK="V\.6/Q1T*&Q74IV&8K;,<TC07$BX*)( KDA5=F95/TS^VS_P41^
MO["TO@SPO\0[+7?$?C3XD:Z-'^'?P\\'V4=SJ_B"\+(K+"LTD44<:&2/?--)
M'&F\9;) K\P_^#S[X)>'/#7P*^"W[=/@V!=,^('A;XF0^';/7;%0ER\$UK=7
M\.7'+>3/8;X\_<,\F/O&OK[_ (*3ZC^P+X(_:*_9R_:5_:5^'?B?Q?\ M"Z1
M<RP?!/X:>![HMJ.M7\Z(9 \#2)$D$$F'-Q.\<<>"69L;* .O@_X+'> ?A[^U
MUX)_8I_;$_9C^(?P7\7?$QO+^'FH>)Y=*U#2-<G+B-;9+S3;RX6.<R-&GENH
MPTB D;T+6_\ @I__ ,%I_P!DS_@E-X<AU#X\>'?'6LZI?L(M+TOPSX1N'@N)
MF0NL9OYQ'9(VT%C'YQE"@L(R*_.S_@O!J7[7WB']N#]@/QU^T]X4\">%$G^/
M4/\ PC?A'PG?7.IWNEC^T]#:4WFI2"&*=VQ%^[AMT2-D;][,"I'K_P#P>?P1
M2_\ !*+PK)(@)C^..D,A(Z'^R]7&?R)_.@#W?]L7_@X3_9G_ &2!<:[8_LV?
M&KXD>$M$NUM?&?Q&^'W@8W/AO0;G>(WM9-3GDBMY;A)"(V2-RJOF-G#@H/JO
MP=^V#\!?B!^RUI/[97@GQ-?ZQX"UO0K?5M-O]$T"\U"ZF@F*JJ+9VL4EP\H=
MMC1+&75PRD J<>5_\%"_ G@O1_\ @C+\;/ >B^%=/LM%T[]F[Q#%IVE65HD5
MO:I#H4[0K'&H"H$**5   VC'2O'O^#6V[N;O_@AC\%/M,S.8Y/$D:%CDA1XC
MU/ ^@Z4 >N_\$U?^"M_[./\ P51U#XD']FSPUXJM=+^&^KV>G7FI^)]-2S.H
M2SI,VZ*$2-(B+Y)'[T(^3R@Q77_'']O+PO\ #?XMW'[.'P9^#?C#XO\ Q,LM
M*BU/6/!?@ 6*'1+27/DS:A>ZA<VUG9>;M8QQ/-YT@4LD;*-U?GE_P:P016OQ
MV_;FM8$"I'\>BJ*!P +K50!69_P0ON/VE_VL_BM^V#\1/ W[:,_@+Q-+^TEJ
M<GB71U\#:=JTS6I7RK#=+= R)%&D$T$<8^51 <<DT ?</[%?_!8C]GO]KS]H
M?Q-^QGXE^'?C3X3_ !H\(Q-+JWPS^).GP6]Y<0JJN9K26WFEANHPCH^58,R.
M)%5H\O79?$7]OZSLOC]XA_9A_9T_9W\9?%WQEX*L+.\\>0>%+S2[*R\.+=H9
M+6"YNM2N[>-KJ:-?,2"+S&"89_+!!/S_ '?_  1 NM8_X*1>!/\ @J-\:?V[
M?$&M>//!9MK*WCA\(Z=I=KJ%N%F@6VE$&,F1;J2(D?,P95YP!7S=^W%\,/\
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
MO6Y;*ZL%41SXFM'G@O9XXD<S12^8,2[FC4_KM0 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %0:CIUCJ]C+INI6RS03+MEB?HP]#
M4]%9U:5*O2E2JQ4HR3335TT]&FGHTUNAQE*,DT[-'.?\*C^&O_0G6?\ WP?\
M:/\ A4?PU_Z$ZS_[X/\ C71T5\U_J-P3_P!"S#_^":?_ ,B=?]HYA_S^E_X$
M_P#,YS_A4?PU_P"A.L_^^#_C1_PJ/X:_]"=9_P#?!_QKHZ*/]1N"?^A9A_\
MP33_ /D0_M',/^?TO_ G_F<Y_P *C^&O_0G6?_?!_P :/^%1_#7_ *$ZS_[X
M/^-='11_J-P3_P!"S#_^":?_ ,B']HYA_P _I?\ @3_S.<_X5'\-?^A.L_\
MO@_XT?\ "H_AK_T)UG_WP?\ &NCHH_U&X)_Z%F'_ /!-/_Y$/[1S#_G]+_P)
M_P"9SG_"H_AK_P!"=9_]\'_&I].^&G@/2+Z+4M-\+VL,\+;HI44Y4^HYK<HK
M2EP7P=0JQJTLNH1E%IIJC3336J::C=-/9H4L?CI1:=633_O/_,I>)=5O]"\/
M7VM:7X:O=9N;2UDE@TC39($N+UU4D0Q-<2Q1!V(V@R2(F2-S*,D?!O[+-O\
MMZ^!/^"H?[0'[2GQ&_X)V^,-/^'WQ=TOPEI_AR\MO&_A:>_L#H\%S TMY;KJ
MH"I)]LE?]T\K*(E&UBQQ]_T5]*<A!JFEZ9K>F7&BZUIT%Y9WD#P7=I=0K)%/
M$ZE61U8$,I!(((P0<&OS,_X)T?\ !#RX_P""8_\ P6?^(7[0_P "--3_ (4C
M\0/A'J,&C6WVE3)X;U635M+G;2RK'>\)2*62&0 X1&C<[D#2?IU10!^>?_!2
MC0O^"AW[17[7OP4\,> ?^"?>O>(_@5\+OB7#XL\;W+>//#EK=^*;RS5QI[6M
MM-J*G[/!*PN=EP8FF=4#)%Y88_H!X=U2^UOP_8ZSJ?AR\T>YN[2.:XTG47@:
MXLG90S0RF"22(NA)5C'(Z9!VLPP3<HH _'C_ (.*_P#@GQ_P4,_;A_:;^#7Q
MI_X)]_LDZHGBWX.WD]POQ(OO&6@6$5Z1/:W5BMM'+?>>P@GCG;,L<6&E;"N&
MW#ZP_:ZT#]M/]NO_ ()&?$GX.>+_ -E34_AQ\7O$OA.WTM- N/$VFWMG+J,D
ML.^>UNK&ZG(MD8%MTJQR*JGY6QD_:]% 'P]\$?VM_P#@JA^SA\-M+^&W[=/_
M  3F\2_$WQ%I5BEHWQ&^ 'B32-1L]>=% ^T36>IW5A<6DC  N=C(S%F4(#Y:
M^;_"[]A3]JK]O[_@JIX0_P""IG[<7P1@^$OA/X1Z VG_  C^%MUK=MJ.LWUR
MS3-_:6IRVK/#!M:<ND".S*T<8;&QS+^E-% 'Y.?\'+7[('_!0K_@I[\&_"/[
M,?[)?[%>M7MGX7\>/KNI>+-=\9^'K&UO!':3VT*VL;:B9V5Q<R.3-'"R[%&T
MECM^DOA?^U3_ ,%1?"7P@T/P;=?\$:]977-)T6VL0)_CMX9%@[10JF]IDE>5
M5)7M Q&>AK[1HH _+#6O^"+/[7W_  4^_:S\/?M6?\%I?B5X23P;X+F,G@;]
MGKX;W-Q<Z;;J65F%_>3)&96<QIYWEJQF"JH>)%$=?9?_  45\<?MG> OV9]8
M\'?\$]OV:;SQG\0=:T2YT_PY?P^(-)TO3O#4I18TNIC>W43N4#EXHX8Y%9H=
MKF,$%OH2B@#YF_X)&?#/XB? +]@[X>?LV_$_]F;6_AKK/@3PM9Z=J\&J:YI6
MH0ZMJ)4R7M[!-I]W.6$MRTLS&98FW3\*<$UG_P#!9SX*?$/]J#_@GE\1OV7O
MA?\ LV:K\2=;\=^'YK'1[6RUG2[&WTN_1DFM+VXEU"Z@PD<Z1R 1+(Y,>"%!
MW#ZIHH _-3_@WF^&G_!4K]BG]F_3_P!AS]O']D+4;/0] U&Y?P7X[TOQOH5_
M!864Q>=K.[ACOC<86=I/+>))>)U0JBQ[CL?MV?\ !(OXQZ/^W7HO_!7;_@F%
MXAT'1/C-ID7D>.? OB65X-&\?6)B$4D4DT8)MKEX55-Y4HS1PR$QO&7?]$Z*
M /RL^+__  =6? /]GOQO-^SE\>?V&?C%X/\ C1;74-A<^!O$$FCVVF1WLK*L
M;'5Y+T1_8V+ B\\K84._&WFO5/V(/^"5WQ@U_P#;BUC_ (*W_P#!2W6= U?X
MR:A8BP^'_@?PS.]SH_P]TO8R)#%/(%-U=>7)(K2A1&&FG9=QD#+[I_P4._X)
M6?L5_P#!3_X?1>"/VJOA:E[?6$3+H/B[2)!:ZQHY;D_9[D*?D)Y,4BO$QP60
MD CE?V/OV;/^"A'["W@*P_9_@^,WA+X[> =#A6U\+:GXXN[K0/$ND6*#;':2
MSP07D&IK&H"H[+;.!P68!0 #ZUKY"_X+3?LY_M:?M._LQ>$_ O[$.I6.F_$;
M2_B[X?U[0M<U:X:*STIK&62X^U7#*DC>4K(H*A'W;@NT[L5]>T4 ?&WAS]OO
M_@H/\-_"T7AO]I?_ ()$_$75_&,-L$.J?!KQ/H.K>']3F P94DO-0MKFS1FY
M\N6%F0'&7QN/G7_!//\ X)U_M(^)O^"CGQ$_X+'_ +>W@K2/!GCKQ;HD>@>
M?A9H^KQZE_PB^E)%#$9+R\B_=3WCQP*I\HLBB64Y^94C_0ZB@#\KO^"A/[%'
M_!1SX9_\%POAM_P58_8?_9MT?XO:-#X"/ACQ1X5O?&UIH4MHY6[B:1I[D_+&
M8[B*17C29MT3J8^5+==_P6 _X)!?M&_\%*?V6OAS\3M)\>^&] _:<^$^IRZ[
MX:U/2VDBTLR2S+</I23,N_;"T5L(;J1 6>VW.D8G?9^D=% 'P9;?MA?\%7_C
M3^S)>_ __AUOXI\%?'#4] DTB_\ %VN^+=#7P5I5W)$86U1+J"^ENYXU+&9;
M:*VD?(";R,R5TW[-_P#P1:_9^^!__!)*_P#^"4VM:K-JFD^)O#MY!XR\3P6X
MCGO=7NL.^HQH20K12K"85;=M2VB5BV"3]FT4 ?AI^P_\,_\ @Y;_ ."-]I>_
ML,?"+]D/P?\ 'GX9P:M/+X$\37?B:"TMM/2:0NQ5WNXI+>%G9I7MYH\K(S^6
MY!RWZ7?LP_#3]J[]G#X-^)OC[^TGH4OQ=^.7CV]@O?%&B?#N:RLK+3H8HS'9
MZ/IQU.ZMXTLK56D;?)(9));BXE(8R8KZ=HH _(C_ ((3_P#!-3]JGX#? +XW
M?L6_\%*_V%+A/"'QH\4W.JW=_!XMT/4=.C@FM"DD$ZP7QN8Y \47E20Q.0[!
MLQ;-]1?\$6O@-_P6)_X)9^.?&/[,WC7]C/Q5XU_9MNO$=_=_#F2?X@^%SXA\
M.1-.YB+0'4Q"R3(4::%90J2EY(R=SJ_Z^44 ?"OP]^)W_!1O]E;]L_XYMXZ_
M8<\6?$+X(>,O&L&M> ?$?@;Q#HT^JZ7+_95C!<126%U?0N]M)+ S*4.])!(2
MC+*I7"_X)\_\$\O'VE_\%6?C;_P5K\=_!3_A4UC\1?#$'ASPK\.KFZM)-2G0
MM92WFKZBME)+;P33RV4;+$DLC'S)&E(<\_H/10 5^25[\'KO]@W_ (.LM*^.
M5W;&T\&?M7_#/4-(L-18;;>/7;6"UEGM"W02.VFVTHS]YKW [@?K;7DO[9W[
M''PO_;<^#X^%OQ%N;[3+[3-6MM;\&^+=%D6/4O#&MVK;[34[.0@A)HG[$%75
MF1@58B@#GO\ @J5\'?B%^T)_P3J^,WP-^$^BMJ/B;Q9\/]0TK0[)9 GFW,T1
M1 6/W1DC)[ $UX?^SQ^T_P#\%7/V5OA1HOPF_;M_X)\^(/BQK6B:=%9+\3/@
M%XHTK48M<,:!5FN;+5+FPN+>8@ NX#([98!,[!]8_L_7'Q_C\#CP]^TGI^BR
M>)=)D%K+XB\-R%;#7XPHVWL=N_[RS=^=]LQ<1OD)+*N'/=4 ?FCX8_8<_:N_
MX*2_\%1?A[_P4?\ VUO@,GP?^'WP1L&'PJ^&^IZU:ZAKVL:BSF5=0U!K1WAM
M$1S&ZP"1G#0(#P6)A_X.0?V:OV[/^"A_[*D'['/[(G[&^MZW)#XXL=7U#QAJ
MOB_0+#3I;:"WF^6W274!<LYDF53YD,0'EL1N!4G]-** /G/_ ()?R_M#^$OV
M/_AQ\!?VDOV7M?\ A[XC^'_P]T?0=1NKWQ!H^H6&I36=K':F2VDL+V:7#"(2
M8EBCV[]H+XR?AWXI_P#!(C]NG_@F7^WAXA_X*&_\$4].\.>)_#OCQW;XE?L]
M>(]433H;S?(97^PSR%88U$A>2+<R-;L[*OFQ2-$/UNHH ^,OA_\ \%'/V^?'
MUG#HG_#D_P"*VB^))$Q,NO\ C[P];:-;OT):^-R96C!_BCMG<CD1GI7MO[-W
MP+^)_A_Q'JGQ]_::\5:7K7Q)\0VB6;P: )/[(\,:8K;UTO3O- D="^))[IU6
M2ZE5&98XXH(8?8** "O@OQ3^V[_P6G^$/[8WC'P!XJ_X)-V?Q%^#O]K.G@'Q
MA\-?'5A;:B]CG]U)=1:A=JCRD<.A6V"'.#(H#-]Z44 ?&7AK]DS]H+]M+]LK
MX??ML?MP?#73/ 6@_!V"]E^$_P );?78M6OEU>[1(YM7U:Z@'V;S(XXU6"V@
M:94;,IFW?)4W_!:;_@FQXT_X**_L_>%W^!_C'3] ^*?PJ\:VGC#X;:CK 8V4
MU];G)M+DJ"R12?*=X!*O$G&W<#]CT4 ?*]K^V5^W5X@^%G]A6/\ P2W\<Z5\
M4I=/,!MM:\6^'SX6M+XKCSWU&'47GELPQ#?N[9KAE^7R0<D<C^Q_^QC\8O\
M@CU_P2G@^ 7[*?PPA^,?Q2TV*XU"33EU:VTBSU;7+R4-+*9;J2-8K2$%5 !$
MCQP*  [DC[6HH _%#]GN[_X.L?V?]?\ %?Q#3_@FE\%_%7C7QSJGVSQ7XW\3
M^-[.34+R-"PMK-?*UN.."SMD8I#;Q(J*"SD-)))(_P!9_P#!/+6_^"\7QR_:
ME'C?_@J!\)O!'PH^'?A3P_<2:#X9^'6KPS#Q#J\Y6%&O&2_NY'B@@:X81DQQ
MF1X7VLT2LOWY10!\"_MC_L#?'#X1?\%+_"/_  6%_8?\ 1>+/$*^'W\+?&GX
M90ZG;V%UXJT9D58[NSGN'2#[9!Y<!\J:1$E6TA4.A4[L?X[_ +''Q^_X*^_M
M=_"7XB?M/?L^ZK\*?@-\$]9?Q#9^#O&>I:?<:[XWUT^7Y/GV^GW%S!:6,/E8
M(>9I)1)(OEA9 R?HE10 4444 ?GQ\(_V]O\ @N)X4^+7B7X=?M1_\$;(_$6D
MQ:O.GA3Q7\)?B)I45O/:AR(3*FI7PW;DVL92\+#H8%/ ]._9S_8T^,OQ*_;=
MN?\ @II^VSHFB:-XPL/"!\*_"SX<Z%J9U"#PAI4DC2W-Q<WFQ%N=1N&=E9HE
M$447[M6ER7'US10!\.?\%;?^"=WQM_:$^+GP2_;U_8]?2+GXN_L_^)'O]-\+
MZ_??9;/Q5I<S1FZTYKC!%M,51A'(PV#SI Q&59=?]IWXJ_ME?MC?LM>+OV7?
MA;_P3Y\:^"O$OQ%\*7GAO6-?^*&M:%'H7AR&]@>VN;EGL-0NI[XQI)(T20PL
M)"%WF-2:^S** /CKQA\&?VJ/^":W_!+WPI^RK_P2W^!47Q1\<^%M!AT+0KC7
MM;L=-M;:5E>2XU>Y%U/&),S,\@MXV.7E )"*37P]^S%JW_!U+^RMX&NO"G@S
M_@E[\$]7U36M3DU7Q=XP\1>.K:XU;Q)J<H DO;V9==4/(0JHJJJ1Q1HD<:)&
MBH/VFHH ^*_^"7DW_!8WXG?$[QG\:/\ @J_X,\+_  _@L]*M](^'WP\\!:E%
M-IT@DD,UYJ%R8[RZ,D_[JVBC,DGR*9]B()&W>@?M"_M#_MO>+;#4/A;^Q'^R
M'J=OXCNFDM(?B3\5+VSTWPYHIR5^U_9XYY;^_9>62)+=4? W2J.#]*44 ?+_
M /P3,_X)>?"__@G1X/\ $.LGQ??^//BI\0M3;5OBG\5=?B O_$-^[M(V%!/D
M6ZN[E(03@L2S,QS7U!110!R_QN^#W@7]H7X-^*O@/\3],:\\.>,O#UYHNN6R
M/M:2UN86AD"M_"VUSANH.".E?EQ_P3K^"W_!57_@A/:^(?V1;G]D;4/VCO@/
M)XBN=5\#>,OAQX@T^VUO21.1OMY]/OIXMX<J'*HVU)&D(DD#@)^M]% 'P/\
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
MPYK_ ,2/#5I<>(K<V:6E\62'498X3(B))&2S?O84E<9)4=1_P>&>)]>\9?\
M!'GX<^)O$_PZU?PE?W?QUTMKKP[KMQ9RW=DPTC7!LD>RN+B!B0 P,<KC##.#
ME1^R=?EW_P ',O[(7[=/_!23]F[PW^R5^R%^R1J^NG1/B)9^)=0\8:CXMT*P
MT^:*+3KR 00)/?K<L^^]PQDAC4>2=I<,#0![U=_M?_\ !1V+]G]?ACX<_P""
M;'BQOC8=#73[?7'\1Z)_PA2W_E;!JOVYKX7#68/[[R#;"Y(_=&,$[ZD_X)V?
M\$W- _X)<_\ !-'6/V>(_$R:_P")]0TS5M>\?^)8T*KJFLW-MB:1-WS>4B1Q
M1)NP2L08@,S"OI+X ^./B)X_^&=AK7Q4^!NM_#W7$C2&_P##VNZGIUXZR")"
M\D4NGW5Q$\.\LJEF20["6C0$9R?VM?$WQ1\/_ O7[/X.? ;7/B%K^JZ3=V.G
MZ-HNJZ99".62WD6.2>74+JW1(=^U6*&20;LB-L' !^/?_!J!^T1^T9\#?^"=
M>N6'_#'?B_XB^ ]0^)6HS:)K_P .;W39KZQOOLUFD]I>6=[=VK+&0L4D<\1E
M7+R+)Y>U2WV[^R'^PI\<OB__ ,%+?%/_  5]_;7\ P^#]=7PK'X1^#/PS?4[
M>^N_#.C+O,MW?SVS/!]LG:6<B*&21(DN95+N2"O!?\&UO[*O[;?_  3T_9/U
M+]D']K[]E#5O#=S+XVO]=L/%EEXKT/4-.:":VMD$,BV]\]PDN^!@-L+H0RDL
MO-?I=0!^.WP4_90_X+"?\$P/^"M?[0_QD_9M_8WT/XY_#+]HSQ.^N'6+SXCV
M6A-H\S7=U=0K-).))D6W-]<1,B0.)4$;(VY2E+HW[!'_  6F^&/_  7FU/\
M;STGX<_#3Q-9_$'X;1:+KGC9-4^QZ%X7+06T;1I9M,U_?-;&TBVC;&+K=DO:
MAF$/[$44 ?DG^W+^S%_P4I^*W_!<WX(?\%#_ (1?L"Z[JO@+X.Z'_8NI_;O'
MOAJUOM82234%N+FVA.I$*HCO0T:RM&S,F'$><C[)_P""L7[)7Q-_X*.?\$N_
MB+^S'\/EE\*>+/&GA^QN-+L->N85:"[MKRVOELKF2VDEB&]K?R'>-Y$&\D,R
MC)^HZ* /R@_9#^'G_!='XC?\$SY_^":OQ=_8Z\"?"-?#OPJNO!,7Q-\0>-K;
M57UFQCL'LK:WM=+L698IVB\N-[N:X\I?FE6*4_NJ]"_X-P?V8_\ @H]^QW^Q
MYI_[-/[97P8\-^ O#_A*\U4Z-:)KT6IZOK,]W>?:1/(;61[>T@BW3H%WR23&
M16(A$7[[]':* /R%_P"",'[$/_!7G_@F=\2/B9^QFO[/7@[_ (5;XG^*+>)+
M/XY7OC2WD\BQ/E12I!I<>^>>XFMX(U03"!()"S.95VJVS_P4:_9"_P""B/[-
M'_!9_P (_P#!7O\ 8._9G@^-&DZEX(7PSX[\"P^(K?3;R,A'AWK),<*C)]G9
M9%63:\#AU"LI/ZPT4 ?B_P#\%</V+_\ @M/_ ,%#_%'[-?QPTW]G+POHFN^$
M?'T^M0_#"T\66MS9^$H86LYDGU75W$?VN>9X2ICM(S'&D>%$KL6'V)^V%?\
M_!4_PA^T#^SQ^TE\"/V5M%\;'P_H/B[3?C5X&\,?$&V2#[#?3:.]LEE=ZFMG
M]HN4:S,J,T,8/DRQDQB4$_;E% 'YG?MK_L>_%+_@L!^U=^SQXVN_V.O%7PDT
M#X,^.(_$OBWQ[\1FTJ#5+VWADBF31+""PO+J2422Q*SS2,D,6-T9D8E3^F-%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 445\L?\ !9O_ (*#ZG_P3&_X)]>,OVJ?
M"OANUU?Q':26NF>%;#4-WV9]0NI1%'),%(9HXU+RE007\K9N7=N !]3T5^4'
MQOL/V\/V7_\ @E':_P#!62X_X*@^.]<^*&E^#-)\::UX=UN#2V\$ZK'=FWD?
M2(].BM(S%&R7 ACFCE64OA@5W +^G?P;\?3_ !5^$/A7XHW6@S:5+XD\-V.J
MR:7<',EFUQ;I,86.!ED+[3P.10!TE%%% !17,_&CXN^!O@#\(?%'QR^)NK"P
M\.^#] N]9UN[./W5K;0M+(0#U;:AP.YP!UK\YO\ @VX_X+ ?$C_@I+HWQF^&
MO[1]T]OX^\(^/KO6=.TJZ79):Z#?SR-#9*I 8BSF22 DC*H\ //4 _3^BBB@
M HHHH ***^)/^#@37/VE/AO_ ,$SOB1\=_V:/VH_$GPWU;P9H:WL@\.6=IOU
M)&NK>-HVN)8FGM\1O(5>W>)PQ4EB 5(!]MT5\L_\$2/&GC'XB?\ !)SX#^./
MB!XLU/7=:U/P!;3ZEK&LW\EU=7<I9\R2RR%GD8]V8DU]34 %%%>9?$']J[X7
M_#S]IKX>_LF:A>FX\8?$6PU74--L8)%S:V.GPB2:YE&<A6=XXTX^9B^/]6U
M'IM%%<9^T/\ '_X4?LK_  1\3_M$?''Q5%HOA/PCI,FH:UJ,H)\N)< *BCEY
M'8JB(/F=W50"2!0!V=%?FE^PY\8O^"@7_!;GPW?_ +6%S\</$/[.7[/EYJES
M9?#GPOX L[)O%/BB""5HGU"]U*\@N%M8_-1XQ';1J6*N-V$667H?VQ/@G_P4
MD_X)T_"#5_VM?V)?VT?&_P 8M-\%63ZKXS^#GQO%GJO]LZ;""]R]AJ%M;075
MM<1Q!W6,M(KX. 2%C8 _0RBO _\ @FO_ ,%$?@;_ ,%/OV5M&_:B^!DLMO!=
M2-9>(/#]Y(K76AZG&JF:SF*\,0'1U< !XY$? W;1[Y0 445YE^TU^U=\+_V5
MK/P4WQ#O2;WX@_$;1?!GA;389%$UYJ&HW:0 J&/*Q1F6=_\ 8A8#D@$ ]-HH
MHH **S_%6C:CXA\/7>BZ1XLU#0KFYA*0ZOI4=N]Q:M_?C6YBEB+?[\;CVK\(
M/C1_P6B_X*-_\$U?^"X-Q^SC^U'^U7J7C_\ 9ST;Q_8Z%K&HZYX(T&RD@MM1
MTJTO$EFN=/L('$MHNH12MMVB5;=\)R0H!^]]%)')'-&LL3AE8 JRG((/0@U\
MC_\ !;;]O/QA_P $_P#]@OQ%\1?@W^]^)OB60>'_ (9VJ6T<[C4YHY)'N_+D
M#(R6MM%<71\Q6C_<!7&UC0!]<T5^7_\ P;1_M-_MW?\ !0[]E35OVNOVPOVT
MO$7B6XM/B!>:'IWA2S\(^'=/T]K:WM+:3?,UMIB7#.TERWW)D $2<'+9_4"@
M HHHH **** "BBB@ HHHH ***^6/V<?V&/VG?@Y_P47^+_[8'Q#_ &ZO$_C+
MX?\ Q TN*V\+?"34%F^Q>'9 \+"2,-,T2^6L4D:>5&A=;ES)EAD@'U/1110
M4444 %%%% !1110 4444 %%%% !17,?&#P9XW^(/P^O_  E\//B[J?@75;R/
M;;^)]'TVSN[FS_VHX[R*6 G_ 'XV'MGD?F=_P:D?M ?M'_M#_L_?'/Q-^T_\
M<O$GC[Q%I_QHFL3JWB/5);EHTCL;<>7"KL5@BW9(C0*BYX% 'ZL445\%?\%6
M?^"OWB[]EOXV^!?^">G[$7P[TSQ_^TA\4YHX]!TC5IG&E^&[60L!?ZAY9#L
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
M[^!7AWPWX;\*Z%\!_*&G: D4-K:SK;Z.]SYFSCS?,\QY6<[RY9G)8DU]+_\
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
MIO@#P_X=CT62^$5ZL*V.H:A<RW4DB,DT6^:(0J07(MR54'S[1/A!^S[\ /\
M@[R^%_PK_9X\(:#H&E6'P3O/[1T_1=I;[>]AJLDDET^3))<NAC=Y)2TK@JS$
MY!KL_P#@N#?66H_\%T?^"=>H:?>13P3^+I9()X9 R2(VH6!5E(X((Y!'!H S
M?^"R'B[_ (+7_P#!,;X<Z+_P4RC_ ."D.F>*[.P\96-GXJ^#FF?#R"P\.VMI
M<EL00N\DL]S&'40F64K.1*)%>,J%'WA^WY_P5+^%_P"PO_P3=E_X*!:_H;7J
MZKH&GS^#/#4MQL?5-2OX1):VA<#Y5 +22, 2(X9& ) !^=?^#MS_ )0O>+O^
MQRT#_P!+5KY8_P"#FSP1X]U[_@@U^S!XY\-VLUQHOAJ[\+S:^D:ED@\[P_)%
M!/(.@02-Y63_ !7"C^*@#[W^'W[&_P#P4B^*7[-=C\9_B5_P4D\<^%_CMK.C
MIK%MHV@:5I<?A#0+R2/S8M)?39+21[JVCW"&2629IW(9PZ\"OE+_ (,TI]>N
MOV3_ ([77BFV2'4Y/CA.VI0QC"I.;"V,BCD\!LCJ:_5+]F']HGX<?M8_L\^#
M_P!I+X3Z[;W_ (?\8Z!;ZG8SV\P<1^8@+POC[LD;[XW4\JZ,I ((K\N/^#/B
M]M;G]G[]HJ.WN$<_\+[NY/D8'*-:0[6^AVG!]J /V#K\ /\ @B;XCO?VMO\
M@Z:_:;_: ^)+-=WWA;3_ !6/#OVCYGM(X-6LM'M5&>FRPW1<8ZGUK]_Z_G^M
M+2W_ ."%'_!T+K?Q:^-K?V+\'?VD4U;^SO&-R-EE:C5;F&\E61S\D8M]3BCC
MDR1Y<$J2MA6 H _H!K(\5^ _!_CB;2;CQ9H$%])H6KQZIH\DP.ZTO$1T69""
M,,$DD7T*NP.036I;W%O>6\=W:3I+%*@>*6-@RNI&001P01WKB/B5\?O"'PZ^
M(GA+X/QVUQJ_BSQE>L-,T'32K30V$14W>I3Y($-K K*&D; :62&%<R3(I /D
M3]I#]NKXS?M$?\%2M/\ ^"0'['?Q*_X0B?P]X+?Q;\;OB78Z=;WFI:/8'R!!
MING1W226\=U+]JM6:>6.01I<J44LA%>._P#!4KXK_M_?\$/K'PK^W#\)_P!J
M#QE\:_@T?$=MI/Q5^&_Q3^PW5U:).2(KVQU"WMH98 2#'M;<BRR1$K(K%4\:
M_9EU[4?V./\ @\&^+WA3XURM9VWQV\#S1>!]2O3LBOO.CT^\@".W! ;3;JU
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
MU>7?\$(Y(V_X.0OV\ K@G^UO$'0^GB-0?UKOO^#FH@?MT?\ !.W)'_)?6_\
M3GX?H =_P65/_!;K]B3]G;4/^"H.B?\ !2+283X.UK39-;^"OAKP#"GAZRL;
MJ\BM5@6ZN&:?42LL\2O+,D;.KNZ"#8J5]+?M\_\ !5KQ;\ _^"(]A_P4P^%?
MA6VAU_QCX'\-:CH5M>0&XM](GUI;7]]*N1YHMUN&8*<!WC13PQJC_P '/?\
MR@P^.O\ U[^'O_4CTNK?[-]S^R[J?_!"G]G'X6?MC>%;;6_ 7Q$^%/@'P?J.
MGWJCR)+C4;2RM[4R-O0Q 7#1$2H0\;A'7!4$ '-?M!?!G]KS5/V&)/VJ/^":
M_P#P53^)OQ#UR;1X-49[J/1-8T_Q=8;E-XMG##IX:QN?+\QHA:E65T$6W<0R
M?/W_  >3?";QU??L&Z/\9Q^T%XJM_#^G^-],TW_A6UH+:+2+J>6.Y8WMP5B\
M^>5?+4(KR&-.2J!B6/C7[<'_  2P_;3_ .#=W1M8_P""AW_!)O\ :YUV?X6Z
M+J=O=>.?A3XNG\^*."6>.$-)&,0W\.Z18R^R*YA1@RR,0SK[1_P<]?&)_P!H
MS_@WS^&W[0?_  CDND?\)SK_ (/\1-I,S;GL?MNF3W/DL<#)3S=A.!R* /LG
M0/@K^WS\(OV*M5\4?##_ (*'77B;Q(_@2VO= ;XG?#+1KFTT=8+"60Q6Z:1%
MISEY&,*^;<M<JBQ9\IRQS^?'_!-;XO?\%Y_^"OG_  3#U_QO\%OVX=+\#>*=
M,^(5_P#\5IXAT6'[1XFFV6[C3(7MHBNE65NC!_,2WD:62;RP(TC=I/UTBUW1
M)_V/X=.AUBU:XN?A,;JWMUN%+RP#3U!E5<Y* N@+#@%AZBO@#_@SF93_ ,$B
M+@!@<?%G6@<'I^XLJ /TD_9QT+XU^&/@#X+\.?M)>,=-\0_$"Q\+V,'C37='
MM_*M=0U1($6YGB3:F$:0,P^1!SD(GW1VE%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
MA#5Q8ZGI<LGE^:L4CQR)M?RH2P9"<Q(5*E0:^E** /B?]LO_ ())_L >,O\
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
M%)MCC!,<B!O+4,&"@5]144 %%%% !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 %
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 %
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 %
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 %
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 %
*%%% !1110!__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>15
<FILENAME>cgnx-20231231xexhibit97001.jpg
<TEXT>
begin 644 cgnx-20231231xexhibit97001.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ KSWXK^-+_PMINFZ?HY1-6U>X^SP3.N1$,@,V#P3EE SZ^U>A5P?Q1\"W/C
M+2[&?3)HX=7TR?S[4R\(_3*D]L[5(/M[YH OW/@^ZB\/S0:=X@UA=6,)"WLU
M[))NDQW1B4 )_NJ".V#7.2^)=0\3_&2;PC!=S6FDZ5;&>Z^SN8Y+E\)\N\?,
MJ@N. 1G!]L=?::SKMW:QQOX:N+.]( D:XGB,$9[D%'+,/0!1GOMZUS=WX0U'
M0_BJ?&FD6WVVUOK<V^H6B.JRJ<+ATW$*1\BY&0>N,YH IZUXCOO!'Q4T+2A=
MW%SHNN 1&"YE:5H)BVT,CL2V"2N021U]J9X:U^^^(GC_ ,00O>75KH.B.((K
M:UF:%IY"S#>[J0Q'R,=H('(]\WK[PGJ/B[XEZ5X@U*T:PTG14#6T,SJTL\V=
MV["DA5!V]3GY>G/#-"\)ZGX$\<ZWJ.G63ZCHFM,)7C@=%FMI06/W7(#)\[=#
MGIQQR =3;:!=V?B'SXM5O9-)>TDB:SGN&<I*60AU<G?]T,.6X[8S7EUGXLU_
MX?\ C!#XDO[F_P#"NK321V]U,Y<VC*[* 2>>,<^HY'((KI_#GAO78OBAK?B*
M[M)H-$DM]ME9RSJ6$F(\L$#%5SM?J1][WK=_X1J+Q-X)GT3Q!ILENLLDIVNZ
M,R$R,RNI4D C(_4=* ,3Q--/8?#CQ3J-EJ=^)X)I'MYQ>2,4 (VA3NZ8)^M9
MW@F[3Q1X>T>&W\1:@VOI;)>W;KJ,CJ,2 ;)$)*C<,C  (Q[U+%X*UW3?@MJ7
MA-83?:B[2Q0LLBJ'0OE&RS# VXX[=*L>'K#Q#X>\%Z;:V_A:X.OVUD;(3-<6
MXB4%L[B?,)8#J!CU'>@"C\4Y/$/A/5-/\7:;?W\^BQ3*NI:<+AP@&>&'/ /3
MT!QZFNR\-,NO3MXIBO;HV-Y&HL[7[0QC"#.9&7. S'^'L . V:?J-G=>(-5?
M2=2TJ8: L9,DC21E;I^P8!MP0=>G)QT YY+X:>'_ !3X*U?4M#N+"6;PP\S2
M6-R\\1>'GNH;."/3N,XY- &C\6/&M]X3T>PM-(V+JNJW'V>WD<9$0XW-@\$_
M,H&?7VK4G\'747AZ:"Q\0ZPNKF$A;Z6]=PTF.IC8E ">P48'3!YJC\4? MQX
MUT:T?3IXX=5TZ;S[5I.%;IE2>V<*<^HK9L]:UZ[LXXY/#-Q:7Y4"1IYXC;HW
M<AD<LP] %R>^.M '(7'B74/$GQB/@V"[FM-+TRV^T7AMW*27+X4[=X^95!=>
MA!.#STP:]XBOO WQ/T#3EN[BYT77,0O;W,K2M#+N"AT=B6 RRY!)'7VQ<O\
MPAJ.C_%5?&VCV_VV"\@^SZA:(ZK(.  Z;B%/W$R,@\'KGANI>$]1\8_$?1]=
MU&S:PTC15WP13.AEN)MV[.%)"J"%ZG)V].> #"MM6;_A=_B71=5U^\MM%MK%
M984?47A6.0B$Y#;A_><X)Q[<5I_#/6M<U_PYXA74[JZN;""X=--U!LQR31C=
MR&7!.,*<^Y':JG_"!W^K_%;Q-J.LZ*[:!J]@+17,T196 B^; 8D8,9(/7I6C
MX#TGQ=X5TG4_#>J6+W^G6^\:9>131Y=#G"%68$=<C/3D=,4 >:Z;XRUT?#*S
MU:T\1W]QXH;5?(BM3.9C/'@?*83D8]P!]:] B\4:MXK^+ \)F>73[#3+(7-^
MEM(4>>7:F4WCY@H:0#@C.#STQH_!WPUJWA3PA)IFM:?]FNQ<O(&$D;AE8+C!
M5CZ'K27GA#4=$^*I\::1;?;;:^MS;ZA:(ZK*O"X=-Q"D?(N1D'@XSF@"GK?B
M.^\$?%+0M+%W<7.B:X!$8+F5I6@FW;0R.Q+8)9<@DCK[5F6>K$_&KQ1HNK>(
M+RVT:ULUE@234GB6-RL1)#;A_>;@Y'M6]?\ A/4?%_Q*TGQ!J5HUAI.BINMX
M9G5I;B;.[=A20J@A>IS\O3GC(7P#?:O\4?%-_K6BO_8.L60MDD,T196 B ;
M8D8,9(/TH UOA!KNNZYI&JMJLTUW907C1Z?>S)M>>+GG.!N XY]R.U0:[X^O
M-(^+.BV,H*>'KH26)E/W7N<KD_\  243VR]+X(LO&W@[0M2T*[TLZI#9[_[(
MN4N(AYB\[4<,X*C.#[#(["J_CCX<W&N?#^.VL5U";6(76>".:X08E+9D8_-M
M&<L>">2* .]U31GU'4(;E[^]AMH(74V]M</")')&&8H03@ XY[UYE\(3JWB_
MP6^I7VO:HVH6^J@+*;N0JT2")C&R9VD$%ATSSUKTG0;C67\)V[ZSITD>K)"$
MGA62-C(X&"RD-MP>O)&*Y/X+^&=:\(^%+O2];L#;3O>-.C"6-U92B+_"QYRI
MH S_  YJ6H3?'OQ)HT^I7TFF65F)H+9[ERB,1"2<$\_?;@\<U)\.]=O?B3?Z
MYK-]>7<.EV\XMK&RMIW@"KC)9RA#,Q!7J<#GCI4WA_PWKMG\;-?\2W.E21Z7
MJ%J((I#-$2"!$,E0^<?(WZ5)X+\+:G\.=4UJRM]/EU'0[V87-I);.@DA/0HZ
MNR]L $9Z<XSP 0^%/$E^?B'XC\ :K=SW45LGGV5T9"LRQD*=A<8)(#C#=>#D
MUSWA;QCKO@[Q%::3XSU">[T?7((Y['49G/[IF4?*6[#D ^AP> :ZSPIX0U&S
M\9:_XXUBUVZA?CRK:PBD5FBA&T#<V=N\A%Z' P>>:OWO@R'Q=\-K/0=<LWM+
MF&UC168H[03(@&]2I((SGOR/2@#<\+QM'I4N^XN)V%Y<IOGF:1MJSNJC+$]%
M4#\*VJYSP'I%]H/@K3M+U(AKRW$BRL&W;CYC'=GOD$'UYKHZ "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
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
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
MJN5R_(R>E)\:M?LM?^%*WEE*CVS:L(H9%;(E"!U+#VW!OP&:]C_L^R_Y\[?_
M +]+_A3C96C*JFUA*K]T&,8'TH \;^(]I/9>(O OC,(T^CV!B2[>,;Q"NX'>
M<=L$\^JCU%>L#Q#I#BV\G4+>X-RRK"L#B1I,]P%R<#J3T Y-:"11QQ^6D:+'
M_= P/RJ*VT^RLV=K6T@@9_O&*,*6^N!0!Y;\?K2W3P?9:TC^3J>GWL;6LRG#
M#<>0/R!_X#7H?A<1_P#",:=)&XD,T"SR29R9)'&YV)]2Q)_&M*6V@G(,T$<A
M'0N@./SIT<4<*;(HU1?11@4 /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 **** "F32QV\,DTSJD4:EW=C@* ,DFGUR_C22&
M\LH] E-T(]2#K<M:PR2ND 'S<("1N)5/HQ]* -_3[^VU33K:_LY1+;7,:RQ.
M/XE89!JAXC\3Z5X3TT:CK$SP6F\(9%B:0 GIG:"17G/P2UR:UTW5O!^H^8+S
M1)6:)71D9H22?NL 1AN>>SK7%>)M9U7Q;\%+_P 2:CJ4[-/JH1;-0HABC!&U
M0,9R/7.3WH ^DE8.@9>01D4M>87WB'4]2^(]UX9AO)K&QT_0S>;H,!I)CMVL
M21]T!NG0D'.:YAOB#XDU;PEX$U"'47LKS4=4^P7CQQH5E <+NVD$ X],<YH
M]VJ."XAN8_,@D61-S+N4Y&5)4C\""/PKR*37M;M-=^(/A:36+R>*PTIKZSNV
MVB:$^6K%=P4<$MZ9 '&*R=+\0ZAX4^"?AFXL[VY,VJWB6I=MA^S(9)"QCR -
MQ _B)Y.>,4 >[UC/XITF/Q3'X:>>1=5EA,\<)A;#(,\AL;>Q[]J\Y\7^*?&'
M@WPCXANI(988VNX8M)N+EXY98T<'>&VE@=I4X+9^\.N*:+&73_VA= AFU"XO
MF_L1CYMP5+=9,\@#(SD_CZ8H ]AHKE?'VIWVE:):W%EJ-K8@WL23O-N+R1$G
M<D056)D;@  9Z].M<-HOB;Q=J&F?$+3].EFEU#2[A5TU;H(9HPQ;*$]&8!>,
MYY]: /8Z*X'X8^*T\46VH,;F^6YMC''<6%[@R6K_ #9PV 65B._(((]*S=7\
M2:KJ/Q%\0Z#!>S6-GH^C-=1F# :2<JK!R2#D -C;TXYS0!WVMZ]IWAZSCN=2
MG\I)95@B4 EI)&.%50.I-&A:[8^(M-^WZ>TC0^8\1$D91E=3A@0?>O#O$^MW
MOC#P!\/];O9Y8KF?6$AE$04*75W7S ,<-\N?3D\5] QH8XD0NSE0!N;JWN<=
MZ *MQJEE::C9:?/<(EU>[_L\1ZR;!EL?05<KPCXHW5T]S9^.--^VFXT:^"PK
M]FE$+6P."^_;L.YP>0>58>E=1\3/&-Y;?#G2?$?AS4)+;[7<P;74*<QNK$J0
M0>>!]"* /3Z*\PC\1^(1\4_&.D6D[7<5EI(N;"SD"[?.*(0,@ X)8CD]ZQM"
MUWQ/JEUX,C@U?4)KJ]>X;7HE5/\ 1PC?+N5D(B[C&!G'KS0![117AU_XQ\1P
M:;\36CU></HMW M@VU,Q*TC*1]WD8P.<]*O>)O&.OZ+:>%]5O6OSH-SI,1O+
MNQ"^9#=. 1(X(((]%.%))] * /7Y+B&*6**215DF8K&I/+D D@?@":@U35++
M1=-GU'4;A;>T@7=)(V>.PX')).  .237DEP\^J?&SPJD>N7<EO-H7VF*6(J!
MEE;+*"IP&"@G(SSUZ8]AN!;B+S;D1^7#^]W28PF!][)Z8YYH P?"OCKP_P",
MUN/[%O3+);$"6*2-HW7/0X(Z<5T=>?\ @W181XRU_P 82JML=9(6RMV^5C @
M4&4KZN0&]@1GDUWR2)*BO&ZNC#(93D$4 <G)\3?"4?BA?#SZH!?M)Y(_=MY?
MF9QLWXQG/'7KQUK1U;Q?HVBW<MM>7#^;! +FX$<;/Y$1.-[X' S^/4XP*Y?Q
MKH5GXFUO0])C2&"QT6<7]]<X"K @&5B![%NI'8 $]1GB]0:9O%'Q@-QG<-*4
M)G^YY7R_IB@#U;Q)X[\.^%+*VNM4OPL=T-T A0R&1>/F 7/R\CGIS4__  F&
MA'PU%XA2_6339A^ZDC1F9SR-H0#<6R#QC(P?2N/\,7 M?@II3W%H+J_O-.%G
M;P%06N,[A&G/\.#D]@,GH*W_  /X97PIX)M=%MY[>XO[-6,DC<JL[_,1QR!\
MP'8XQZT :/A?Q?HOC"PDN]&NC,D3^7*K(4>-O0@\UN5Y7\)VOK'Q+XST?5]/
MMX=42]6\N+FW)V3>;N90 >@ Y'L3GD&O5* "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 *SHM'BBUR?5A<W+3S1+$T;.#&$4D@ 8XY8GCKGG-:-% ',IX%TJ/QD_BM)
M+M=5D&UW64!73 &TJ!@C 'OP#G/-9EQ\)?#%S9W=BPODT^ZN?M364=TRPK)W
M*J.F?_U8KN:* .=O_!FEWUY%>A[JVO4M&L3<PR_O)(#U1BP.?7/4'H:XGX@^
M#S';^"]*T#2KDZ?INHI+*MJ&S%$"-S;ASNZG(.<\UZQ10!SNF^"]'L)-5N&6
M>[N-779>3W;[GE3;M"=!@8XP /TJE_PK7PXWA%O#$L-Q-IN[=&LL[,T1!)&P
M_P ."Q_,YS77T4 <R_@31KCPU<:%?F[O[:X55DEO+AI)2%Y7#'IM/(QQU]3F
M*P^'NC6&O66M^?J-QJ-G;BWBFN+IF.P9X(X!X./3\<FNKHH P_$_A/2O%UG;
MVNJI,4MYUN(FAE,;*XR 01]35"T^'F@V,VJRVGVV%]3:-[@K=R$[D8,&!)SN
MR,[NO)YYKJZ* ,G2/#MEHUY?WL32S7NH.C75S,07DV+M4?*   /055U;P=IF
MKZE)J+-<6UY-:-93S6SA3- W5&R"/Q&".QKH** .7U'X?Z#J.F:3IIBF@L]*
MD66TA@DVA'7HQ."2>O7KGFNAN;;[5926QGFC\Q-AEB8*X]2#C@^]3T4 8TOA
MJSF\+'PY++.]@;?[,02N[RL;=N<>G&>OOFL@_#3P^W@X^%7^UOI:R>;$K3Y>
M%LYRC8R.2>.1R:["B@#CO^$$L-*N-6UK3/M\^L7=B]NYDO#NG.T!1N;.TY5?
MF[?3BN+\/^&/&NE0Z,EAXFU=V@:%)]/O;(+!%$"-ZERQ! 7(&W)/&,=1[+10
M!QFH_##PYJ=YJ]Q.+U%U;8UY#%<LD<C*<AMH[]>O'.<9J[<>"-.N-/6Q-U?I
M;_85T]T288D@7.%8$=<,1N&&]^M=-10!S<_@;0YM6TO4T@FM[G3+<6MN;>9D
M'D@8"'!Y7D_G6CX@T*U\2:--I5]).MK/@2B"0HS#^Z2.Q[CO6G10!PVC_"CP
MMX>CU$V-K=N;ZSDM)@UP26C;[RJ3C!.!SFMGP5X;7PIX9ATE&;9')(Z(7+^6
MK.6"9/7 (&>YR:Z"B@#SVY^#'A*]U634[M;^XNI9?.D>2Z8[VSGD>GM70ZQX
M+TC6KVXNKA9HY+NW%K=^0^T7,(.0C\?J,'!QG%=#10!R/B7X;^'_ !6ME'J*
MW0@LH_*MX()S''&.G"CO@ ?0"HX/AGH5EI-AI]A-J-DMC</<P36]T5D#M][)
MZ," !@CI^-=E10!1T[2;73&N)(0[W%RX>XN)3NDE8  %C[   # '85>HHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MAE^,.B2.TZL=*N6.R=T'RR18X! QR<CH>^:Y*>.6R\*>*=<MKV]@O++Q/,T
MBN&2,9N45@R @."&(.X'VQ0![/4%]>0:=87%]=/LM[>)I96]%49)_(5P=W]O
M\4:]XITF/5/L-S8-'':E9I$:!6B5UF"JP#?.6Z]ABNULHA>:%;Q7LL5\)K95
MFD\O"3Y7YCM]&YX]Z (8=>LI[VTLUD3S[F$SJHE0X7Z@_,>#]W/0_C5MO$ZZ
ME/<KI%A<7\%M*89;E'1(RZ_>5"Q!8CH3C;GC/6EG\+:5#90?V=IEI#=V$$L>
MGR+& ;<LI'RGMDFL+X/R1?\ "L]+ME&R>U,L%S$>&CE$C;@P['G/XT =5I&K
M)K%K+,EO<6YBF>!XKA0KJRG!R 2/H<\CFM"N-\2:KCQ7X;T>*4Q66HW5PMY)
M"Q0N\<65C+#!Y.,X.3LQZBN4\3W>IZ;IGC_3;;4+Y;33[:WNK*87#^9 T@.Z
M,/G<5XR 3P#CTH ]=HKSZXTUD^(]GIHU/5/L>HZ7--=1?;I '=)(P""#F/[Y
M^YM].E8,=WJ,GA;0H1J^H(T?BIM-\Y;AO,> 32*%8G[V J_>STH ]?HKRJ^D
MG\,:OXHTK^W]3BTEM,@NTN))6N)K2:25H]B,YSE\<9/!.>.M.N[G4+6[\;V0
MFN[..'0DO+>);YY&@DVR_,&SE2=BY )&1U.: /4Z*\UTU+BS\0>"&&HZA+_:
M^FS+>K-=NRR;8492%SA2"3RH!Y.>:33YKRVO;_P-<W]_)?-?+/;W;W4AE:Q8
MERV_=N&W8T60>I7UH Z.\\9FT_MM3H.K22:48V,:1+FXC<D"2/YN5&ULYQP*
MUK+6;>\O/LA5XIVA%Q$KC'FQ''S#Z$@$=02.Q!-EK"T:.9'@1EFQYNX9\S'
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
M,GH* +M%4)=<TF%[1)=3LT:\P;4-.H,_^YS\WX5*VIV"2W$37MNLEL@>=3*
M8E/0MZ#@\F@"U5'5-'T[6[06VI6D5S$&#J''*,.C*>JD>HYJ#_A)]"%I<W;:
MO9+!;,%GD>=5$1(R V3P2.F>M,3Q7X=>Z^RKKFG&X\XP"+[2FXR#J@&>3STH
M LV&CV6FL7MTE:3;M\R>=YG"^@9R2![9Q4%MX9T>SNOM%O9+&PE,ZQAV\M9#
MU=8\[58Y/( /)J^E]:27LEDES"UW$@>2 ."Z*>A*]0#@\URVNZSK=MX[T;0[
M"YLXK?4;>>5GFMFD9#&%Z8=<@[J ,6Z\&RWFO:C<:GX4L[^:YN6>._@U%[<>
M7P$#JN&#!0 2-V3S77:=X8LK,VMS-YLVHP6@M#=F>3>4[KG=G&>>><C)YYK-
M\*^+I=3378-9%K;7&BWC6T]Q&Q6"0=0XW$[?<$G'K6M=ZU!=:)J5QI%];27%
MK$Y)^_Y;A<@,N01^.* (9?!?AVXT/^Q9M*BDTX2&58'9B$<DDLISE3DGD$=3
MZU9MO#>D65M96]M9+##92&6!$9@%<Y!8\_,>3R<]3ZUCZ1K<^H>'/"5W<ZU:
M6=Y?Q0S312(NZ[W1Y9$&1@Y(.0#C%;UUK>EV5TMM=:A;0S,RJ$DD .6^Z#Z$
M]O7M0 EIHFG6.I7>HVUOY=W>$&XD#M^](X!(SC@<#T%/U32-/UJT^RZE:17,
M.X.%D'W6'1@>H(]1S1;:SIEY/=06VH6LTMJ<7"1S*S0G_: /R_C4]I=VU_:Q
MW5G<17%O*-T<L3AE8>H(X- %:PT:QTUM]NDK2;=HDGGDF<+Z!G8D#@<#CBH(
M/#.CVMV;F&R5&,QN-@=O+$IZN(\[ W^T!FLEO&MI!X<U#Q3<RA-'@,B6R@9:
M?8Q7=_P)E(4>G)Z\0:AXM^S>*]!":E9+H=[:W4LTA(P#$$P?,SC&6QVZ4 =%
M;Z/8Z;>7NHVEJ_VN[PTY60DS$# SN.,@<#T''2N;\!^$AI/ANP@U:P9+^UFD
MEV-.9(PY=B'50Q4-ANN <Y^M:^HZW97.@17VG>(;"TAGE00WKE9(W^<90 D
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
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 56U#4+;2[&6\O
M)#'!$I9V"EB .>@!)_"K-4]7_P"0+?\ _7O)_P"@F@"GX9\2Z?XMT9-6TLRF
MT>1T1I$VEMIP3CTX[UL5YC\#[B&U^$5I<7$L<,,<L[/)(P55 <Y))X KTJWN
M(;NWCN+>:.:&10R21L&5@>A!'!% $E%%% !1110 5C>(?%&E^&8('U"5O-N9
M1#;6\2[Y9W/ 5%'4\CVYK9KQOQZDT/Q\\$7-WG^SF3RX2WW?.W/D?7+1_I0!
MZ%)XQL;/5[+3-5MKO2[B_P BU-T$*2L,?(&1F ;D<'&>V:Z*O'_VA%>?PWH5
MI:AFU";5%%LB??)V,./Q*_I5CQ%JNJ>"_B=I-Y>WE_=:+J]LUN;99W9([L 8
MV+G'S': /]IL=* /6**\IUS4=4TKQCX.\)/=7,L%U!+-=/\ ;'C:YF"MA?-S
MN"AN0 ><@5E>+;GQ?H'A;PI;7FM/'JQUE;22>VN&821-DJ).FXXVYR.<>YH
M]KK.U[68/#VA7>K744\L%JF]TMTWN1G' X]:\X\>^']=\,^#+G5])\2ZY>7%
MG>_;9EGNV^> X#1_+@;1C=P!@;L5+XIU>>]^&.O>+],OM0M5N(87L=MQ(GEJ
M"H+!<X!+%@?4 'O0!Z787D>HZ=:WT22)'<Q),JRKM=0P! 8=CSTJQ7CG_"2:
MM?\ B'P3X?DN+AH;SP^EY(5NV@>YG:,CF0<G&TMCN3SVJ/Q)<^*_".B>$M?U
MG5IIFLKL6NL1VMRYBFC+':Y QE@!@\<DC- 'L]%>,^&;_75\>:KX2U6[U)C>
MM!J%F[74N;>WSO>/=G/I'GN<U[-0 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !4%Y9PW]I):W <PRJ5<)(R$@\$94@U/10
M!S]GX)\/6'AZYT"VL"FE7*LLEL9Y&4@]<98E?PQ6KIFF6>C:9;Z=I\(@M+9!
M'%&"3M4>YY/XU;HH **** "BBB@ K/UC1--U^R^R:I9QW,(8.H;(*,.C*PY4
M^X(-:%% &+!X5TB#4X=3>&6YO8%*0SW=Q).T0/79O8[2>Y')J_?:79:D]H]Y
M;I,UI.MQ 6_@D (##W&35NB@#%\0^$]$\516Z:Q9"<VS^9!(LC1O&WJK*01T
M'?L/2HK[P5X?U*SL;2[L&DAL9/-MU$\B['Z[\A@6;/.3D\GUK?HH BGMH;JT
MEM9XQ)!+&8Y$;D,I&"#^%9UYX:TC4/#JZ!<VF[2UC2(6ZR,@V+C:,J0<# []
MJUJ* .:U#P#X:U2QTVSN].+1Z8 MFZSR+)"!C #AMV.!QGL*U)]!TNXT==)F
MLT>P4J?).2"58."3U)W ')ZGK6C10!4_LRS_ +7_ +5\A?MWD?9O.[^7NW;?
MIGFK=%% !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 %%%1S7$%LH:>:.)2< NP4$_C0!)155=2L'8*M[;,S'  E4DG\ZDM[
MNVNQ(;:XBF$;F-S&X;:PZJ<=#R./>@":BBF2RQP1F261(T'5G8 #\: 'T5##
M=VUR2(+B*4CKL<-C\JFH **A%W;&\-H+B+[2$\SR=XW[<XW;>N,D<T6UU;WD
M1EM9XIXPS(7B<,-P.",CN""#0!-1110 4444 %%%% !14%Y>VFGVYN+VZAMH
M1UDFD"*/Q/%20S17$*30R))$ZAD=&!5@>A!'44 /HHJ&ZN[:QMWN+NXBMX$&
M6DE<(J_4G@4 344=:* "BH;:[MKR-I+6XBG16*%HG# ,.HR.XJ:@ HHIDTT5
MO#)--(D<4:EW=V 55')))Z"@!]%-BECFB26)UDC=0R.IR&!Z$'N*=0 4444
M%%%% !1110 4444 %%%% !1110 445#)=VT-Q#;RW$23S9$4;. TF!D[1U.
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
ME_UB+V(.6P3C;G^+% #Y?%NLWGB.72=%TNQN%%C!?Q3SW3(KQ2.1R A(;"G
MY'OV/)Z[J&J:S\,?'4FK?9I1;7EQ!%LS\AC=5 4'H,#KUR3ZUW=CX;GL/&4F
MKQ2P+9'3HK!+8*=R+&S,IW9Q_%C&/QK'O/ FHSZ!XFT:/4[9;;6+J6YC9K=M
MT1D8,V?F^;!&!C'7F@#5T_Q!J)\7_P!@ZC8V\*RV!O;:2&8N=JNJ,K@@#/S
M\9'7KUJ"]U/5_P#A9]EI$36_]G-I<MPT;%LL?-C4D]L@$@#W.3Z6QH-\WC2S
MU^2>W"0:>]D\*JV6W.KE@>W* 8Q^-.U#0+R;QC8:_9WD,7DVDEI/%+$6WHSJ
M^5((P<KCG/7I0!Q.@:]?^&="U"[AT^V?2H_$ES!.3*5D"R76P%%"XPI8=2,\
M].IZ35O&E["=3?1]*EU :;.()(4@F9[A@%+A&52JD;L<]2#T&":LG@74I/"F
MH:,;^U#W>JG4?.\IL+F<3;-N>>1C.>G:K0\+>(-/U^_N]$UJUMK#5)!/=V\]
ML96AEVA6>$[@,D ?>! (Z'I0!N:SKT>D:+%?F!WDGDAA@@?Y&:65@J*V?N\L
M,^@!K+U35]9L=,\0'4-$M;JVL[$W$<GF[8;E=K%XV4AB" /0@Y[5>\3^&T\1
M^&WTH7<MM*K1R6]T/F:*6-@R/SUY'/KS5)]#\1:CX=U*RUC5;*2[N[1[2,VU
MNT<,892"Y!8EFYSU &,#&22 4IO%6J0/X9L-+T>R9M7L'FA#W!C2%DC5MI 4
MX7Y@!C/3&!UJP/$VMW=EJ$NF:3;W-QICI!<VPG.9I]B-(D;$  *'P&/4@\#J
M5A\*ZA'J7A6Z-W;%=#M9+9U"-F;>BH2#GY<; <<]<>],_P"$5UO3O$>I7FAZ
MS;6VGZK()KJ">V,CQ2[0K/$0P&6 'W@0".AZ4 7(_$=Y)X@UK2?LD2M8V45W
M$[.?FW[_ )6 Z8V=03UK+MO'.HWT?A)K;2K<GQ!;R2_/<D>2RQ[\?=Y'3GKU
MXJ[=^%]27Q/<:GINH010WM@EG<I<1-(XV%MK(=PY(<@YSZ\]*I:5X)U'3E\(
M*^H6LH\/QR1MB%E\X/'LX^8XP.<]_04 59O'FNV^@:UJ3Z/8DZ%=/!? 738E
M"A6)B^7KM<'YL<\<]M;4_&#0:]+H]I]D2]%HES;0WCF,WI;=\L9Z9&T>N2>@
MQFJ=QX(U"XT#Q7IAOK53KUR\XD$;'R Z*I&,_-P@YXZU/K_A"\\1:;<:;?MI
M\UM-"BQ2/&WF6<@7!DC/<\ @<8(Y)!Q0 EAK.M/X[\46KI%/9Z?;6S0V\9(<
M[EE88SP68@ ]!P/2G:7XOO;KQ#;Z-<6UG]IN-/:\V13$_9Y%*AH9#@\C>/F'
MH?EIT_A"^.L:W<VNK^1!JVGQVLC>43-&Z(Z*ZON _CR>,Y':JVE^#]:L=5T3
M4)=1TXG3;"2Q,,-HR*ZG800=QP24Y.,<\#O0!6T[Q]JUUIF@:M<:1:16&J7W
MV%PERS2QNSNBL!M *Y49YSST%:X\2ZI?0S7VC:7'>V<%\;-H_-VRRA7V22*3
M\H"MNX/4+G(S69;^!=1M_"VA:,+^U9]+U);XS>4P$NV1I N,\<L1G)Z=*LZ?
MX2UO1]3OX-.UJ"/0KZZ>Z>%[<F>%G.76)PP !.>2"1GCGF@ U7QK>PC49=(T
MF;4$TZX^SR0QP3-).1C?L95*@KGH3R0>G!,S>,'F\27&C6JVL=W T!%I=L8Y
MIXG"LTD>>NT,PQR<H0<5&OA;7M-U_49]$UNWM]+U.;[1<P3VQDDAD( =HFW
M M@'Y@0#V-.U_P '7'B%Y(+N2U>W6XBFL[HJWVFS"!-P1NY8J3G(QNY#4 ;F
MN:A=:=:P/:6RRF2=8Y)9'"QVZ$$M*_L,=.Y(Z5RDOQ"NH_">JZO%I]M<R:;J
M8T^39.0DH+QJ)$X/7S5."?7FM_Q3H5[K2:8]C>0P2V-XMUY=Q&9(I@ 1M8 @
M\9W ]B!7/W'@'59]%U[3CJ]HPU74X]0W_9F'EL&C8C&XY!,0 ] 3R: +TOC:
M?1]3UFV\06<%O'8Z<-21[64R;HBS*4.57Y\KVX.:S-2?49_B%X$N;^UM(C*;
MIAY3$O&3;L=C$CYNO48YSQ6GK?@F3Q#K.HW-]<Q+:7^D?V:\4:G>AWEQ(&/!
MP3TQV_"H[?PMXCEU+PY=ZEJ^GRMHK2#=':N&N%:/R\ME\!L'MP#Z]* -'Q%X
MBU#2=<T73+'3H+IM4>6-7DN#'L9(R_(VGCCD]>N :Y^?XB:K8Z;JRWFBVXU7
M2;VWMKF&.Y/END[*(Y(R5YSNZ''3KVJYXT>5?&_@@6TD*S_:KHJ)B=K#[.V1
MQR,],\X)'!Z4NK>!KO5++56^V6\6HZI>6UQ-(8V9(T@*F.-1D$_=Y)QDL>!P
M* +Z>(-775;;0[FSL8M6N1-.OES-)%';H5 <Y526)8#;QT)SVJK!X[++/8W%
MDL>M0ZFFE_9Q)^[:1UWK(&QG84!;IG@CWK0U?P[<W6O:7X@L)XH=2LHW@DCD
M!,<\3XW(2.1@@$'GW!K*U'P ]_9W=RFH"WUV;48]3CNTCRD4L:[$7:3R@3*G
M)YR3[4 7KKQ-J6D1W2:KI@#B[AM;&:%B4NS(.H4;F7;SD8/3C-5&\<W6G0ZN
MVJ:1<*MF8A:3K#)%'>-*0JH/,4%6#$ ]>#FI=1\*ZSKV@M%JFLQ1:LDT5Q:S
MV4!6*VDC)*D(S$MG)SD\@XP,4V_\):SXC\-7=AX@UB#[9)L-O+80%(X'1@RO
MM9B68D#/(&. !R2 9\BZDGQ=T][F&R$[:)<E'BW88^9%\K9YX]>^>@JY:>.K
MFZ\/^%-6^P1*NMW:6LD?FDF$L'.X''S?<Z<=:L6GAW7I?%6G:[JFHZ>SVMG+
M:216]LX$@=E.02_!^0=O;WK*M/ .M6VDZ%I?]L67V71=16ZMF^RL6D1=^ _S
M_>^?'&!WYZ4 7(?&6KR76M22Z79Q:;HEU)'>S?:F9O*6$2;D&P9//(..HZ\D
M3V7BS5)M6T^&71+A[*^A>3SH;:8?965=P60L@5@PX!!'/&.<U/I_A.6-?$\&
MHSQ36FNS/(Z1*5:-7C$97)Z\+UXJ+P_H'B?3;:.PU'Q!;W5E:1F.U:*V,<TG
MRE5\UMQ!VCL ,D D^H!+X3\5OXH6&Y@:RDM9("\RPR'S;27*XAD4]\%N>/N]
M*M?V[<GQK-X>$$6T:<+Z.?<<Y\S9M*_AG(-4M,\)S0^)[;7[PV:7\5H]O<2V
M:%/MI8K\\@/3&TX'/7KQBI]1\/ZB_C&WU_3+VVA8V1L;B.XA+_)OWADPP^8'
M(YXYH Q[;Q]J-WI'AB]ATBW9]:N9+8H;H@1,OF8YV\@^7R>H]#4\7CJ>VL=7
M74[&%=2L-0CT^.&WE)2XDE"&+#$9&=XSQQ@GGI5?3? >I:?I?AFS;4K67^Q;
MR2ZW>2RF0,'&WKV\P\^PXIVH> +K4QKYDU&.";4+Z"_M)8HR3;31*JID$_,/
MD&>G4T 5);N72?BK=:CJR6R1V_AJ6>26V!^9%F4G(/.1@]^>.G2MBR\5:O<:
MMI]N=$E>VOX7<3+#,BVKA=RK*[)@ANFX=^QZU"WA#5=5UQ]0UR^L7BGTF32[
MB"U@==RNV259FX/'H>N/>K/AS0O$^DQ0V>HZ[:WME9)LM=ENT<LH VKYS;B"
M /09) )/J '@WQ'K7B>SMM2N-+M+73IHY1N2Y+R"1)2@&-H&T@'G.<CH,U%>
M^+M1L[OQ-:-8VOVC2;5+RV5I6 NXB&.<X^4@J5[\UI^#M"N?#7AJWTFYN(KA
MH'D(EC0J"'=GZ$GINQU[4W5O"\6J>)M*UGSVB-FKQS1J.+A"5=%;V61%;\_6
M@""PUX^(+'2VAAMIK6_T\W=QDDB,$#:N,<DDD<X^XU<GX$\0:CI'A+P/;36-
MN=,U%5LUE$Q,RR;'96*XQM.PCKGH?:NO\/>%%\-V>IPVDXD-S/));B0?+!&Q
M++$,?PJSN?\ @1K)M/ ^H6N@^%-,%];-_8-TMP9/+8>>%5U QGY>'///2@!\
M?BZ+3YO$\DVDV\-Q9W\%HH@?YKN654$99MHY^=1T. .^*/%,^K3>%_%=CJFF
MP&U31YIH+R)LH[>6^4*GD,I .>ASVIM[X!FU.+Q-%<Z@D7]KW,5U!+ AWVLD
M2H$/)^;E >W<5=DT'Q'J?AO4K#6-6LI;J[LY+.,VUNT<2!UVF1@6)9OR [=3
M0!3\.^(-1M;KPUH][8VZ6NHZ;OM98YBTBM%&A(<8 &0V>"<8JUX@U36+;QYX
M:TVS:W%G=I<R2*Y8%VC0=2.WSY ]1[4Z/PM?KJGA:\:ZMMNB6TENZA&S-O14
M)'/RXV XYZX]ZN:YH%WJ/B'1-7LKR*"73C,K++$7#I*J@XP1@C:,=J .(LM;
MOO"MIXVU.RTZUFL;/7));A7E*,4\N$$1@*1D YYP/Z=7K'BRZ@O-1L](LC=7
M&GPI)(AAE?S'92PC!13M)7')_O#CKBA=^!M0NO#_ (JTLWUJIUV[:X$GEL?(
M#*BD8S\W"#GCK5FZ\,:_;>(Y-:T+5K.VDO88XM0M[JW:6)F0861,,I# <8S@
M]Z %\7>*+S3OA7?>(K:UGL[TV:ND,Z8D@=R%^8'NI;]*TM!\.Z;:^%;:P>VB
MN$E@5KEY5#FX=AEG<G[Q)R<FKUWHUOJ.@2Z/J+/=P3P&&9I#\TF1@GCH>_'3
MM63HVD^)-&L(=+_M*QN[6W41P74T+"8(.%#J#M8@<9RN?2@!MM>-IE[:^#]&
M6)I;'3DE:6Y)*I&#LC7 Y+':>XP!GG.*S/\ A8-U)IVG30:3']JEUG^QKR![
M@CR)@3G:=OS+QG/'!'!Z5JW'AF[M_$]OX@TN[1KK[']BNHKO)6X0-N5MR_=8
M$GL00<8%4)O TXM;!+:\A^T1ZU_;5W(\9Q-*2254 _*,$ ')P%'6@"-O%OB/
MSO$%BNDZ:;W1D2=V-T_E21NA=0/DSN^4CG [^U/'C75+^^T6UTG2;9SJ^E'4
M(7N+HJ(_N?*X"'@;^V<GTZU</AF_&K^)[U;JVQK-O' B%&_<[$9 2?XL[B<<
M=*YNWT^^T/QOX/TF*>TFN;'09[<E\HLJJ8E'J5)QGH>A^H -G3/&NH:EI#.V
ME1VU_:ZD^GZCOF!AM"B[C*6X+(1MQTY8<]ZKO\0;L>%[C58M.MYY+75AIDH2
M<A7S*J"1,CG.\'!(^IJ:;P->H+6ZL]1@%^NJOJET)X"T$SNI3&T,#\@V[3GJ
MN>IJO)X"U5](U.P.K6CB]UA=4#FV9=I#I(5(W<Y* >P]>P!I0^)-<;5M:T>3
M3+(ZE:6D=[:)%<,8YD<L-C,5!#90C.,<U+I/BN76M*\/75I#"9=3W-/$6/\
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
M\H <YSDYR.E5-:O)?$W@CQ_>3W=S$=/>\LX8(I2BHD4?\2CAB_).[/!&,8H
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
M.::G_"QO&A2YNU9#:;6\]C]Z \D$D'&>,@XH [/3+U]1TZ&[DLKBR>3.;>Y
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
MZGHRDL#CT^E5(/$>I6]G):-=NXN/%<^EK+/.5,<(#,J"3!(R5"@X)^8\@\T
M>HUDIK\#>*W\/&WG6Y6S^V>:P7RV3?LX.<YSGJ!TKC=5O=>\+6US#/J<?DZC
MJ5G;6G[]IY;".5MLC%W4%A\K;<YP?7%7;*Q6Q^,LB1SW$B/H 8">9I2I\_!P
M6)./;- '2ZOK\&C7VE6L]O<.=2N1;121A=J/M+?-DYZ*>@-:U<3\0HGGO/",
M23R0,^MH!+'C<O[F7D9!&?J#67'8Z\^I>*O"UIK^H2>3:0WFGWDLN9;>5]X\
MMGQ\RDIG!Z _C0!Z53)9HX$#RNJ*6506.!EB !^)('XUQWA;6SXKDTRYADN(
M4LK0_;H/-;BY)V>6_/)4I(3GGE#WIOQ+MQ/8: #+.@_MVQ0^5*R9!E'7!Y]O
M0\B@#H+/7X+SQ)J&AK;W$=Q8Q13.[A=CK(6 VX)/\)Z@5J"-!(9 BAV !;')
M ]Z\WN=->Y\>^)X(M1OK01:-:$26\VV0D&;!+G)XQGW[TW1_$6IZ_'X7TZ:4
M&2]T,7TS"Z>V:>3**<.BD\9+8&.OH,4 >F45B^%H-4M-%6TUB_BOKR"1D,\9
MR2N<J&.!E@" 3CGK6U0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !5'4](L]8CACO%E9895F01SO'\
MZD%2=I&<$ \^E7JYGQ]K]]X6\)76M6"6TLENT8,4ZL0P>14Z@C&-V>_2@#3U
MS0--\2:6VFZK T]HS*S1B5TW$'(R5()Y -/N-%L+RTM;:ZA-Q':31SP^<[.R
MNARK;B221[U!K][?Z5X6O]0@:V>[M+:2<[XVV/L4MC ;(SCU-69-3M+&,KJ.
MHV<4T<?F2EG$8"Y W89CA<D#)/>@!\&F6=MJ5WJ$,"I=W@03R#K($!"Y^@)K
M#B^'WAJ%8%CL9 EO<FZ@3[5+MA<YSL&["J=QRHX/<&M2_O':'3YK'4;"*.:Y
MCR\YW+/&>JQD$?,>,'GZ&H[+Q/I.H:]>Z-;7L,EY9A?-02#.X[B5 ZD@#GTR
M* 'Z=X>TW2FOFM87'V^4S7(DF>02.1@DAB1R !QZ5EV_P^\.6PM4BMKD16EQ
M]IMHOMLQ2!\'[B[L*/F/ XK=MM3T^\N);>UOK:>:+_61Q3*S)]0#D5SWB3Q4
M=.U31+/3KRPE>ZU..SNH"=\J(P8DC#?*1MQR#UH M?\ "#>'O[?DUI;$K>2R
M"60+,ZQR2#H[1@[2W?)'7GK27W@;0-1N[^YFMIE;4(_+O$AN9(DG&,9=%8*3
MCN1FNCKAM+\5:WK_ (:E\0:.=,FC#N!I[1OYL85B,,X?[^!NV[!UQGO0!V5G
M:0V%G#:6RE8(4"(I<L0!T&22367-X4TJ75)M2B2XM+N?'GR6ES)#YV.A<*0&
M/N1GWJ3_ (2?23XD;0!>PG4%B$KQ^8,KDX"_[QY..N.>XJW#J^FW$LL4&H6D
MLD*EI$296* <$D \"@"O>>'-*O\ 2UTZYM=\"R"93YC!UD!R) ^=P?/.[.?>
MH9O"FD76G7ME<PRS17P"W3/<.9)@!@!GSNP!VSCD^IIVB^*-'U^QGO+"^@D@
MA=U=A(. K%=QYX4[203U'-7(=6TVXM)+N#4+66VC)#S),K(I'4%@<"@"J?#6
MF'4;*_,<YNK&)H;>0W,AV(V,C&[!S@9SGH*Y;Q3X/2/2[*ST33;J9)-;AU"\
M"71R 'W2.&=P03_LGK7<6M[:WT1EM+F&XC#;2\,@< ^F1WY%8?BCQ&VB7.CV
M4;V\$VJ7)MTN;H$Q180MR 1DG 4#(R3UXH OPZ!IJQ7@DMS.;Z,1W+7+&1I$
M ("$DGY0">!QR?4U0TKP+X?T:TN+:RM9DBGB,+!KJ5RD9ZHA+$HOLN.@]*N:
M7/K/]J7MIJB6KPQ11/!<VZ,@D+%PP*L3@C:O<]<]\"[::GI]_++%9WUM<21?
MZQ(95<I]0#Q0!F1^$-%BCTI$MY@ND_\ 'D/M4O[GY=O][GY>.<\<4^#PII$!
MA @EEC@+F&*>=Y$C+@ABJL2!D,P]@2!C-74UC3)9)HX]1M'> ;IE6=28QG&6
M&>/QIXU*P;R,7ML?M'^HQ*O[W_=YY_"@#$LO 7AVPDT^2WLY@^G,QM"]W*_E
M C!498_+_L]/:I)? _A^:RU&R>SD^S:C*9KF(7,H5F)W-@!OE!/)"X!/6M4Z
MMIHN!;G4+3SRYC$?G+N+@9*XSG(!!QZ5C'Q39Z+H^FR:YJ^GS7-Y/Y"2VK!8
MY&+D97+' 4?>.>Q]0* +]WX;TV\O+:\=)TO+:,PQW,5PZ2>6>JLP.6&><'//
M/6F2^%=&FCTZ,VK(FFR>;:K',Z!'YRW!&XG)R3G.3ZU/;74LVMSHM_8RVGV>
M-XX(^9E))R['/W2,8X[&I[?4]/N[F6VMKZVFGB_UD4<RLR<XY .1S0!#8:%8
M:9J%]?6L<BW-\X>Y9IG<.P& <,2!@ #C' INHZ!IVK7UE>W<<K7%DQ>W9+B1
M/+8C!.%8 G!(Y[59MM3L+V5HK2^MIY%&66*56('N :GEEC@B>6:18XT!9G<X
M"CU)/2@"A8Z#I^FZE?:A;1RK<WY5KEFG=Q(5& =K$@8  X'2JUEX2T;3WB^S
M6SK##,9X;<S.88I#G+)&3M7J2,#C/&*T(M5TZ>UENH;^UDMXB1)*DRE$(ZY(
M.!2P:G875R]M;WUM-<(@=XHY59E4]"0#D YZT 9C^$-%DAU6%K>8QZL2;U?M
M4O[XD;3_ !<< #C''%3#PQI0O=-O/*G,^FQM%:L;F0^6I !&-V#D =<]!65X
MI\5'2[W1[73KVPDFN-4@L[JW8[Y%C=L$@!AM(]P>M=8<X..M $5S;07EK+;7
M,*302J4DCD4,K*>H(/45D6/A+2]/C2&#[8;6/&RUEO)9(E Z (S$8]CP/2LG
M0M<U_7=0UZV6XTRW72[YK0$VDC^8 JMN/[T8^]T]JW[/5%CMK6+5;JQAOYAQ
M&DH DYP"@)R0>"/K0!'>>&M,O=2?47CFBNY(O)EEMYWB,L?97VD;L9.">1V-
M6+K1=.O-#DT6:TC.G/#Y!MU&U0F, #'3 Z8Z5/'?V<T,LT5W \41(D=9 50C
MKDYXQ7.>,/%#Z=X&U/7-!N[&YELUSN)\U,Y (^5A@\__ %J -K6-!TO7M(?2
MM2LXY[)@/W?*[<="I&"I'8BLT>!M _L4Z2]M.]JTJS/ONY2[NI!4L^[<<$#
M)P,5M0:A975Q/;V]Y;S3VYQ-''*&:,^C '(_&FVVJZ=>2R16M_:SR1#,B13*
MQ0=,D \4 4-=\*:/XDM[:+4[9Y3:MO@F29TEB.,9#J0W/?GFH[KP;H=YI=II
M\EHRQ6<GFVSQS.DL4G4N) =VXY.3GGOFM&+6-+FN(8(M2LY)IU+11K.I:0 D
M$J,Y(!!Z>E/GU.PM9U@N+ZVAF;&(Y)55CGIP3['\J *>D^'-,T2ZO+JQBE6>
M\96N'DN))#(0 H)W,><#KUI=0\.:9JFJV6IW<4S7=B6-M(MQ(GEEAAL!6 Y'
M!XJU=:KIUC%'+>7]K;QR?<>:94#?0D\U:!# $$$'D$4 5=4TNQUK39].U*V2
MYM)UVR1/T8?T.><]JQ8? 7AZ'1+G2/LL[V=T LXDNY6=U'12Y;=M']W..3ZT
M7?B*YN?%;>&]&2 W-O MQ>W,ZEH[=6.$7:""SMR<9  YYZ5=M9];BUQ+.]2U
MFLWMGD%U C1D2!D 0J6;'#$YR<X/ QR 37&A6=R;-F:Y62S5E@D2YD5P& !!
M.?FS@?>STJO+X3T:6TLK<6K1_89&EMI8I622)VR68.#NRV3NR3NSSFM"WU/3
M[R>2"UOK:>:/EXXI59DYQR <CFHQK6E&6&(:G9F2=BD2>>N9&!P0HSR0>H%
M%*Y\):->:6VG3VTC6[SBYD GD#22@@AV8-N8Y ZGL/0477A+1[V]N;RXAG>X
MN;<6LK_:I1NB!R%X;C!R<CG)K0@U73KD7!@O[646QVSF.96\H^C8/R_C3(]9
MTN6;R8]2LWE,(GV+.I;RR,A\9^[CG/2@!+'1[2PN9;F(2/<RHL;S32M(Y1<[
M5RQ/ W$_4D]:J:OH[7&JZ;K-J ;VP+KL)QYT+@!TSV/"L/=<< DU+>:G%=>'
M[F]TG5=.&(V\J\D<20(P[L01P#[U8FU2QL8HOM^H6D+.F09)50/ZD9/2@#(O
MO OAW5)M0FN[&1CJ(7[5&+B14D8  ,4#;0PP/F SQUJR_A+2)&FW13M'<%#/
M"US(8Y2@4*64M@\*N?7'.:T;C4]/LYEAN;ZV@E<95)9E4L/8$U##/<-KUS"U
M[9O;K A6V0?OT8DY9N?ND8QQV- %V:&*X@D@FC62*12CHXR&4C!!'<5SEIX
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
M-MI-_I;::K65].;B>(R.09"<[EY^0_[N.E:L>L:7-/#!%J5F\TX+11K.I:0
MD$J,Y."#G'H:?/J=A:SK!<7UM#,V,1R2JK'/3@GV/Y4 94?@K0$T&XT5[(SV
M5SCSA<3/([D="78ELC QSQVQ3M/\(Z1IFIQZG"ET]]'!]F$\]Y+*WEYSM.YC
MD9]:T;K5M.L8XY+O4+6W27_5M-,J!_H2>>HJX"",@Y% &?JVBV.MPPQWT3MY
M$HGA>.1HWBD&0&5E((."?SJI<V\GA_3;BXT729-2O)9%:2,W(628\*6,DAYP
MO0$]!@8J?Q%JKZ+H-W?0P&XN47;;P#K+*QVHGXL0/I2>&M<@\2>&]/UBWP$N
MX0Y7^XW1E_!@1^% #?#NE'3+&=Y88H;N]N)+RY6+E1(YZ9XS@!5SWQGO5C6-
M&L->L/L6HPM)")$E7;(T;*ZG*LK*0001U!IXU;33<RVPU"T-Q$I:2+SEW(!U
M)&<@"JN@>(]+\2V;W6EW<4\:2/&=C@GY79=V!T!VDCU% $<?A72(KRZNXX9U
MGNH%MIG%U+\T:YP/O<8R>1SR?6JEUX!\.7FDZ?ILME((-._X\V2XD62#MA9
MVX#VSC@>E=#<7$%K"TUQ-'#$OWGD8*H^I-9NI>(]-T[P[=:W]KMYK2")Y \<
MRE9"H)VJ<X).,8H NV%A:Z78Q6=G$(H(AA5R2>3DDD\DDDDD\DFK-<WX8U+5
M=7$.H27FF7.F7%HC[;8$203G!*9R05P>^#GMS724 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5Q_Q
M2T^[U/X;ZQ;64#SW&V.58D&68)*CD =SA3Q7844 <AK?B/1]=\*7=GI>HVUW
M=:G;/;V\$,@:0M(NWE1R ,Y;/3!SBLZ[CTI_C2/M26;,-!8MYH7[PF')SWVY
M_#VKOA&BL65%#-U(')IU 'B6GW%@/AYX#9IK?=!XB55)89C03R\>PV[?PQ6[
M?R7'_"0?$>PL'9-6N[&![*-<AY,6[#<OX\9]<=\5ZA@44 >6:;>Z-XCBMM0\
M/WU[<>(+'39X8+?8L?V0M&1LE"HHP'"@ GKR.,FLM=;T2Y\+?#V&*>);ZQU6
MU2[A;_702"-Q+O'5<ODDGKUKV8* 20 ,\G'>C:H.=HSG.<4 +7C6N1Z+)IQ\
M9^#]3_LGQ-*JR/80/G[9(2/W4D'5F))Y YZ\]:]EINQ-P;:NX# ..0* //KJ
M_CL/B9>RW\3>;<>&XMEO'DM,ZRRET3'4C(Z=,YK!\/:KI\_B;P%-:7,(MFT^
MYMX[> ,RV_RQ;82YR6<8^;)[9P,\^PT8 [4 >,6^H&T^'J"-IB-,\0RRZK%
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
M^WI%_9S7L2)#J%S9%6R7MUC);V.]&'Y"L]=!O%SM\3:L,G)Q':\_^0: //\
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
MW-]IEW?&73YYD"W$%Q*7^5^0&7"]??\ 'T/0UO/L+27MA;V$LK[A:PL&\M<
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
MU#3[J8W]T]XK-,'C= Z\<(-P(48QTV]Z .GU+QQ9:=IUQJ8L+VYTVWF\A[N
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
MJ4*GG<"GTP>O8V_$WAG4=:E>Z@TN2SUR"%!I^JV=VJ&-L<I+D@L@;/&UL@G
M]0#H-:\96.BK?.]O<7,>GJ&O&@*?N00&Z,P+$*0Q !X/X47OB2SO8+BVT^&[
MU#%FMS(UDX0QQR E#N+*=S $@#G [9&<)M(\0Z-XJU.>UT2QUJPU5TG\R6=8
M6MIA&J-NW DH=@/RY(YXJ:UTC7]!\6:O=6]C'J5EK$$&YXY5A-O-''Y9RK?P
M$ 'Y<D>AH T/AK-+<?#?0)II'DE>T5F=V)9CZDGK4VL^,[+1GU(R6=Y-#ID<
M<E[+$J[8E?IC<P+8')P#@>_%+X"TR_T7P/I.F:G D-W:P")T20../<<?SKFO
M&/A[Q+KQ\3V7V"&\MKJU5=+DDN0J0'9\XV'^,MDAO0XR.E '37WB^&UUY]%A
MTO4;R^%I]L18$3;(F[;PS, .<]<=.Y(!+7QEIU_I&DWUI'<3/JI*VMJ% E)4
M$OG)P-NTY.<<<9)&:%II^KKX[AUF?3"EN-%%HVR9&(E\S?@9(R,<9]?;FN=T
MKPMXDT:P\*7\6GK->Z.]W%<V/VA 98IW+;D?.W</EX.,\B@#<\!W,UQKWC 2
MK=QB/4D58;J7>T?[E"0#N/&<D8.,&MS6?$]OHFJ:;I\MG>SSZB9%@^SQA@61
M"Q!R1@X'TYY(&36=X3T[5K37O$M[J%BEM#J-U'/ //#M@1(A! X'W?7\QS4G
MB'3;^[\6^%[ZVM&EMM/FGDN'#J-H>)D& 2">3D^U #[3QMI]QI-S>RV]U;2V
MU[_9\EG*JF;[02H6,;6*DG<N"#C!SD#-,O?&D5FNJV[Z;=)J=A9&]%G*R S1
M#/SJP8J0",'G(]#QGFKGPAKEU#J\\5LL-VGB*/6[%)95VSA$1=C%2=I(5OS'
MO6OJ'AV^\0ZO=ZK+:M8-_8TVG00SNC,SR\EFV%@%& !SDY/ P,@&_P"&-3N-
M8\,Z=J%W;/!-<6T<C!MN&+("67:3@$GC.#[5KUB^$H+^T\*Z;9ZE:+:W-K;1
MP,BRB3.Q N<CCD@_ACZ5M4 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 445A>)==?1ETVW@5#=ZE>I
M9P&0$JA(+%B 03A5/&1DX&10!NU3N=6T^TU"TT^XNXH[R\+"W@+?/)@$G ]@
M#S7&ZWXEUG3YO$6B//;K>V^C/JEC>Q0D HN5960L1N# 8.<8(XXP<R?^T6_X
M5HQGMY;QV8I(\;!0#9MRPW$L1UZC/MUH ]1HK@K;QIJ4%A?V]^EM-J=OK2Z3
M%)!$RQR%E5PY0L3D*Q^7=R1C(SFH=;\4^+-#T+Q!>R6%N4L5BEL[J:$HLRL0
M'1D$A(92>#G!':@#T'RT\SS-B^9C;NQSCTS3JXS4]8\3Z!<Z;/J4NE2:==:D
MMM,8;>0-!'(,(=Q?&=_RDXQ\P.!TJO8^+]3N;CQ)IS26)U"QNHX+';;N$E61
MMBLP+Y;#AU;!&-A- '8IJ5F^J2Z8MPAO8HEF>'^)48D!OS!JU7)'7]6A\6:S
MI?V>WNOLFDQWMNL*%'E<EQL)+'J4X^O>LNS^((DT&_U=;RTO%M;=/-LQ"T$\
M%RS!=DBLQ(7) SCL>30!Z#17,Z5J'B)O$;6E]9"32WMO,6[$/DF.4'!0J7;<
M".0>V,'-3:GK<X\46/AVP:*.YGMI+R::5"XCB0JO"Y&6+,.^  >M &IIVK6&
MKI.^GW<5RD$S02-$V0L@ )7/J,BK9(52S$  9)/:O+_#>M7>B6FM1.L4VH7W
MBN>T1HXSLW&-6+;-V?NH3MW=<#/>KGB'4/$TW@KQE#?6Z6\5O92-:WAAV_:(
MC$VY=@<E'4\;LX.0<4 =2GC'P])J,.GC58!=SLJPPMD-)N!*E<CYE(4X8<>]
M;E<(^H:CHT'@[*Z?.=0GBLI91;,KK&8F<!3O/]S]>@JKJ7BOQ/##XPFMFTI4
M\//O4/!(QG00K*5/SC:<'&[GZ#K0!Z+2,RHI9B%4#)). !7&W7BG4]0N;RUT
M.!1/:V<,_P \!E#22J65#AUVC '/.<]L<R67B/5M5U6UT86T6F:@NG+>WZS+
MYWE,S%5C4!@#RK$G/0#N<@ Z33=4L=8L_M>G74=S;EV02QG*DJ<'![\@TEEJ
MVGZC<74%E=Q3R6CB.<1MGRV(S@^^*Y?X6B4>#Y!.4,W]I7N_8"%W?:'SC/;-
M8%Q?ZSI&K_$?5-)>R3[#+#=2+<Q-)YH2T1B@PR[<@'YN?IWH ]/2WABFEE2-
M5DEP9".-Q P"??'&?8>E25QUQXHU#4+R6RT:()-%80W;,\!F&Z7<43 9< ;#
MD]\\8Q5 ^(_&%UJFD:6EGIVFWM_IDUQ)'=(TGD31LB]5;#*=W'<9SDXP0#T"
MJJ:E9R:I+IBW"&]BB69X?XE1B0&_,&N.NO$_B.Z@U)]$LHKJXTZY^S&#R3MN
M74+YGSEQLY8@<'H"<YP+R:_JK^+-6TORK2-8-*BO(-\9+*S,XVN0W(&WMCK0
M!UM5+C2]/NY?-N;"UFDQC?)"K''U(KAM'\8>(+BW\'ZE?#3C9Z\PAD@AB</&
MYB9PX<MC'R8VXXSU-=1XLUJ?0-#-_#"\B)+&LSI$93#$6PTFQ>6VCT^O:@!-
M0M_"^E&W%]:Z9;FYF6"$/ @,DC' 4#')R:N_V#H__0)L?_ =/\*X/Q+JKZSX
M6TB]@OK#48V\0V7V6>VRJ.OF+@,,L58'(/\ (=*U4\1^((+KQ1ILHTVZO=,@
M@N+:4 V\164-P^YSC;L)SN&1Z4 =%<:3H-I;R7%QI^G10QJ6>1X$"J!W)Q5
M3>#C;Z=.(M*\O4F5;,^0F9RW3:,9-9^F^([G4M4\0Z1/)%<0VME%<0W"6[0[
MQ('!&&)R,ID,."#WZUS-K_R3SX7?]A&R_P#14E '?:G;>&-&L)+[4K33+6UB
M&7EE@0 ?I^E6UT/1F4,NE6!!&0?LR?X5A_$__DF/B+_KR>F66MZU:^+H=&O1
M93PW6F/>6RP(R-&R,JE&8L0P.\?-A>G2@#3U/P7X9UBV%O?:'82Q@[AB$*0?
M8K@C\Z=I_@_PWI5M]GLM$L8X\Y.858D^I)R3^-<_I7BS59_$.CZ9=/92-J5G
M/+(8(6*6\T>PE5DW%90-Q!P>J]1G%2Z5XGUB\L+ZSN38IKUKJGV#RU@?RRI(
M97VE\D&++]1T([4 =-_8.C_] FQ_\!T_PH_L'1_^@38_^ Z?X5R]]XGU^Z75
M)/#]BET^G79MEMVAR+ADV^8-^\;.I X/0$YS@;GBF[O;;P3JU]92?9+R&QEG
M1G0.494+8QG&>,9Y'UH 2XM_"]IJ-II\]KID=Y>%A;P&!-\FT$G QT !YJ[_
M &#H_P#T";'_ ,!T_P *\_N/[1:3X:MY]O+>.9"DC1L% -FW+#<2Q'7J,^W6
MM.U\::E!I]];WR6\VIP:V-(BD@B98Y"RJX?86)R%8_+NY(QD9S0!U\>BZ5%(
MLD>F62.I#*RP*"".A!Q5ZN>\/W^O3ZGJ-KJUD%M(MC6EX(_+\T$?,K)N8@J>
M_0@U2O=7U^7QS<^'K"73X(AIBWD<\T#R,C&0I@J' ;[OJ.O?% '41VEO%;&W
M2%!"<[D(R&SUSZYR<YZYJ8    8 KS>P\:^(9]#\-:[.FG+:ZC?QZ?<6L<3E
M]S2-&9%<M@?,,[=IX_BJ]=>*?$%Y#>WF@:<+M;.^>U%J8N9UC?9(?,+@*<AB
M.".!G.> #NJ*X/Q/XOU;0CJ%R!9^7:7%ND=J$:5Y879%9W93B(Y9@NX<[>^:
MGO=;\23>*=<T;3Y=,A2RL8KN&6:!W.6+_*P#C/W.N1CT/8 ZNYU*SM+RSL[B
MX2.XO&9+>,]9"J[B!] ,U:KA;'QCJ&H2>!IQ!:I!KL3M<*58O&RP,_R'/ R,
M<@\5G7OC/Q/;:)XDU8?V5Y6A:D]NT7D2$W$2^7D [_D.')S\V3V&.0#TNBN3
MU/Q%?CQ#J.DV;6UL;+2Q?K)<QEA,26&.&&$7;R>OS#ICG)/CN]MM#\/:CJY@
MTVVU6W::6\-J[Q6[D(8XW^;Y0=S?,3CY>V<@ ]"HJII<TUSI%G/<2023R0(\
MCVYS&S%024.3\N>G)XKAF\:ZW<:3IVIV:6:&]UEM+-G+"S/"/,9 Q(8$L-NX
MC &#[9(!W4.I6=QJ-UI\-PCW=H$:>(=8PX)7/UP:M5R5MK&MWGB'Q5I,']GK
M/I\%L]F[0MAFD5SB3YN1E0."*3P]XGOM?TC0)HS;)=W0D;4(S"V(O+^615&_
M((D*J,D\'.* .NHKA;'Q5XAU:'2=5TS3A<:=>W 62$Q;3%;L2!*)"^"1P2NW
MG) Z9.=/XS\30:%JVLM_9?D:5K#64L*P/NGC$JQY!W_(<-GHV3Z=P#TB65(8
MGED8+&BEF8] !U-16-];:E807UG,LUM<()(I%Z,I&0:9J<T]OI5W/;>7Y\<3
M.GF@E<@9Y (./QKBH/%NN7-AX'>V33E?7HOWX>-\1MY!DRN&Z CIWQC(SD '
M9:OH]CKM@UCJ4)GM7(9H_,90Q!R,[2,\@'\*;>:OI>C^5!>7\,#%<HLLN6*C
MJW/.!W)_$UE^$=9U#5/[8M-4-N]UIFH-:&6WC,:2KL1U;:2Q!P^",GI6-XB@
M\2>'_%<_BC0[)-9LY[:.WOM/#;9T$98JT1[_ 'SE>_X\ ';6=[:ZA:K<V5Q%
M<6[DA98G#*V"0<$<'D$5/7 Z9XPTMM"TE?#4+C^T[Z>,12P_-;R?O)I0T8(Y
M!R,9_B!R1UF'BC7[&/[+J>GQQW-SJ<=CI]RR;$F1U+;V0,2"H5LC(R<8QG@
M[BJLFI6<6IP:;)<(MY/&TL4)^\RJ0&(^F17#>-KSQ58>$-=:6XM(HXY;=+:[
MAC(>:*1U5U9=WR$%B,@\CL#S6U-K6I67C?3-'NFLY+:XL+BXDE2%D<-&R#C+
M'"X;ISTZT =317GT_CC4HO!4'C94MFTEI5>2S\MO-6W:38&#[L%QD,1C'4=L
MT[4?$GB87WB^"R?2XTT.*.>)I;=W,JF(R;" XP>,;NWISP =_69;>(]$O-6E
MTJVU:RFU"+.^V293(N.O&<\=_2IM(O\ ^U=$L-0V>7]JMHY]F<[=RAL?K7'>
M(C!IWC?PD;C1GBTV"=H+6]@9<+/(A1$91R$(+?4X].0#LM3U6PT:PDOM2NXK
M6UB&7EE; '^?2K:L&4,#D$9!KD_B?_R3'Q%_UY/6?<>*-;\-:Y8PZXMC-I=_
M;3R0M:(ZR6[0Q&0JQ8D."JGD!>>PH [PD $D@ =2:J:;JMAJ]N\^G745S"DC
M1-)$<KO7@C/M7,Z7KOB2\O\ 1I_[.673+^(O<E8MAM,KN0ABY\P=C\H]>.E8
MF@ZZVA:)?B%$:ZU#Q9<V-OYF=BO),?F;')  8XXSC&1G- 'IM%<=-KNNVWB2
M\\.9LI;V73FOM.N3"RHQ5MK1R+O]2,$$<'IQSF6GCZ]G/@V>1[-;76=T-ZOV
M=]\$X^7:#OPH,@*<Y.1WYP >B45FZ)=W=_:RW5PT)BDF?[-Y<97,08A6.6.<
MXW9&.".*TJ "L_3=$T_2)+J2QA>-KN4S3DRN^]SU8[B>>!S["M"B@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH *QO$GAZ#Q'8P0O-);W%K<)=6MS& 6AE0_*V#P
M1R00>H)K9HH YU_"J7KZE<:I<BXO+^Q.GM+#%Y2QPG=D(I+8)+$DDGH/2JD/
M@RYC_P"$<,FLM,VAL3&7M@/,!C\K!P1@;3]<\^U=;10!QES\/HKVTUF"YU*4
M/J-\NHQS01^6]K.H4*R')Z;!U]_6G7W@N_U;PS>Z5JOB.>\GNU6-KIK9$V(I
MW81%P 20,DYS^ QV-% &5K>B)X@\-W>CWTO_ !\P[&FC7&UNH=1DX(8 CGM5
M./P?IT.OZ7J\9D$NG6;6B+G.\'&UF/<CY_\ OLFNAHH YRX\+RS>(=3U=-2:
M)[W3Q8A4BP8@"Q5PV?O N3T]*JW?@.TUB>]GUJ9+F>[L/[/DDMX?))3<&W'E
MLN"JD'H,=*ZVB@#G_#_A_4M**G5/$-UJYB3RX/-A2/8OJVWEVP -Q]_4TFN^
M%VU/6=/UJPU!]/U2R5XUE$0D26)L;D=21D9 (P1@UT-% '#O\.(YM+U"VFUJ
M\-S<ZE_:D%U&B(UM<8 #* .>!@@]B>E:$WA2_O?#6I:9J6ORWEUJ$!MY;MK=
M$"1D$82-< 'YCR<G)]  .HHH YJ]\+3WL&@1OJ2J='G2X1A;_P"M94*#(W<#
M#'IWJO/X*DN(/$\+:F OB#B8BWYB'EB/Y?FY^4#KWY]JZVB@#C9O ]W'J5MJ
M>D^(9]-OA:QVEV\=NDB7*)]TE'R PR>>:L7/@UTURSUG2M6FL[^&V^R3O+&)
MA=1;MWS@D?-N).X>IXQQ7544 8GA;P[_ ,(SIDME]OEO!)<RW&Z1%7!D<L1\
MH]2?_K5FS^"Y+A/%"-J8"^(5V38M_P#5#RQ%\OS<_*._?GVKK:* .-N? ]T+
MVPU'2]?GTW4;>T2RGECMU=+F)?N[HVR PYP<]ZOIX5>/Q%INK+J3N;*VDMRD
ML>YIA(P9V9LCYB5!X  ]*Z.B@#D9?!5S#X@O=0TGQ#>:=:ZBXDOK..)'$CX
M+(S#,;$ 9(_PQ;_X1B1/$5]J\-\J&YL4L5A,&1&BEBISNY.6/Z5T=% ''V_@
M9[;2_#5BNJ IH,PEA8V_,N%9 &^;T8]/:NBU.SNKR*'['>FTFBF$@?R]ZL "
M"K+D9!SZU>HH XR;P!&]LR0WJ6\LNK1ZM,8[;"&5-NT*F[Y5^0$\DDDG(I=8
M\!'6;G7)I=5>(ZM#;QGRH0/*,#;D(R3GDG(/4>E=E10!RMOX1NH=9OM5DUR6
M:YO;)+68-;H$RN[# #! &\\9^I-0IX'>/0?#NE)J@V:'<1SQ2&WR93&I50PW
M=,,<X]NE=A10!D>)]$_X23PY>Z,;G[.EW&8GD";B%/7 R.:S[SPD^H:Q!?W&
MHX\O3I=/9(H=NY),;F!W'#948]*Z>B@#C--\"7%C=^'[B77[B8Z+"]M"HMXT
M#Q,JC:>.N$7)[]L5LIX9LX_%\OB-6<7,MJMN\?\  2I.'(_O8)7/IGUK:HH
MY&3P5<PZ_>ZAI7B&\TZTU%Q+?6<<2.)'P 61F&8R0!DC_#'1:AIL.HZ-=:7(
M62"YMWMVV=55E*G'X&KE% ')0^#;F-O#CR:RTSZ(28R]L!YF8_+P<$8&T_GS
M[5#<?#Z*\L]8@N-2E#ZA?KJ44\$?EO:SJ%"LAR<XV#K[^O'9T4 9&AZ3?Z<C
MOJFLS:K=L OFO"D2JH[!%X!/4GDGCT%0MX?F'C"7Q#'?('>Q%D(&ARH4,7#9
MW D[C^7'O6[10!Q</@*2#PUI&BKJV8],OUOHY3;?,[+(9 K#=C&XGIVQ]:D3
MP/<6NLWUQI_B"\L]-U"8SWFGI$C!Y&^^4<_-'N[XYYX(XQV%% '$:E\/&OXM
M<MDURY@L]6N4NVA$*,8Y5V<[CR5_=K\O&,=:TX_#%Q%KNHZJ-3#RWMG':,'M
MQP$W8;AADY=L\ ?2NDHH X^Q\#/8Q^&(TU3<OA\.(<V_,H9"GS?-_=)Z=_RI
MESX#>YT'Q#I3ZKB/6[IKJ5Q;\QEMH(7YNGR+U]_P[.B@#R[Q*3/XPECO=9?3
M'M[:*&$W&D"Y@N"<LSQ;@=IR0I ;)V\]!73V&GZYJ-A;S7FHPL1'+!)'/IY$
M=S&S#:[Q%@4; Z9Z$Y S@=510!FZ'I%OX<\/VFE6GF20V<6Q-V"S8Y^G)KS#
M1Y;UW>\TW77769'DF.FWFA!IU=B3Y3RX5L#(7?D  >@KV&B@##TW0)+'Q/JV
MM-=ASJ20H\ BP(_*!"X;//WCGC\J=HWAFST35=8O[9G+ZG<"=T/W8SM&0OU;
M<Q]S[5M44 <?HW@>XT.Z,%IX@NQH0F,\6EF),1L6W;1)][9NYV\>F<9S'-X"
MDG\.:QHS:MB/4[]KZ246WS(S.'*K\V,94=>V?P[2B@"K=VTMUIDUKYRI++$8
MS($R 2,$A<_IFN;M?!,EK!X8B74P5\/@B'-O_K08S'\WS?W2>G?GVKKJ* ,3
M0M ?1;[5[EKP3_VE=?:G7RMNQMJK@<GC"BB;1]1CU>ZU#3]66'[2J*UO<6_F
MQ#:,;@ RL&/?G& ..,UMT4 <;<_#RUET5;:#4;FVU-+]]374HE4.+EL[FV]-
MI!V[>F,?6I;_ ,$R:OH7V35-;N[C4EGCN8=12-(V@ECSL*(!M &3QR3N//3'
M6T4 <K>>#KC5?#-]I>K:Y<7=U=B,&[$*1B/8P=-L8XQN&3G).>N,8LGPU</X
MDTW69]3,TMG;26Y1H /,$A4L3@\<J,<<#UZUT-% ''VW@.*VT@Z!]O+^'OM
MG2S:+YU7?YGE>9GF/=VVYQQFK$OA&62[\2SC4@/[=A6&1?L^?)"H8P5^;D[2
M>O?\JZBB@"AI&G-I6AV>F^?YOV6!(%E";20J[0<9/. *S[?0+Z8V?]MZL-2%
MG,)XMMJL.YQG:SX)!(SD8"C/.#@5OT4 9VOZ-!XAT"^TBYDDCAO(6B=XR-R@
M]QFL]/#'VNYM[C6[I-0>VMY+>%4@\I )!M=B-QRQ48SD  G &:Z&B@#D_#O@
MZ]T#R;9O$=Y>Z5:?\>=G-$@\L=%#./F<+V'';T&(1\/XI-$N]/N-1D:274VU
M6WN8H@CVUP7WY7)((!['L2*[*B@#&L=#>+66UG4+E+K4/LPM4>.'RD2/=N.%
M+,<DX).?X1C'?)N/AYID^F:[9+--&-5N?M(D4_-;N&#C9Z8DW/\ 5C77T4 9
MUUILY@T^#3KYK"&TFC9DCC5A+$H(\KGH#QR.>*T:** "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 *R]>L=1U+3C::;J1TV21L2721AY$3!SL!XR3@9/09[XK4K \87
MVN6/AZ9O#NF/J&IR?NXE#H@CSU<EB!QZ<\X[9H Y7X5WWB)[_P 4:1K6HOJ=
MMI5Z+>VOI!\SGYMZD]\?*>^,UZ37FWA6Y\8Z=X=U&$^#8M/:SMB]I;M>+*][
M.Q)9G<'KD9.>I;K7=:)<ZA=Z)9W&JV:V=_)$K3VZON$;=QF@"_1110 4444
M%><>/_%^I0>+="\%Z'.+2^U5@\]YL#-!#D@[ >-QVOR>F/?(]'KS?Q_X-U2[
M\7:%XST")+F_TM@DUFSA#/%DG"L> WS..?7VP0#HY_#E_:I9G2M<U$/'<PM<
MK=3^<+B(.N\'<#M.W/W<>F.:AO/B)H-E/?"1YVM-/N$M;R]1 88)6. K'.>N
M 2 0,\D5I6NLWM_)"D.B7MLI(,TE[LC$:]P &)9O3''OZ^47O@'Q!#X8\6^%
MK>Q>=]8U9+JUO-R^5Y1=6)<YR"NWD8R<\9H ])U/QWI6E>)$T"2"^FU&6V^T
MPQV\'F>:G/W2#_LMUQT].:RHOB[X8FTRPU)1?_8KNX%J9S;$)!*<X5SG@\9X
MSQ]:S&\,ZO9_%[1-4BL)Y]*T_0Q8/=!D^:0!_P"$MGG<.W4UQ2^ _%@^$=MH
M/]A3_P!HIKOVQHO-BQY6T\YWXZG&.M 'K>H>/-,T[Q)+X?:TU&?4TM_M"P6]
MOO,B>JG./7KCI]*6W^(/AZ[\,6VOP7+O:W,RVT,83]Z\Y.!$%_O9_#'.<<UQ
M%[>RV?[1+7,=A<W9&@@F&#;Y@&[T8@'\ZPH_AIXHL_AQI\D5H'U>VUS^UVTX
M3!3L( V!@<;OE!X/<]Z /4;SXAZ)8:'J&JW(NDCTVY%K>P^6#) Y( R <$'(
MP5)'/UP[2O'^BZMKCZ1&+NWN1:"]0W4!C66$_P 2D]N>^*Y#Q9X9N]:^&NM0
MZ+X5N++4=4EMV:":=#-(4<,6<ER,  @<Y/<"GV/AW7$^*.FZQ)I$HL(M 2RD
MDD9"!+M)*D!LD<XSB@#L='\;:7K<4=Q;I<I9RP2W$5W*BB)XXV"L<@DJ>>C
M'&>*KZ?\1-"U+4],LHC<*-5C>2PG=!Y=P$SNP025/!X8 UQ?A/P?K7ASQ'>7
M6AV%U9Z5<Z=))/I5_(K1+=D?*B$,<KG^+TX)[#,TCPIXO/B+P5J]_P"'Y(FL
M9IQ>+'/"$B#'Y=D:D*B 'HO)P2021D Z_2?B'+KVI^*[5;"^MK;2P84F2)2\
M;*K[V;)P#D<+_L^]2>%?&.GV'@'0KF[UB\UF?4)VMK662 )/=2>8RXVEL #&
M,EL8 R>:S- \.Z[HVK?$))M)EDAU>:6XM)XY(]KAA)A<%L[LL!R .O/3.#HW
M@/Q#9>'/ -S/ITJW7AZ_F:[LPZ%C%)+NWIAL-@ <9S0!Z1)\0-$BT'4]7<W
MCTN8P7T'ECS;=P=N"N>>2.02#VIND_$+1-8URTTB!+V*XO+07EJUQ;F-9HR,
MY4GGL>V.#@FN"NO ^OS>&OB%=)82&[\17:M9V>]0XC60D,V3A20QXSD8JYI?
MAG7H?'_@?4I=)G2TTW0DLKN0O'^[E\MU(P&R1DCD9ZT =1\5K^\TGX<ZIJ>G
M7<UK>6PC:*6)\8S(BG(Z'@GK7!ZSXLUK1_#'@G4M&UJXOM:U(0?:=-D=9A<!
MHPS';C*_-@<8^][5WWQ2TO4-<^'FIZ3I=G)=WET(UC1&5>DBL22Q ' -<'/X
M"\0:/8^%?%'AG33#XBTZVAM=1L&=$%RJH%8DYVGN"<\C!ZK0!ZAK'BW3M&OF
ML9%GN+Q+5[V2"V4,T<"<-(V2!C/ '4]@:AO/'&C6UO8R0/+?/?6S7=O%:J&=
MH57<S_,0  /4@D\ $UQ&LZ'K(^)$/BAO#M[J&EZEIHL[NRBN$2:W;(X(WA6'
M _BQR?:G:IX9UKP[XV\.^)="T'[1I]O8FPN=,M95W0(69OEW$ \O^:^AS0!V
M*>/]#GL-&N;.2:[?62PL;>) ))2N=_#$!0N#DD@57N_B7X?L_#+:^YNGL8[@
MVMQY<.7MY0<%9%SP<_4<CU%8VM>'=2D\;>$?%D&EM';Z>LT-S80LK/ CJP5@
M <$_-\P4G';/6HO"?P]N9/"/BJRUV/R#X@O)IU@)#&!6^X3@D;@<-QZ"@#MI
MO$MA;%VN/,A@CLOMTMPVWRXXO<@GG@\#K@XS5*Q\;Z7?2/$L5U%.+$:C%#*@
M5IK<YPZ<^W0X(R,BN3L? VN77P8N]!U&9?[<N+40J6;A5C/[J/=Z8'7_ &S4
MOA/2+LZ$DFH>$KBSUJSTUK)KF:X60RD+@+%\Y^4]3G:!GC/4 &OIGQ1T'6C9
M#3;?4[K[6LK(8[0X!C!+*3T#$#@9SR.F1F]I'CO2M>T*/6--ANY[:2Z%HH$:
MA_,) Y4MP,D?ASTYK,^$NC:AX:^'EKINL6;65W!)*TJNRD8+E@<J2.A'Y5G^
M#_"EQH_Q&\0-!,A\/R/'J-K&A! GE5E.,=@-W'HR&@#H_B)=7-AX!UF^L[F6
MWNK:W:6*6)RI5A_/Z&O+M0\7:UIOPP\-:_I_B"YG\07<R*]F[+,+D$MD>7C(
MZ#E<=?4BO4OB#97FI^!-7T[3[62ZN[JW:**-"HR3ZEB !7F'_"N=?LO"?AG7
M=#T\V?B[10(YK=F0"Y3<<@D-M/!]>02.PH ]8O\ Q3:Z9+96=Q!/+J=U TXL
MK<!G"JN7)R0 !TY/)X&:@;QUH9T_2+NVG>[_ +8;;80P+F28_P 7!( V]RQ
M%<3XATGQ!<^.-!\8CP]>W$!L/L6H:=#<JLT!RQRI#@,,MZ\XYQFG:GX1OM*\
M3^#=>T?0&73]-\Z.?3+:12\"R;L,,M@GY\M@\$<$CF@#K8?B'HD]AK=W&+LK
MHG%_&8L/$V6#+@GDKM.<$CT)I;?X@Z)<W^A6:?:1)KD)FLF,7RLH!)SSP<"O
M-_"NGW>OP?%RPMX#'>7EU*D<,C#(<^;A20<=>,YQ4NB>&_$QUWX>7,_A^ZM[
M;1+9[>[>26+(8J5W!0V=O3WZ\=,@'4Z!XJM[2Y\;ZA=ZQJ-_!IMUNFM9;=5^
MPJ-V40ACO VGI_='4GG6TSXD^']6?,#7:6_V%K]KN6W9(5C4X;Y^F1W ST(Z
MC%<3:>%O$,=G\3T?1[@-KCNU@-\?[T-Y@'\7R_>!YQ70VGA34KWX'+X7DA-E
MJ1T_R#'(PP)!S@E21@D=?>@#<L_'6DWI95CNXY#8?VC!'+&%:XM_[Z<_H<'D
M<5EP_%SPS-;Z9=!=16SU&5H(;EK1MGF XVGN3] ?YUD>%-%O3X<1=1\(W%KK
M5AIKV7VJ:X63S?DVA8OG/!ZG.U1VSVY>W\%>*(O G@C3&T.?[7I6L-=7:"6+
MY8_,+9!W8/#=!Z&@#U72/'.CZO/K$ -Q9S:/S>)>1^68UP3NZGC -&F^-]*U
M2XB@@CNDEN+,WMHLL87[5"#C<G/TX;!P0<8KAO\ A"]<U+Q+\1?,LI+6VURU
M6*RN)'7:S*N.0"2 3ZCI6AX"T:\M],L!J_A.XM=6TFT:V^V37"R!U"E0(?G/
M48R,!1ZT :=I\7/#-[%IT\:Z@+6_NOL<5P]J5C67LK-[^V??%/M_'DEW\4+O
MPK%IMUY%G; RR! 29&9<-UX0*>O?/2O-;7P+XKA^'?AS27T.?[;8Z[]MGC$L
M7RQ#OG?@]>GL:[ZPT+6-/^-FKZZ=.>73-2L8HDN%D0"-E" AP3N_@/0'J/<@
M ]$HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH P_\ A$]*_P"$K_X2;9-_:OE>3YOG-M\O^[MZ
M8_"MRBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** (+VS@U"QN
M+*ZC$EO<1-%*A)&Y&&"./8U5T31+#P]ID>GZ=$T=O& %#R,[<  9+$G@  >@
M %:-% !1110 4444 8>A^$]*\/7^HWNGI,L^HR>;=-),SB1\D[L'H>3T]:W*
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@ HHK \::]<>%_"E]K=O;Q7!LT#M#(Q7>,@<$9QU]* -^BJUM<M]C
MADNWACE>/>P5L*.,G&>P]:GCD26-9(W5T895E.01]: '450O]9L-,N[&UNKA
M(Y[Z4Q0(2,L0I8GZ +U]QZUE:-XCGO/$'B#3[];6"/3;B&&%U<_/YD8<9)[\
M@8% '245'-<0VR!YYHXE)P&=@HSZ<U)0 45'-<0VZAIYHX@QV@NP7)].:4S1
MB3RS(F\_P[AG\J 'T5&9X51W,L81/OL6&%^OI0L\+1+*LL9C?&UPPP<\#!H
MDHJI<ZG8V=C<WL]W"EM;!C-*7&U,=<_X4^QO(=0L8+N YBFC61<]0",\^_-
M%BBL^76;&/6H]'\^/^T)+=[A8BPX165<GTR6&/7!]*S/"7B*;7--EFOUMH+E
M;ZXM5CC8X;RG*Y&>3TS0!T=%1O<0Q2I%)-&DDG"*S %OH.]24 %%<V/$5QJG
MB"^T?1886_L_:MY>3DE$D89$:J.7;')Y ''4\5>TV^U*75+VRU"RBB6"*)XK
MB&0LL^XN#P0-I&T<<]>M &M14<-Q#<*S0S1RA3@E&#8/IQ2+<P.ZHLT;.R[E
M4."2/4>U $M%1I<021&5)HVC7.75@0,=>:5)HI)'C25&=,;U5@2N>F1VH ?1
M44=S!+(\<<T;R1\.JL"5^H[4?:8-ZIYT>]R0J[ADD=0/I0!+13!-$Q8+*A*_
M> 8<?6G(ZR*&1@RGH0<B@!:*I;[[^V_+)M/[/-ON RWG^;NYXZ;,8]\U8CN8
M)G9(IHW920P5@2".N: ):*1W6-"[L%51DL3@ 5&;F )(YFCV1G#MN&%^OI0!
M+13$FCDB$J2(T9&0X8$$>N:8EY:R1^8ES"R?WE<$?G^!_*@":BFB6,N$#KN(
MSMSSBJ>G37GV21]3DLA*)G53;,=FS<0@.[^+&,^_2@"]14+7=LD)F>XA6(':
M7+@+G.,9^M/DFBAA,LDB)&!DNS  #ZT /HKGO"FOW6O'6A=16Z&PU*2SC,#%
M@R*B,&)/4G>?2M+4M9L=)>TCO)TCDNYA! A(R['T]@ 2: +]%127$$31K)-&
MC2'"!F W'V]:EH **CEN(8 3+-'&%&278# ]:5YHHP"\B*&Z$L!GC/\ (9H
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
MK)$MN<O(9U!D4JK$LA(&,C'M7<^%+.UL/"^GVEE<W5S:0Q;()KL@R.@)VDD
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
M39#$D:9SM10!^E/H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ K+UWQ!I_ARTBNM2DDCAEF2%62)G
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
MH2S01G/S..W0\#)X/%4[SQ[H5I/'"LEU<R2V8OHEM;227S821\RX'S?>SQT
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
MH:S#?W&G/%I]]'82M]ZZ>,2&)<')53P3TZ\#KSC%7ZQ?$>LS:/!;,NB7NJ6\
M\OE7 M(Q(T2$?>*=6'; _P#U@'*_"O6=<U0^(;;5=7@U>UL+XV]I?($5I0,[
MLA>WW<'W/) KT2O,M$\.2^%M8\6^*-"T>7[+=6\9L]+"^4TTBC+$(1E!N. "
M,_>P,8SWVB7MWJ.B6=Y?V#V%U-$'EM7;)B8]B: +]%%% !1110 5YA\5/$6N
M:!KOA2#2=5FM8M3O?L]PBQ1L"NZ,9&Y20?F->GUY5\7-)U/5M>\(2Z;IMW=I
MI]]]HN6AB)")NC/7N?E/ ]* +6I>+M6\&_$C2-"U.\.I:/K0"03S1HDT$N[;
M@E JLN2O;/S=>.>LG\::%;Z@]F]V<QW*6<DPC8Q1SL,K&SXP&_ED X)KC];\
M,ZEXX^)6@ZK)92V6AZ)^^$ER-DEQ+N#85.H7*IRP'>L30?"MQ9ZUX@T#Q#X;
MU34;:\U1K^SNH9W6V?<<@R$. I& >A/48.!D T[[Q/KFO_%#5O"^G:G=Z5#9
M6B20R1V!D)D#*S,X8<J5W*.0IR",DBM'POXYL=.\"W&N:YXF;5;5+]X3>K8/
M'Y><;4*!<\9ZX[X[5'I.GW]M\<O$.LS6%VNFW&GI#%<^2VUW41Y XS_"WUQQ
MVKA8?"OB$? K5M".BWPU.;5A-';F$[F3*'=Z8^4_Y(H ]@T_QSH>K:E=Z99W
M$_VRWMOM6Q[:1"\1QAT# ;QR.G7/%<3#\2#X?^%!UV;5G\1W<EQ)!;W2V;0I
MO)X#C P!^O0>M/L-,U*+XO#67TR]73_[ 6V\[R&QYH"MMQC.>#^/%<BG@SQ'
M)\ O[%&CW0U.WU/[0UJR8=DSU7UZ]J /2[OQ(;CX@^'+2#6KBQAN89F;2[C3
MI$:ZP&YW,HVXVD\XZ=\UK2>//#T5W)"]Z1'%=BQDN?+;R4N",^67Q@']!T)S
M7*:U9:EJ7Q<\':W%I-\EC:P3+<2/%_JBZN%W8SZCZ9YQ7(2^!O$"> =4\%"Q
MN)-0N=?^T1W6P^2T!"_O3)]T?=Y7.[VH ]7U/Q_X?TC5[K2;J>Y^WVT!N'@B
MM)9&,8&=PVJ01CGVP<]#4J>-]"FTK2]1M[IKB+57*6211L7F89W +U&-ISGI
MBN&U#1-57XK:SJ"Z?>2V3^'7LH[@0DB2;:#M'N<=>F:R-.\%27WPG\/:)K6G
M:K8W]G+<R)=VT#/)9R>860E%Y96##[O.0.F"0 >T:=J-OJMBEY:ES"Y91YD;
M(P*L5(*L 0<@\$5:KFOA^FNQ^"-.7Q'G^U K>:6&&(W':6_VBN">^>O.:Z6@
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 ***YV[\9:593:Q'+<0*^E!//1I@'!<*02.R?.HW'CK
MZ9(!T5%4GU2TCT4ZLT\;6:V_V@RQ-O4IMW94]QCIZU6\,Z_;^)_#EEK%JK)'
M<IN,;')C8'#*?<$$?A0!K4444 %%8>IZ_+IWBC0](^R+)%JAF7S_ #<&,QQE
M\;<<YP.<UHVDU])<WB75I'##'*%MI%EWF5-H)8C VG.1CGI0!;HHJCK5_)I6
MB7VH10+.]K \WE-)LWA021G!QP/2@"]15'1=0.K:#I^I&(1F[MHY_+#9V[U#
M8SWQFJ/AG7Y=?BU-IK1;9['4);(JLOF!O+Q\V<#KGIB@#<HHKG-?\37&C:WH
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
M%DTEV#)$%1G\F)_F&5ST!./E'85ZE'X>T6&2WDCTBP22V3RX'6V0&)?[JG'
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
M8+4:)IHMX'\R&+[*FR-_[RC& ?<4X^'M$(N@='T\B[_X^0;9/WW^_P ?-^-
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
MTAPH9RJA=Q4;A\V,<CGFN2L]'UF/3]>TBQFU"^T:;1I4LQJ<!CG@F8%5A#L
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
MBW-Q!N@=/-BX&]"Z@,.1TSU!Z&L_X?7][J7AAI]0NGNKA;ZZB\V0 $JDSJO
M '0#H*Y;1(]0;Q3X4U*72-71(].GM[DRVWEQP2$1?(L8P$0;2!@<@#!8UTGP
MY@N+7PU-!=6MQ;2_;[J39/$R$J\SLI&1SD$4 :'C6\O--\%:QJ%A=/;75I:2
MSQ2*JM\RJ2 0P(QQ6;HT]Y>VNC3+XIFENYH([J>U>. K)'A?,'RQAEP7&.?2
MKWCR*:X\!ZY:V\$T]Q<V4L,44,9=F=D( P!Z]^E'A32;&VT72KM=-6UOHK%(
M)";?RI!\J;U(P"?F4?E0!7L_%&B:=I%]J5QKTUS9KJ$D333Q$>2Y8#R@ H.U
M20 3GKUK1L_%>B7TU]%%>A7L8Q-<>=&\06,Y^<%P-R<'YAD<=:\]O+#4)? 7
MB>T72[\W%SXA:YAB^RONDB-RCAP,=-JDUL:XNHGQIK%_8:1+>!_#7D0K/;-Y
M,TPD=_+;( .0PX/7..M '5VGBG1[V9X8;F02K;"[V26\D9:$G =0RC<,^F>W
MK56Q\<^'-2GL(K34#(;_ "+9_(D$<C $[=Y7:&P"=I.?:N5T,7D?CG3M6DTO
M6C;/H4EO+-<6Q79+YD;%?+'W  I  49QQGK5'3=/U"#P)X LY-,OUN;#58I;
MJ/[*^8442@L>.GSK^?UH ]"N?%.C6ETMO/>%"UP+7S/*<Q"8]$,@&T-VP3UX
MZU5@UO2[?5/$,\NN2-'8K$UU!,NV.S&T_=.T9W8R>3V]:YSPS+J.E0S^%M2\
M.7EU/%?S36]XT(:UE1YFE65I#P&7=DC[W QS4.I1ZK!JGQ N;+19;Q[F&T%K
M'/:EH[C8A63 88<KG('?'&: .TAUNRU8WME974T-Y!$'=7@:.2,,#M<+(O(X
M/.".,51^'VH7>K> -%O[Z=I[JXM@\LC8RS$GGBL#1ENHO'E_J3:=K+6=SHT2
MBYNX3N9U>0L"O\)Y&$ 'J%QS6U\-[:XLOAYHMG=V\UO<V]N(Y8IHRC*P/H?Y
MT 1_$S5=1T+P'J&JZ5>-:W=MY91@B.#ND52"&![$U5FUC5='^(VBZ NI/JMK
MJ%O,]RDT<8EM-@!63,:J-K'Y<$=>AJ3XK6MUJ/PZU/3[&TN+N[N/*$<4$3.6
MQ*C'H.. >M5$TZ7PCXJ&LZ+ID\NAZQM2_M8+8B2UE ^694QG:1PR@>AYZ4 =
M1J?BC2-(:3[==-&D+*LTHA=XX2V,>8Z@JG4?>(X(/>GS^(=,M[DV[S2%UFC@
M9HX'=$D?;L5G52H)W+U/\0]17">1)::YKNFZMX7U35K75+HW5I- K&&1'51Y
M<H+ 1E2,?,.GTYDU+2[^TUV:]\/1ZA::B+FWCGLC TEC?(!&"^2-J%5XW @_
MN^G(H Z6U\;:=/J6NV\XFM8-'($T\\#HGW-[$DC &",9Y/49&*L2^+](CM=1
ME#7+2:?;BYGM_LLBR^60<,$902#@\]!@YQBN2U"/6-/N_'PM=!EOI;UH9[59
M8!)!,HA1&')PQ!#?)U.!VJ)+'4+SQ+K,T.FZP\6H>'/L\=Q>IM+2AI<@@D!/
MO*-H ]<8YH [+2_%-G?>'M.U29)H6O(D98!;R%V8H'(1=NYP!GY@",#.:;_P
MFWAW[+:W!U)5CNK@VT>Z-P?-&<HP(RC#!X;%<4T>IVVD>"]5;0=5N+;3+)K&
M_LXD9;A2T<0\Q4!!8!HR/<'(XYJWJ-B&B\/7&G>'KRRB;Q"E_-']G9I=GENK
M2R@9VL6(X)SC!/<  Z1OB!X;2VNIVO9@+1REQ&;.;S(< '<\>S<JX(.XC'O6
MK<Z[I]K##*TSRB>,S1+;1/,SH #N"H"=O(YQCD>M<;);W7]K_$.3[!>%+VUB
M2V86SXG98"A"\<_,0/UZ5EV\&H:+)X:U*[T/5KVP.A0:=<PV<;^?:SQ\Y,8(
M)4Y(S_L@^F0#N&\;>'5CTZ0:G&RZBC/:%$=O-"@D@8'7@C'7/&,\52U'X@:3
M;:#%JMG]HNXY+U+':MM(&CE+A6#J5W*1GH1D\ =:QVTTVWB#P4]EH5Q8V5O-
M>2R0QPEA;K)&P4N5R S$Y(SP2?K63=Z=J3Z+XB:/2[YF_P"$IAU%(Q;L&E@5
MX260$?-]QN!SQ0!ZO#*L\*2H'"N 0'0HWX@@$?0TXC*D D$]QVK/M]6:?5%L
M3IM_$&M1<_:)(@(AEL>66S]_OCTK0)VJ2<X SP,T <'X;\42VUOXKU#Q%J\C
MV6E:M-:1L\*XCB0*02(T!)^8UTNG^*='U35&TVTNR]T(?/"-"Z!X\@;D9@ X
MR0,J37GGV'4'\%_$:S&EZA]HU'4+J6SC-I(#,CJJJ1QW(/TKH_*GD\?>&;M+
M*[%O#I4\,LIMG"QNQB*JQ(X^XU '<5C0>*]%N;VWM8KPL]S))# _DN(Y73.]
M5D(VL1M;H>Q]#6S7D<*:Q=3>&+NXT#4X;FSUB1KJVAMQ';VZLLH'EJ" RDL"
M9.>IRPSB@#HOB-XJ73?!^LMI>HW$%_: +YUO 75)#CY&?:54D$=P1D=,C/2:
MIK5E9*]K+=31W)@,I^SP-,\2=-Y 5@!G."PP<'K@UYG?6VL6_P /O%7A6?1M
M2N-2DN;B6WFAMFDCNDDEWAPXX!YY4G/'>NDLIM0T;Q[K5W=Z5J,UEK-O;-:R
MP0&7RFC0JT4FW.S).X$X7D\T ,\)Z^=0\->#)M5URYCU*^#.$5 1>-M?*O\
M*0  ,]NE:D?C.PU*#Q)$\EYIT.F,\#W9MG!3$:DN,J0""_ /) SC%<CH%AJ5
MOH/PXAN-)U"*33[AVNE:V;,2F*106P..6'7FM46M_:V_Q#LGTR]9KZ2:>VD2
M$LDH>W1%"D=3N!&!T[XH ZZWUFPM-)TMGOIKK[5 I@?RF>:X&P$OL5<],$\
M#/:HI/&7A^'2XM2DU)$M)9Q;!V1@5EW;=C#&4(/!W 8[URFGVFHZ5JOA'6I;
M&\DLH]$_LRZB2!VDM9?D;<8P-Q!*;20#C /2J&J:%?KI^JWL5C=LNI>([6]A
MMD@9F6*-H]TC*!E2=C-@\XQWXH ]#TKQ%I>MW-W;V-P[SVA431R0O$R[LE3A
MP"5.#@C@XK4KAQ/<:?X_\0ZO_9FHSVW]DP"/R;5B9GC:1F1,@ MAEP/>NLTG
M4HM7TJVU"&.6)+B,.(YEVNGJ&'8@\4 4=;OK2WU'1K>?59[*::[Q%%$F1=':
MW[MCM.!W[=.M5;KQ[X:LFO!/J+ V4HBN=MO*_DD@'+84X7D?,>/>JGC2&XGU
M7PHT%K<3+;:LL\S10LXCC$4B[B0..6%<_?V5[+IWQ,C33KUGU$$68^RO^_\
M]&6/Y>.?F!'Z]* /3E8,H92"I&01WK!U'Q3;V'BK3M!:WN6ENXI)O,2W=E4+
M@<$ YY89[ =<9%:.C;O[#L R2(PMT#+(A5@0H!!!Y%<]KL-W#\1/#FI1V-S<
M6J6MU;R/ F[RW<QE=WH#M/)XXH SO#OC.WL#K,&OZK-(\>N36D,LD)(C3*K&
M'9%VH"3@%L G-=7JGB/2]&$IO9Y%$*"28QP22B%#G#.44[1P>3CH3VKSF_T_
M4)O /C6TCTR_:YO=:DGMHOLLFZ5#)&0PXZ84_E]*T;U);#Q?K7]H^'=6U72]
M:$4MO)9HS!<1+&\4J;EV@[<Y;CDYH ]'BECGA2:)UDCD4,CJ<A@>00>XJGJ.
MLV6ED+<O*7*&3RX('F?:.K;4!..1SBI=-MUM-+M+9;>.V6*%$$$9RL> !M!]
M!TKBO$BW>E>.TU>;2-2U/2KNP2U8Z<&>2WE1W8$HI!*L'Z]B* .EA\6:'<7&
MF007WFOJB&2R,<3LLR@9;# 8&!U!.1WJR^N:?&;H/,ZFUE6&4&%_]8P!55X^
M<D,.%SU%<IK6@2IX(L;G0](^Q7^D3_VA8V,>-PPQ+1'&>71F! )^8]Z3Q/I&
MJ0>'='O;>RDOKJRU$:A?6ENY#S!U<2!#D9*^9\HST4"@#=E\;>'H+"[O9[\P
MQ6<JPW(E@D1XG;&T,A7<,Y&#C!S2_P#"9Z(RZB(IYI9=/A^T31+;2;VCYPR
MJ-ZG!^9<CWKC?$-FFJ>!]<N-*\,:C:W%^UJNV>W;[3<%)%)++DD*JC@MCO[9
MU-3M+J^\?7LT%G=&"?PX]JDS0.J&4R%@A8C .#W^G6@#J/#>MIXB\/6.J)#)
M#]IA20I)&R[2RAL#<!N'/WAP?6H/%'B6'PS9VD\L$\QN;N&U011,^"[A23@'
M& 20.I/ J#P&9T\#Z/;7-G<VD]K9Q6\D=Q'L;<B!6P.N,@\]ZK?$&UNKG0[*
M2TM9KIK75+2ZDB@3>YC2568A1R2!V% &?_PEBZ7XZUA=2U"Z.F)IMM<PP&V9
MFBW-)N(1$WXPHSD<=\5U3Z_IJV5K=I.T\5W'YMN+>)Y6E3 .Y54$D8(YQQD>
MM<M#]H;QYKVH/IU]';SZ/!%&S6SG<ZF0LHP""0'7I_2N:TNSU30]-\(:C=Z'
MJMY:V^E-IU[;6R.+BVDW*P?8""RG;@X]C0!ZII>JV.M:=%?Z=<+<6LN=KJ".
M0<$$'D$$$$'D5<K'\-6L%MI.;;2CID,TC2K;N,/\W\3C)PQZXSWYYS6Q0 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !2,RHI9B%4<DDX I
M:X"UD'BGXJ:[8Z@HET_0(+=8+609C>652YE9>A( P,].HYH [U)$D4,CJP89
M!!SFG5SM_8Z-X9FNO%+1K:16ME*MPL*8#KE6SM'&[Y,>IS["H6\5W5EJ&CP:
MKIJ6\.KYCMY8[CS-DVW<(Y 5&"0#@@D9!'O0!U%%<!)\0]0BT6YUAO#Z?8K/
M4FL+O%Z#(,2B+<@V8;D]"5_'K6HGBN_BUO4=*O='CBN(+#^T+<17>\2Q[BI5
MB5&Q@0.FX<]: .KHK@K/XAWLD?AV_OO#YM=(UMHH8KE;L2/%+(,H&3:/E)X#
M9^H'2KUQXUGL]3L+>[TQ;>*]U)K")9)\7'5@LWE[?N$KUST(/?% '7T5PE_X
M]U*U@\13Q>'XY(M!FVW):]VEX]BN60;#EL-T.!QU[5LP^)Y'\70:++9)%;W=
MD;RTNS.?WP!&Y-FWAAN!/)X.?H =%3))8X0#+(J L%!8XR2< ?4FJ.B:C+JV
MF)?26Z0)*S&$+(7#QY(5\X&-PPP'H17,_$R-/[/T"?R!+-#KUB8\ ;L^:,@$
M],].M ';T5R4'B^_$GB&TNM#9M0TB*.9;:RF\[[2L@8H%)52#E2",<>]1-X[
M%I<:];WEI"TND6*WS?8[CSE=3N!4_*"K H<\'@Y]J .RHK(T/6)M7$DOEVCV
M9CCD@NK2Y\Z.7=NW#.T8*X'K]X?2KNIZC;:1I=WJ-X^RVM86FE8#)"J,G^5
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
M;><E,+P,YH [6BJFFW%S=6*2W=LMM.68-$LF\##$ AL#(( (X'6K= !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KCH;Z\\1>*O$
MNDIJ%Q8)I2P10F# ;?)&7\QL@[AR  >.#D'/'8UC7?AJRN=7?58Y+FTO9(1!
M-+;2[#-&.@8=,C)PPPPSP: ./\+^+M1\52:!I]]*;.2YT^XN;EX/E,[Q3"$!
M3_"#\SG'/3MG.C]MU2RU?P_X7O\ 6?M$UW]J>:\B01R2+%M*1^@;:X)(P<+Q
MC.:UM3\$:)J5IIUOY,UF=,&+*:RF:&6 8P0K YP0.<]:-1\$Z+J>EVEA+'<1
M_8Y/.M[F*X=9XY#U<29W%CDY))S0!B:K-K>@KH4,FNM=/+X@2U=A&H)MG#,L
M<G7+ !?F&":HZ[K>LVL7Q$6VU2>(Z5;P3V9"H3$6A+L!E3D$^O([$5UESX/T
MJ[T2+2Y#=;(IUN4N!<.9Q,IR)/,))+>Y[<=*KOX"T62/548WI_M6-(KPM=.3
M*JKM&<GKCOUYZXXH P-777],/AUX_$]\YU;4X89E:&';&C0NS!/DR.5R,D^^
M[O?5M5TOQOH.B2:Y>7=O/IUT\C3)&&9T9-KY"CD!\>G'2MV\\,65_%I<<\UT
M?[,E6:V82X(=00&/'S8!(Y]>:ENM M+O7;;67DG6\MHGAB97PJJ^-PVXP<X'
M7T% 'G=CK'B!?"VAZ]-KUU-,VN_8I86CC$<L373Q'< N=V,8(( P..N=/Q#K
M6M+<^*[>*[N+74+..%M%AA0-Y^Y,Y"D'S"S[E(.=H Z=3T*^!M(31X-*5[L6
M<%W]LC3SSD2[]^[/7[Q)QTR:YB[T:[F\2ZK-=:=XI@FN+@&*;1]1"031JBHC
M,#(H5\+SD#\: /0+*"Y_LB*&[N9FN3$!)*=@<,1S]U0O'L.U>77/BC6=.T"(
M7.I7<NI:+JKQZN$5 9K-6!:3&W@;)(B,8ZGWQZ?H]O=6FD6L%[.T]RB8>1R&
M8^F2 ,G& 3@9QG%0OX=TJ2\U2Z>T0S:I"L%VQ_Y:(JE0/R8C\O2@#DO%NJZG
M!X'\2Z_INK3PA&_T(H$90B$(Q&5/WFW\^@4C%6?(E?XT/_IMT(UT1)1$'&P'
MSR",8X!VC/?WK?O?"^F7_A=?#DL<B:8L*0>5&^TE%Q@9'/84LWAJQGUFVU=W
MN1?06_V<2K,5WIG< X'#8;GD=: /-=#N-2TGP?HFJ6NJ3HC>(7M7M J>4\<E
MXZ-NR-Q;G(.>,#CKGIIM3U4:_P".;5=4G6.RT^WGL_DC_<,R2L<?+@\J/O9K
M77P-I":/!I2O=BT@N_MD:^><B7?OW9Z_>)..F:LOX5L)+W5;LRW7G:I MO=$
M2\,B@@ #'RX#,,CU- '):-J6LQ7O@&YN-9N;I=<M&%W!(B"/(MO-#+A<ALCD
MDG.3TZ5T?BW6;C3KG0=/MY# =5U!;9YP!F- K,0,\;CM"CZGO4\?A#38CHNR
M2Z']BKMLAYO^K&W9@\?-\OR\YXJ_K.B6.O6(M+^-F1)%FC=&*/%(IRKJPY#
M]Z .&UW6=9T6[\5Z3!J-PR6VA-J]C<LJ-) PWJ8R2IW E,C/.,\],=7X5M;Y
M--CO;[5[F^>\@AEV2JBK"=GS!-H!P<]R>G7K3Y?"MA<V6H6]R]Q,^HP^1=SO
M)^\DCP1LR  JX9N !U)ZDFM.PLX].L(+*%I&B@01H9&W-M' !/?B@#BI=4U8
M:WX]MEU2<)86-O/9'9'^X9HY6./EP>5'7)K.M;W7BW@28^(+LG7;7R[M3'&5
M7_1O,WH-O#9'4YZ],<5V4GA6PDO-7NS)<B75HEANR)>&100H _AP&89'KZTQ
M/"&G1C10LET!HPVV7[W_ %8V[.>/F^7Y><\4 <1J&MZ[I_A;Q5'#K5RT^D:Q
M#;V]S(D;.T4AARK_ "\X\QN1@].:VC%JY^(%SH!\1:A]CN-+%Z6"Q>9&XE*$
M(=F%4@CC!/'6M:Y\"Z3=P:E!,]XT>I7"7-THG(WR+MVGVQM7@8Z"K_\ PCUK
M_;W]M>?<_;_LOV3S-XQY><XVXQG=SG'7VXH XG1?%6L:CHGA.REN ]YJ;7B3
M3EQ"THMV90 0IPS#!.!_"<8JR-1\1:7?Z3X<U3483+J>I3+%=0N'ECM4C,@1
MB44>82-N['0YZ\UM2?#W09?#]OHS)<BWM9S<6TBW#+-!(26+(XY'+$_C4]QX
M(T:ZT>'3IA=N89Q<QW;7+FY68<"3S2=V[''IC Q@"@#D5%WI6J?$V6UU&X6X
MM[.WG@G8*[H5MW8#D$$ C'(SCOGFM*34[^[L](0:G<--+H8N6MK0!9C*0N)W
M<\!!R,=R3PV,#;3P1I2?VL3+?22:K"L%Y))=.QD0+MQR<#@D9 R,\8I3X(T<
MW%E/F\62TM!8@I<NGF0 Y$;[2-P'O^.: .-@O+[Q!=?#*_NM0N8Y[RWFDF\D
MA5+BW)+[<8R<D>P)QBM$W_B;Q%;:I?:+>V]K/8ZG+;QB>XVPJD,FUED3RSG<
MH+9SD;AC%;\/@31(-/TJSB6[5-+<M:N+J0.F5VE=V<[2O&/2DF\!Z)+KTVK!
M;N&6X8-=00W3I!<L.ADC!PWX\'OF@#*LK>>\\?\ CB"VNWM)Y+*P$=Q& 3&V
MV;! (P>?6F^&-<O]<M=&TZ6[FCU2QDE76<%<[HOD*GC #NR,,8^4'%;]QI<6
MBW>K>(K*UN[W4+F)!+;QRC]\$SL50V ,9/Y]Z3PWIIBN-2UJXT\6-[JLJ220
MDJ71$0(BN5)!;@DX/&['.* ,KXL1&3X8ZZ1-)'LMBQ"$?/['CI3Y;VY/C2P\
M*B^NE@.FR7\L^X"28B145 P P!DDXYZ=LYZ#7=$M/$6D3Z7?^:;2<;95C?:7
M'ID<X^E5[WPU9WTEA<22W*WMAN^SWB28E4,,,"<88$8R""./6@#SW6M4U"\\
M)ZSINHRFXDTKQ#:6L=T5 ,L9GA==V !N ;!P!GBMS4]0_LGXD:YJ0C,IM/"Z
MS^6/XMDLK8_'%=#=^$-*O-(.FR+.(&N1=R,LI#RS!@V]FZD[@#^ '08JPOAV
MR&O2:RS327<ML+23>^4:($D*5QCJ2?Q]* .0FUG5M/T#PGXB349;MM3N+6*]
MMV"^7(MP!]P ?*5)&,'D#G/6J>KZKX@L8?%&B0:I=R:W!-'<Z20J;IH'7=L
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
M[,%D. 9,^86!^\6R<D_I0!RVG:SJ1TF>RN=:E,EKXBET]9#&&N;N%1N$:X
M<YY; PJDY'6LO6M3O]0^$_CN&_DE<V-[-:P^<5+K&/+958KP2-Y&>?J:[1_
M.C2(X+WJR-?G41,EPRNEP1AF5ATR.".GM2OX!T-].U73]MV+;59?-NT^U.=[
M8&3DDD9VC)ZG')H J7G_ "5_1_\ L"W7_HV&M+Q-=RPSZ3;Q7SP_:+EE>V@7
M,]TH1CL0_P .#@ECC '45:_X1ZT.N6NL-+<M>VT!MT<R<&,D$@C&#D@'/7BC
M6?#MAKLUC/=&XCN+&0R6\UO,T3H2,,,J>A'!% 'G6J:G?:G\)M9&H2O+-::V
M+16DV[]D=Z@4,5X) XR.N*W/%>O7NC:W<'49+^ST=TC6UU*T >*VD_B$ZX)
M.5Y((P1C!YK8;P#H9TJ]TP"[6TO;K[7,@N7.9-V_@D\#< >.IZYJY>>%K*_:
M[%Q/=O#>JJW<'F_NYPH"\C'&0 #MQGO0!BV]]?\ B;5/%%M;ZE/8-I<JVUH(
M=O#^6'\QP0=P);&#QA?4YK7\%:W/XD\&:5J]U$(KBZ@#2*HP-P)!(]CC(^M/
MN?"VGSZG<:A&]S:W%U$L-T;:4H)T484,/4 D!AA@.,UK6MM!96D-K;1)%!"@
MCCC08"J!@ #TQ0!XYI,FLZ'\+].\2Z?K%QMM+ME;33&AAFC:[9&7INW'=D'/
MMBNFEO?$OB,:W+H=[!:7.GZB]K!YMQMC3RRN1(GEG<&&3G/ (QC'/167@[2K
M%8X8OM#64,YN8;.24M#')N+;@#S]XD@$D \@ @5#=^!-$O-=EU<B[AGN-OVJ
M*WNGCBNL<#S44X;CCGKWS0!:\47=W;>"=6OK2Y^SW<%A+/'+$%<!U0L,;@01
MD>G2N2AO=?TJ_P#!VHRZW/?VVM%+:[M)8T"(S0EU>/ !&-ISDG-=?XNAFN?!
MNM6MM#)-/<6,T,4<:Y+.R%5'YD52\,^'H8=)T6>\%U)=65HL<45TV?L[% K@
M#')X(R<G&<'!Y .<LM=U0:WX89-3GO(-2N[F"XN JK;SJ$D9/*4\@+M W8PV
M.K9S56,:YJOA;Q5?W/B;40-.N-2MXXHEC0.B A-Q"Y!&!RN/YFNIMOAWH-HE
MBD/VX)83F:T7[;)B#((*J,\+\QX[]^*TM/\ #&G:=8ZC91B:6WU&226Y2:0M
MN:3.\^V<]!QZ4 1^"X3!X+T4&:67=90-F0@E<QKP, <"MVJ&C:1;:%I<.GVC
M3M!"H5#-*TC    9)Z  #'M5^@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "J]UJ%E8[/M=W;V^\X3SI FX^V3S5BN!M[JU@^('BRT\1O!
M'#<VUN;,W1 22U"$2*I/& Y8L/\ :% &]XH\2P^'XK"/S8%N+Z[CM8S,PVH&
M)RY&02  >XYQS5[1GU0V<K:M+8RMYK&&:S#!)(>"K$$G#=<@$CWKRY0]AX(^
M'<&M2JER-9AVBY(#B#][L#9YX0H.>G%>E^)DLI/".JQWD[V]B]G(LLT/6.,J
M06'T'- %M=9TMXGE34K-HT(#.)U(4GIDYXZ'\JL"ZMVN3;B>(SA=QB#C=CUQ
MUQ7D.LS:I<>%O&.EWZV.J7":,DD>K:>N!<1 OM611D*X^9N#C!K3O-:M-4\=
MZ9-HE_;SSR>'[N.WEC<%3,3&54-T)&.G;O0!Z,M_:2W,MG!>6S7:*2T(D!9?
M<J#G%8/A#Q.VLZ2DFJ3V4-_)=W,"11ML\P12LGRJQ)/"Y-<]X+U3POJ^F>&8
MRN[7M*B*/ 2RS6LNS;.THXX)R26ZDCN:Y>-M*3X?0:@K6@NT\4AEGRN]1]M)
MX;J!M)/T)- 'N-<PWC&)/B#%X8:$A);=F2Y/1IU"NT0]Q&RM^-;&L:Q9:'HU
MSJE[,B6T$9D)+ ;L#( ]2>@KSCQ5HVKV7@>+7_[1TU[S2KC^V5*0%2\F2TB>
M;YA!4JS*/EY 44 >HS75O;E1//%%N!(WN%R ,GKZ 9J./4+*6T2[CO+=[9R
MLRR@HQSC@YQUXKSK7+_P_P"(?%7@'57-I-97BW7SR[2#F$%4?/<,?NGO7.ZU
MI=C9:/XGGMXHH]!_X2"Q>S*@"-&W1"=HR.B[B1D<<$=J /8VOXKFUNCIUW:S
M30!E.'#A' Z,%.?PXK!\/Z]J>N>$O#FK&;3[::^,;W22!@&0@Y6+YOO9QC.>
M]8MOI^FV/Q)NK[1$M;?35T1EU VVU8?,W@Q9Q\N[:']\8]17.:?/8#P'\+97
MEM_.34K=-Y9=RCRY-PSV&=N??% 'L$VH65M<16\]W;Q3R\1QO(%9_H"<FDFU
M&QMKF.VGO+>*>3&R)Y55FSTP"<FO-H-2T*6\\5^'?%H)OKC4S+%;L6$MU#\I
M@\HC!.-H "G@@^IK*\>:K82V/CBVB>.SO(WMFFBD)>>X*B,K(H)PD:CN!U!.
M1GD [ZV\321>,-=TS4Y[*WL;&&VD@E8^629?,R&+-@GY!C&*FU[7+W3?$'AN
MTMA;M::G=/!,64EP!$[@J0<?P^AKER/#E[\1O$,NMBPEM)]+M'@:["E9$_>[
MV3=UX*\CU'K67IL<NDZ9\,[34Y##,E_.42X;#K$8YO*!!Y&%9!CL>* /5I-0
MLH;R.TDO+=+F3E(6E4.WT7.35?7[VXTWP_J%_:B(S6MO).%E4E6VJ6QP1C..
MM>8I<:/J3:UX>\2:G>V^KC5Y)X[.-466?]YN@>%BA8_*$48;@#!P*]$\8S10
M>"M<>:1(U^P3C+L ,F-L"@#FU\<ZK8Z5X7U?4[.SDL==D@A(MBRR6[S+N3@Y
M#CL>A]C7;W=_9Z>BO>W<%LK':K32! 3Z#)KQ_2D@T32O!?BJ\E;4M"BL((+A
M99#*NF3%% G09P!GY6[KQBMK6-;TF/QMJ$>NZQ]DTK4M-B2PN1Y;P3("XE3>
MRL <L#@$9&/04 >CW5]:6,(FN[J"WB)P'ED"+^9HGOK2VMA<W%U!%;G&)9)
MJG/3D\5YG;:AI7A/Q3I4&J330: ^B"WTVYU$\*PD)=6)'RLR>7UQPH'7BK%D
M^GZ)XS\.(D36GAHZ5/!IIN&;8DYE!ZN<@M&/ESS@D#N* /0I-1L8HHI9+VW2
M.49C=I5 ?Z'/-2?:8#<?9_/C\_;N\O>-V/7'7%>96?AF;6/"GBJULMJV_P#:
MTEYH3#[J.FUPR=@AE##CC!/8U9OKS4?$/PWU;Q+:V<\=Y>62)%;JN)!"AS(H
M'J29<>HVT =_!J=A="8V]];3"'_6F.56\O\ WL'C\:C.M:4&VG4[(-A6QYZY
MPPR#U[CD5YO<3^$=>T_4]:L-5DU"9=$F@E#K&L<46,JLJA% 8-C:#SUQTJ[I
M_A'3=;^%&FOI5O9Q:J;"UG@O(T7?]IB4,A9NIPV0<]F- 'HGVF#[1]G\^/S]
MN[R]XW8]<=<5S7B77]4TKQ%H&F6*6;+JTLL6^=&)B*)OSPPSG&,<4>#+R7Q#
M _B:ZM'M9;J)((X9!AHT3.\?C(9/J%6L7Q[/:_\ "=^!H9;Q;=OM=P2PD"LH
M,) /MDX'XT ;OASQ5-J>LZYHFI6L=MJ&CO'YKQ.6BDCD7<C@D CCJ#T]36[#
MJ>GW-M)<P7UM+!'D/*DJLJ8ZY(.!7$>+]$M_#?A2^OM.@N9#-?6]UJLP)FGF
MA61=^=V<@+_#C;C(QC-8FOGPOJ?A;Q=K>FZJ^IR7&D,D\S;!"'53Y0("J/-Y
M..X'7&10!Z/?:B9(XQIFHZ:LBW423^>^X;6(R@P1AR#\N?7I5RYU"RLGC2ZO
M+>!I#A%ED"EC[9/->:^)++0;'PMX5OK6#3X7FU;37-PBH&DPRY8MU/&<G-7[
M6ZL5\2^-K'Q,\*+<B-X?M! 66S\K "9Z@-OR!_$WO0!WMW=V]E 9KJXAMX^F
M^9PJY^IK#\&Z[=Z_I^H3WGV<O;:C<6BM;@A&2-]H;DGKUZUP?AJ_O-"U?PBO
MC";[/ =!:.WFNVVJER9 2K,> _E!1SS]X=S72_"^6S;2]=BLVB\J/7;W:D?1
M4,AVX'88Z4 =C)J-C%=I:27ENER_W86E4.WT7.327&I6%IYGVF]MH?+V[_,E
M5=F[[N<GC.#CUQ7D/BO5].>T\1+#+#92VVOVTD\$C%IY&62$&<DG]W'M&!@8
MXZ\XK4DBT*[\8^/7F2QD4Z7;./,"]3'+N.#WY7)Z\B@#TR[O;:SM_.N;J"",
M\"29PJY[<DUB^#-=N_$&D75U>?9_,AO[BV!MP0C+'(5!&2>H&>M<%X6URWL]
M5\(3:S=Q1Z=)X8BCL[B=P(A=9'FJ6/ ?:%'/8$=ZZ;X62VC>']3BLVC\N+6+
MP*D?15,S%>.PQC% '20:O]MUZZTZT"F.P"?:Y3S\[C*QK[A<,3V!4<Y.*QN]
M5_L224:CH_VH7143$-Y C\S&T_-G?MXZ_>K&\!(8[SQI#=@>;_;T[N'[QM'&
M4S[;<5P[RZ8/A#/A[7$/B(^3@K\@^W _+Z?)D\=O:@#UF;5S9>(+;3;L($OE
M<VDJ\9=!EHV]\98'N PP,<Z4T\5M"TT\J11(,L[L%4#W)KC?'H:?4/!:6IW3
M'7HI%*]XUBD+GZ;:M>/]0LM.TW2Y+Z-"C:I L<TSE8;>0$LLLF",J,="0"2.
M1U !T::C8O9F\2\MVM1UG$JE/^^LXI!J5B3< 7ML3;'$X$J_NC_M<_+^->*:
MQ=6$O@[XAPS7<$[_ -JQ3QL5"YW+!\ZCMGYL$=0"<GDUVD$.D1_%W[':I9+!
M<^'F$D,84++^^&,@=?E)_ F@#N/[0LO(2?[9;^2[;5D\U=K'T!SR:K:YKNG^
M'M/^VZC<)#&76- S %W8X"C/?G\LGM7%^%;&[M]5_P"$/N8'-CX?N#=0SL,K
M+"V3;+[E29,^\*^M:?Q2V+X(>:4+Y<-[9R.[#A%%Q'N)]!CK0!U#ZKIT:AGO
M[55*A@6F4 @G /7H3Q3O[1L?MOV+[9;_ &O_ )X>:N_IG[N<]*\^6U\.:U\7
M[B-X-.O(9M!B=8V1'61A._S8/!.W;@^F,<&N?U#6M,E-C+!/#9);^+E>>U9B
MTT;>:RO+*Q/R!NPP  0,GH #V";4]/MRPGOK:(JXC(>55PQZ+R>I]*6YU"RL
MG1+J\MX&?[HEE52WTR>:\CU*WT2:W^*SM%8LR1[HMP7*,;5>5]#O';G(]15G
M5[V2.QEU;3M1L;_.CVPU/1[T_P#'U$%8AH7!R'^9QC!!/OB@#TF:\EMM7E-Q
M>V$6FQVGF,CG;,K!N7))P(\8[=>]4H?$,>MZ/9:CH=_8K#-<1AFN3G=&6P5
M!&'8?=!]>E<\LEI+\7KL*D23W'AM#)$<;RWG,<,.[ 8_"N4MKO2G^%G@0^=:
M^?:ZK8)(Q(W1.)!O!/8@#D=AC- 'L=SJ%E9O&EU>6\#R'"++(%+'VR>:?/>6
MUL0)[B&(E2^)'"_*.IY["N MKFQ'B+QO8>)GA07(1X?M! 66S\H !,]0&WY
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
MS'>!YR/F#,22O ^3)...G(X(KH* "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH *:\4<A7>BMM.5W#.#ZBG5A:WKEM E[8Q"[EN8K8S3?8UR
MT"'.&)]3@X RQP<"@#<*@]0#]12X&,8XKC/!FOM_P@7AU[M[J_U*[L1+L7YY
M9< ;F))' R.2>I ZD5KVGBS2]0TVVO+%Y;DW+O'% D>)2Z9WJ5.-I7!SG ''
M/(R ;*11Q*5C14!.2%&,FA(HXP D:J ,#:,8%<Y_PGVA"RM[II;D":^_L\I]
MG<O%< X,;@#Y2/U[9IA\?:2%U!?LNIFXL"#<6PLG\U$(W!\?W2,G/MZT =.(
MT5F944,WWB!R?K1L7^Z/RK*;Q'8O:VD]F)KXW=O]J@CMDRSQ8!W\X 'S#KR<
MX&34-OXNTF]T[3[RQE>[&HEA:Q1)^\D*YWC!QMVX.2V #QW% &X0",$ BC Q
MC QZ5QOP]U"XU#_A)FGGNY5AUJ6*);LDO$HCB^3!Z $G@<?G5^S\5?:O&.K:
M(UE/%#I\,+M<.H"DN)"23GA<*,'N<]L4 /U?P[-J?B;1-52Y@CATWSMT#P%O
M-\Q-IYW # ]C3O%?A^;Q#H\.GVUU%:".YAGW-"7'[MU<* &&,E0*6#Q=IDUQ
M8(?/BAU$XL;F6/;%<'&0%/8D<C<!N'3-9WQ+NKBP\&2WEM>3VLD-S;?/#(4.
MUID5@2.V": .KBB6.(($1>Y"+@9[\4[8O]T?E6#I_C/2-0U&[T\FYL[FUA^T
M/'?6[0%H?^>B[@,K[]N]2VWBG3[C5K;372YM[B[B::T\^(H+A%QN*^X!!*G!
MP<XH V3&AD60HI=> Q'(H,:$DE%)(P21U'I5#4M:MM,N;2T=99KN\+BWMX@"
MTFU=S'D@  =R1U'K3M&UBSU[2X=1L'9K>4L!N4JP96*L"#T(((_"@"Z\4<A4
MNBL5.5)&<'VI2H/4 UA:GXPTK21<RW!F-K:2I#=W,<>Z.W=L8#'K_$N< XR,
MXJ74/$UCI\MVACN;@V48DNS;Q[_LZD9!;N3@9PN3CG&"* -<QH9!(44N!@-C
MD#ZTI (P0#6!-XTT>.\M+6)[BZEO+4W=L+:W>031C'*D#!/S#IT[XJHGQ$T*
M2R@O +X6TD_V:65K1PMM+OV;93CY3NX]L@]"#0!U6T 8P,>E-:*-P \:L%.0
M",X/K7-ZCX\T?3;W4+)HM0GN=/1)+B*WLI'*JP)W=.5 4Y;ITYS6=?ZTNH^+
M? UYI>HS/INH_:6*1N1',H@9E++Z@^O0CU% ';/&D@ D16 .<,,\T21I*A21
M%=3U5AD5AW?B_2[&6/SS.MJ]S]C^V"/,*S9V["W7[WRYQM!XSFJFG>,X;O4]
M?ANK6:TM=)E$;3RIP?D#$G![[A@=2/<XH ZD  8' I  HP  !V%8MOXITZ34
MY].N/.LKN&V^UE+M-FZ#.#(#DC /7N.X%<WJ7B&2]\;^#!9OJ,%I>RW#8<%(
MKF,0.P)&?7! 8 ]#B@#O%BC0,%C50QR<#&3ZUFZU8:K>PP1Z3JRZ85DS,_V9
M92Z8((&3A3WSSTZ&J/CS7+GP[X*U74[-':YAMW,3!=PC;!PQ]@:R+1+&S\6:
M,\NJ^(X[F_5_(T^XFD:W=DC;>S;LCIR%W=0#B@#L[*TAL+&"SMU*PP1K&@)R
M< 8'/>IBJDY*@_A63;^(K2ZNX888KAXIYY+>*Y" Q-)'NWC.<C&QAD@ D<9J
M ^,-*%U9QEIA!>W)M+:[\O\ <RS#/R ]?X6P<8..": -ZF)%'&FQ(U5>NT#
MK"3QCI4EW!"IG\FXO'L8KKR_W3W"YR@.<YRK#)&"1P:H^%KBZ?QAXPM9KN>>
M&WNX!"LLA81AH%8A1V&2>E '6[5QC:,#VIK11N5+HK%3E21G!]JS9?$%G#XD
M@T%TG%Y/"T\9,?R,BX#$-TR"1QUYZ8I@\1V;!PD5PTHN7M8XE0;II%!+!><$
M#!R20!CK0!K/&DB[9$5AG.&&>:4*%&%  SG@5S\7C71Y[-9XWF,S7IT_[*8\
M2BY&28R#P#@$YSC'.:9-XZT6VT6?5+A[B*"WN_L4ZF!BT,VX+M;&0.6'.<<C
MF@#HC&A))1<GKQUI=J_W1^54=*U6+5[>6>&"[A6.5HBMU;M"Q([@, 2#G@U?
MH 8T4;J%9%8 Y (S@^M.50HPH '7 %+10!0&EQQZP^I0-Y<LR+'<KC*S!<[2
M?1ADC/H<'.!B[L7^Z/RIU% % Z7')K":E.WF2PQM';+C B#8W'W8X SZ# QD
MYO,JNNUE# ]B,TM% ";%Y^4<\GCK4%[!/-8SQV<ZVUT\;+%.8P_EL1PVT]<'
MM5BB@#+T32Y]-MY&OKW[=?SL'N+GRA&'( 4!5&=J@#ID\DGO6F0&!! (/4&E
MHH 3:N<X&?7%)Y:9)V+DG)XZFG44 )L7^Z/RIIAB9E9HT)4Y4E1P?:GT4 )M
M&<X&?6DV+C&T8Z]*=10 QHHW96=%8J<J2,X/M3BJDY(&?I2T4 (% Z #Z5S^
MB^')M-U[6M2N;B"X&I7"3JBP%3"514P"6.>%'85T-% #7C24 2(K@'(##/-*
M5!.2!GUQ2T4 )M&<X&?6D6*-&9E159N6(&"?K3J* &&&(N7,:%CC+%1GCD4^
MBB@!J11QEBB*I8Y8J,9/O2A5'0 ?04M% "%5)R0,_2DV+_='Y4ZB@!-B_P!T
M?E37BCD38\:LN<X(R*?10 4@ &< <]?>EHH ;'''$NV-%1<YPHP*4@$8(!^M
M+10 FU<8VC'IB@*!T 'TI:* $*@G) S]*38O]T?E3J* &/%')MWQJVTY7(S@
M^U.*@G) )^E+10 W8N"-HP>HQUI=JDYVC/TI:* &/#%(NUXT9>N&4$4^BB@!
M,#).!D]Z-J[0NT8'08I:* $VK_='Y4!0.@ ^E+10 UHHW96=%8J<J2,X/M0\
M:2H4D174]0PR*=10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 5PBVVL:)XU\13#2KG4+'6DBD@GMV3]S(D>PHX9A@< @BN[HH \B
MT[0=<T;2_"FH7/AAM26STUM/OM.8Q-+'EE994!;:>1@C(.#^6IK&BW\,FAZY
M9^$K62"U>X6YT6-8@XCFV?./X#(#&"<>N,G&:])HH \\U72[VZTW1)+#PP+
M+KL%]+:P+$KQQ)]YY-IVESZ DXP.U6UL=13Q5XQNSIMP;>^L;>*U<;?WKHD@
M8 ;LCEQUQ7<44 >366B:SHL7AK4+GPNVK0PZ-%IE[8_NFEMY$.1(@8[6!R0<
M'T-:T^EZII.OZ!X@LO#ZK:107%M<Z98^6'MEE965P,A6;*C=@_3/6O0Z* .1
M\$6FHVMWXDDO]-GLTO-5>[@,K(=R-'&O\+'!RA]O0FJ5]H.I77BGQ9;BUE6S
MUW2XK:*^5UV0LJ2H=PSNSEUQ@&N[HH \[32-6UKP]X6T6]TV:SN=)N[::ZF8
MJ8P+<=8V!^;?@8QT!.<8YWO'^EWNL>#KJTT^ SW/FP2K$&"EPDR.0"2!G"G&
M37344 <#K_AN\\9:A<72PRZ?$NC7-A$UP KR2S@#D DA5V]^I;CIFI?"<5W/
M/9#4/!-OI5[9(5GO62$JS;=I\DH=WS=3D  9'-=S10!RWBC^USK.C"UL+F[T
MLF47@LY$28-@>7\S,I"9W9VD'@9XX,?PZT^_TCPN=/U&P:SEAN[@JI=6#*TS
MN"N">,,.N#[5UM% ' :6GB'P]K&MZ6-"DO[;4+^6]L[Y9$$2"7!*R@D,-I]
M21TJQ8V>J>'O$GB5GTZ?4+/59%NK:2':?WGEA&B?)&W[HP>F#UKMZ* /-O#O
MA;4O#NK^$;=[:6X@TW2KBWN;F,J4661D8 9.2/E89QZ54N=#UN7X>>(--31[
MG[;=ZV]U#%NCRT1NEE#9W8'R@\$YS7JE% ' 6%^]K\3O%3+875QOL;$A8E!(
M;$N%.3QG)YZ#')%4M(\*ZGH,G@*U^QO,FF&[DO)(64I"9D;"C)!(#/C@=!FN
MXM=!L[/7;W6(C-]LO%1)RTA*LJ9VC;T&,GIZUJ4 >9Z)HU_ID]QH-_X-MK_%
MY++;:O(D+1-&\A<-)D[]Z[L8 .<#D=:75/#6MWQ\<:=!9%/[2GAN[.ZD=/)<
MHD?R$9W9+1D'(Q@]?7TNB@#SB71[SQ5X;U2T3PA!X=OIK"2W,\JQ;FD8?<1H
M\GR\]2<=L \X5?[>U35/!EQ-X:O;9]+ED%[N>+:I,#1Y0[_F7)S]/6O1J* .
M9^(5C>:IX"U?3M/M9+J[NH#%%$A49)]22 !5/5K6_O/%7@Z^BTVY-O9M<-=,
M=H\G?"47(W<\GMFNRHH \[L=!U"V\46]_I%M?Z6MQ>2G5;.1PUI(A#_OD&3M
M=CM/R\\G(&#F;P2OB+1M,L_"U[H3YT]_+&IF1#;R0AB0P&[?O*\8QP>2>U=]
M10!Y5<Z=XFOFTN>\T&[DOK'7Q<RLD\2PF -)M,*[\8PRDD@$G.2>W5>&K*^M
MO&'BNZN;*6&WO;B"2WD8J1($A5&Z'(Y!Z@5U=% ')>/[&Y;2[/5]-,8U?2[J
M.6SWG E+L(VB)]'#8^N*S?$?AV_L(?#E[8Z:FMC2FE6\LWVAK@2@;Y5W<;]X
MW8[Y-=5-X<TRX\01:W-#(][%&(T+3/L7&<'9G;D9/.,UJT <#>1:LFGV%QI?
MA<V%K/J >\L[00QW?D["-Q(8*&+8!VMN"]P2<84_A_75\)^)--CT&Y$MUKT=
M[;J)HVWQ>9"YY+]0(VSGOC&>:];HH H7%_<Q7NGPQ:;/-#=%A-,&4"V 7(+
MG)R>.*OT44 %%%% !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 %
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
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
MPT[3?#<=KI%[/>:>LLA@FE92"I;.$*@#8"2!Q].,5T- !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !4%U9VM[&([NVAN$!R%EC#@'UP:GHH C>WAE5%DB
MC<1L&0,H.TCH1Z$5)110 445RGC:^O\ 3Y?#KV5[) D^LVUM/&JJ1+&Q.021
MD=!T([T :%SH=W+J,EY!JK6[,> MI"Q7C'WBN3^=5Y?#E_)(9SK3/..5=[*#
M.1TYV9J#7-5N)O&>C>&K>:2&.X@FO+N2,[7,:8544]LLW)'.%XZURNO>)M4@
M\$>,HX[^:/4_#]SY<%TA&YXVV,A88P3M8J>.<9ZT ;'AGP+JFC0RF?68OM)N
M)9DFAM(F8>8Y8C+)D<L>AQ["DM/ NK#Q/JFJWFL0RK>&(H3:Q.Z&-2H/S)@<
M'MC'OUJ?Q'%KN@^&)=<TC6;F>:Q@^TS6EZ$DCN$4;G&0H93@'!!_"NHT75(=
M;T.PU6W!6&\MTG13U 90<'W&: ,R7P[?S2K++KCR2+]UWLH"1]#LHC\.7T+.
MT6MNA?ABME -WU^3FJNLWU_:_$/PQ:17L@L;R.[\ZVVKM8I&I4YQG^(]\=*Z
MN@#G8?#=Y;VS6T.M-' V=T26-N%.>N0$QS3HO#U_"RM%KLD95/+4I90#"_W1
M\G3VHE\9Z/#I.IZE)).MMI<[6]X?(;=$X"D\8R1AEY&1S2WWC'2K'5)M,9;V
M:^BMQ<F""TD=FC)P"N!\W(/(X&.: &6_AN]M'D>VUIH6E.9#'8P*7/J<)S1%
MX<O8%=8=;:-7&'"6, ##WPG-68_%&E7&F:=?VTS7$>I8^QI$A+S<$D!>V #G
M. ,<XKG?"'B F3Q5<:A>7;P6^K^1"MRI+IF.,"-5QUWL0 !SGC.: -NV\/7]
MG"(;779((@<A(K*!5S] E,E\-7D\OFS:TTDG]][&W)_,I27'CK1+.TU2>[>Y
MMVTL*UW"]NYDC5AE6PH.5/\ >''J16GI.MVNM"X-JER%@<(6F@>,/D AE+ ;
ME(/44 4)/#^H2RI+)KLCR)]QVLH"5^AV<4Q?#-VDC2+K)5VD\TL+&W!+]-V=
MG7D\^]+<^)Q'XWA\-"TN?WED]RUPL9(!WHBX]AN;)/ X]ZYWPCXQ@LM-:#6+
MN^GD?6+FS6ZDB>1$/G,D:O(!M7/  ]QTS0!T<7AV_AE:6+7'CD?[S)90 GZG
M938?#-W;Q210:R8HY"2Z)8VZAB>Y 3FI]4\6:7HXGDNVF^SVSJEU<1Q%H[<M
MC&\CI]X$XS@$$XS6V"'4%3D$9!!ZT 9&D:)-I,C8O_,A;),*VL42EO[WR*.:
MV*\UTC5XG\1^*K36/%$UI#87JQVR27:1[8S&K'J,GDGDUTR>(++0M/TB+4;V
MYN/[0E$5M=/"3YA<DQJ[ 85MI YQG% &])9VTLRS26T+RKC:[("PQTP:B&F:
M>$*"QMMI()'DK@D?A[FJJ^(M..G37[/)';13&#>\3#S'#;,(,9?+<#&<GIFN
M7\:^)TN/!/BA-,N[NPU72K</*@'ERQ[AE#GG@C/(/;M0!VLFGV4RPK+:6[B$
MYB#1@^6?]GCC\*<]K;RS":2")Y0I0.R G:>HSZ>U8UCXMTJYO9;!I9XIX;7[
M46N(7C62(<-(C,,,H/<>OI3K#Q;I>HW,,$7VA7N+0WMMO@8>?#Q\Z=S]Y>.&
MY'% &I_9UEN5OL=ON50JGREX X ''2FMI6G/$8FL+4QDY*&%<$_3%85G\0-
MOO[/:"2Z,-_.;>"=K618_-W,H0L1@,2IP#STZ9JWJ7B_2=*%\]Q)*8=/*"]F
MBB+K;E@" V.>A!. < @G% &W'&D4:QQHJ(HPJJ, #T J+[#:%G;[+!ND<.Y\
ML99AT)]2/6LZY\2V-O )%CNYCY'VAHHK9_,2+GYF4@$=#@'DX. <&K^G:A::
MMIUOJ%C.L]K<()(I%Z,IH 0Z;8DN396QW_>_=+\W?GCFLJYT74+K5XD-Y:QZ
M!%Y<@LH[;$C2(VX9?.-NX*<8YQCUS'XTO=3M] EM-"(&LW@:*T)_A(4LS?@J
MG'N5]:L^&?$-OXA\)V.N!EB2:#?*&.!$PX<'/3#!A^% &U4,5G:P2M+#;0QR
M-]YT0 GZD5CP^+]+FO+>U7[2);N![BT#0,/M2* 6,?J<$'!P2#GI2>#_ !(/
M%6@1:H+66W$C/M61"/E#L%YZ$X SCO0!KKI]DLC2+:0!VD$K,(QDN/XB<=>3
MS3H[2VAF:6*WB21\[G5 "<\\FJ.I:_9Z9>1V;B::[>%[@00)O?RD(#/] 6 ]
M23QFJ4GC;0HX])D%Q-(FK(9+-HK>1Q* I;'"]<#[O7/:@#9AL+.WCDC@M((D
ME),BI&%#D]<@#FEMK.ULD9+6VA@5CN811A03ZG%9-IXNT>[T>YU,32Q0VLYM
MITFA9)$E! V%,9+$LN .N1BL;2]7N;OXK7UF9;Z.V32(Y?LEP-JI(92-R@<'
M*@<Y/<>HH ["YM+:]A\FZMXIXLYV2H&&?H:;)8VDR(DMK ZQC"!HP0H]!Z5%
MJFK6FCVJ7%Y(5625((U52S22.=JJH'4DFLJX\;Z+::1J.I7+W$46FR^1=QFW
M8O$^ 0" #P0R_-TYZT ="45D*%05(P5(X(J."UM[4$6\$40;J(T"Y_*L>#Q=
MIESJ%W8QK=_:;>W^T^6UJZF:+.-\>1\XSQQ[8ZT^V\5:9>:'9ZQ;--)9WDBQ
M0,L3;F+-M'R]1S^7>@"34M#2XT._T_3)$TN6Z0CS[>%058_Q$#&?Y^XK'L/"
MET]S;RZK!H*_9I%E1M/L#'(S*<@[F8[1D<@=>F<9SU-S<0V=K-<W$BQP0H9)
M';HJ@9)/T%8]EXMTR^N1;H+E)7M!?1(\#9E@R!O4 $GDCC[W(XH U3I]D99)
M3:0>9(RL[^6,L5Z$G')':E^Q6OG--]FA\ULAG\L;CGKDUS5I\1_#=[-IRPW%
MR(M181VMR]K(L+R'.$WD8W''3^O%)=_$CP[9"[:62],=G<&WNG6QE*V[ #ES
MM^5?F')Z\XSB@#IHK.U@\OR;:&/RU*ILC V@\D#'04UM/LG38UG;LNXMM,2D
M9/4].IKF)M0G_P"%H:=%%?32:?/HT\_DHV8V821 , .IPQ]>O%6M$UW2(]!D
MOH=1OKJW>^EB5KM6,IE,A'E*I ; ;@#' 'M0!O3V%G<M$T]I!*T1S&9(PQ0^
MV>E+)9VLTRS2VT+RKT=D!8?C6,/&>C".[\R66*>TN8[2:V>,B42R8\M0!UW9
M&"./?@U@^-_$HN? &OW&E7EW8WVF2)',!^[DB?<AP3Z%6!R#WZT =F=*TYHF
MB-A:F-CED,*X)]QCW-6(HHX(EBAC6.-!A408 'H *P[#Q;I.KZO/HT,EU!?"
M(RHL]L\)ECZ;XRX&X9[UD>!=<=? FGW&IW5Q=W<]U<PQELR2S,)I, ?15^@
M[ 4 =>]C:2/*[VL#-+CS"8P2^.F?7%)/86=S*LL]I!+(JE5>2,,0#U )[&JN
MC:[8Z[%</9N^^VF:"XBE0H\4@ZJP/U!]#GBJNL^+-+T&^M[*\-T;JXCDDABA
MMI)#($&6"[1R>1P.>?2@#4GL;2ZMUM[BU@FA7&(Y(PRC'3@\5A^)_#MQK<^B
M?9Q:K;Z=>K=/',#B0!&38 !@##GGVZ5-;>+M+NX]0>/[4&T^".XN(WMW5TCD
M4LIP1D\ G'48QUK'O=8>]\9>"+G3[ZX_LW5+>YF,0)5)5\D.C%>N?FSS0!V$
M5I;06WV:&WBC@P1Y2( N#UX'%-EL+.XMEMIK2"2W7&V)XP5&.F >*R[GQ;I5
MI<0QS/*L,US]D2Z\H^3YV2-F[UR",],C&<\5,GB*RDO$MXUG=7N&M1.L1,?F
MKG<N>V-I&3QD8SF@#0GM+:Z@\BXMXIH>/W<B!EXZ<'BG100P!A#$D88[B$4#
M)]>*666."%YIG6.*-2SNQP% Y))]*QH/%>ESW=I;$W$+7R&2S::%E6Y4#)V>
M^.=IP2.0* -6XL;2\:-KFU@G:,Y0RQAMI]1GI65KFEZKJL\5M!J$%OI,L;1W
ML1@+2R*>R/N 7(R,X.,^O2+2?&FD:W?):V'VR1F>6,R&TD5%:,X968C"M['!
M_,9NZYX@T[P[:PW.I221Q2S) K+$SC<QP,D#"CGJ<4 :8 4    < #M4<EM;
MS/OE@B=MI3<R G:>H^GM61#XJL;FW22&WOVF<R!;9K5TF(C.&;8P! R1R>N0
M.O%%OXMT>\T_3[RSN&N%U%VCM8XT/F2.H)9=IQM*[6SG&,<T :/]EZ?M"_8;
M;:#D#R5P#^7L*D:SM7NTNVMH6N4&U9C&"ZCT!ZBL%?'FA-;R3^9=JD5VME,6
MM)%$<[-M"$E<9W$ X)QD>HJY<ZQ:W5WJ6BPSSPW]O:B9L(5*HV0K*Q&#RI_*
M@#6EABGC,<T:2(>JNH(/X&JXTK3@0186H(Z$0K_A7*^$/$JIX&\+MJ,\]WJ>
MHVH,:#YY9V"[F.3Z#DDD=O45/?\ CVRBL=$N[""XNXM4O1:*RPM^[(+;PPZ[
MAL88]1Z4 =.;.U/FYMH3YO\ K/D'S_7UICZ;8RVPMI+*W> -N$31*5!]<8QF
MLBWU336\5ZBGV^]6Y@L8Y)[:<,D$4>6(<;@!N/()!/"^U36_BO2[B[L[<F>(
MWR%[-YH65;D 9.PGOCG!P2.0#0!J26=K-(DDMM"[IPK,@)7Z&F?V;8>6\?V*
MVV28WKY2X;'3(QS7/_\ "P_#^UI!)>>2EY]BEF-G($AEW!<2$K\GS$#G^5:E
MSXBLK:ZE@*SR^1+'#.\4198GDV[5;'J&4^@!!.* +SV-G)NWVD#;R"VZ,')
MP,_0<57O-(MY[2>.V6.TN7B:.*ZBB7?"2N R\=1V^E:'2L&P\8:3J5W906\D
MN+]9'LI6C(2X"?>VGVZ\XR.1F@#(LO!MX\<%MJR:#)# 4Q/;:>4GDV$$'<S'
M8>!DC)ZXQU'7?8[4W8N_LT/VD+M$WEC?CTW=<5PWC_Q0%\-32:3=7T;Q7\%O
M]JME(C+^<JNA?Z;@2.,C&<\5T^H^)].TU[L2^?*MDH>\>"$R"W4C(+8]N<#)
M Y(P: &>,=%N/$?A/4-&MI8HI+R(Q>9)G" ]3@=?IQ6CI]E%9P#9:VT$S@&7
MR% #-ZYP,_C63>^-M$LKN"U\VXN)[BU^UVZ6MM)*9H^.4V@AOO#IGCDX%9UY
M\1--_L?2M1TR*>\BU#4(['Y8F!A8MAPZG!#  X'4G':@#JET^R21I%M(%=I/
M-9A& 2_3=G'7D\^]+'8VD1<QVL"%P0Y6,#</0^M96I>+--TJ&::Y%R8;95:Z
MDC@9A;!@"-^.G!!(&2 02 #3M0U^Q0/;12W$TIMOM#&R3S&CB.</QZX.!R3@
MX!P: -.VLK2SW_9;6&#><OY487<?4XZTD.GV5N5,%I!$59F79&%P3U(P.I[U
MSWPXO;K4OAWHEY>W$EQ<S6^Z261LLQR>2:QSXI&@^._%*:C/J5U:16]G+#!#
M"\_D@B4NP5!\J\+DGVYZ4 =RMC:(?EM8%_>&7B,#YSU;Z^],_LO3PA3[#;;2
M02/)7!/Y>YK-A\8:-<WFDVUO.\QU:)I;*1(F*2JHRWS8P"!U!YK2M-1@O;J\
MMX1)OLY!%*60@;BH; /?A@>/6@"9;:!'1U@C5T38C! "J^@]![4Z6&*=-DT:
M2)D':Z@C(Z=:P-8\4#2_%&CZ+]CN)6OQ*YE2,L%5%Z#'4Y*Y]!7.:+XP@T2;
MQ-_;5Y?W$-OK3PK,T3RK;Q%(MNXJ,(NYC^OO0!WTUC:7,T4T]K!++$<QN\89
MD^A/2IB RE6 ((P0>]96J^(['2!/YRW$OV:+S[@6\1D\F/GYFQ]#P.>#Q6A:
M7=O?V<%W:RK-;SHLD4BG(92,@C\* $@LK2V<O;VL,3$8)CC"DC\*:=.L6BEB
M-G;F.;_6(8EP_P!1CFN$?Q%%-XYU;0];UF\T:[$B_P!DA7$<4L10?.I(VR/O
MW9#9'  '6E\77FK:'H?A#[3K$L%S+J5K9:C<(ZJLB,K>83D8&2,Y'2@#O/L-
MIL=/LL&QP Z^6,-C@9]<8&*;)I]E+:_99+.W>WSGRFB4IGZ8Q7/6FH:=;W=[
M>VWB.6_MM/LVENX?.295!R5;('! C?C/>J_A(W_BOP_;^(-2OKJ!KX&:WM;:
M7RTMXR3L''WVQ@DMD9/  H [%55%"J J@8  P *6L[1;;4+33S!J5X;RX6:4
MB=E52Z%R4R%  (4@<#M6C0 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !7)^.;2[O!H L[.:Y-MK%O=3>6N=D2$[FY^O0<UUE% '*ZUI<\7
MC+1O$UO#)-'!!-9W<<:Y<1OAE<+U.&7! YPWM7+:[X8U6?P/XR>.PFDU3Q!=
M>9#:KC<D:[%0,<X!VJ6//?'6O4Z* .,\0OK>O>&9=#TK2;BWEOH/LTUW>%$C
MMT8;7. Q9FP3@ 8SU(JW!X)AM8--@MM;UFVAL+>*!(;>Y"1N$&,LN.2>]=11
M0!R6NVMW-X_\+WD-G/):V:W0N)E7Y8_,10ON>0>F<=ZZVBB@#RC6])UQ=$\>
M:);Z)=W$NJW3W5K.A01.CQQC&2V=P*$8QZ=N:Z2UAOE^([ZK+IMW%:'0X[;>
M5#8E$K.4^4G)P1R./>NSHH \DT+1]?T&R\&:E)I%U,-,BNK2^LTVF6(2L"LB
MC.&' S@YP?K3[K0M?O;?Q#=0Z')Y@UV'5+>UNVC"W<:1HK1_>."0#UXSBO6*
M* /--:L)M;\#:_\ V9X,?2KN\M/LZ1O!$EQ.^>^PX"#L6/.>@[^B6;E[*!C&
M\9*#*.,,IQT-.N+F"T@:>YFCAB7[TDC!5'U)HM[JWND#V\\4R$!@T;A@0>AX
M^A_*@#E[^TO[?XFV.K1Z?-<63Z5)9O+$5Q$YE1\L"0<8!Z9],5RSZ-J[> +O
M3QI-W]L?7S>+%M&3%]K$N[.<?='3.<\5ZM10!YFFFW6GZ]K5E?>#%UNVU.[:
MZL[PQQ,BAP,QS;SE0I'7!XZ"O284\J"./:@V*!A%PHP.P["F7%W;6:QM<W$4
M(DD6)#(X7<[' 49ZD]A4U ' >'8[S3O$/BRXO=#OGMM1O5EMR(E82((PIR"V
M1R.AJ[J5C-XD\/P:!<Z1/96=V2C%@K-:PQGY.<D>8VT$8SMSSR.>RHH \RFL
MO%%WX(L;8Z83JWA_4(9HD.V./4(H6(!7G"EEYP<8(J_XFDU;Q1X!UV.W\/7E
MI-=6OD007 03RN>I(5B%4=LG)YX'&>[>6.,H'=5+G:H8XW'K@>IXIES=6]G%
MYMU<101YQOE<*,^F30!Q&K6VKR>+K74M.TR20Q:#<VZ&90$^T,49$;)Z$J<G
MI[UGZ-9ZP/%/AS5KC1-441Z;/;WDD[H2DI\L\(&PJ?*V H&?3O7HT]Y:VP4S
MW,,0;[OF.%S],TZ"ZM[D$V\\4H'4QN&Q^5 'EUIHVKQ> ?#-@^E78N[/74NI
MXMH)2(7+R%LYP?E8< YI-5C>35O%5BFB:Y<:3J<Z+<MIT44RR,(T#E6,BE"?
MNL-K8V\8)X]7KGO^$,TI+Z>Z@EU&V%Q*TTT%M?S112.QRS%%8 $GKC&: .5N
MEDC\2IK\/A>77-$U2PAA$:0QF>TDC+X4I(1A2'YYX(Y]^]T:V%GI%O MC;V
M521:VZ@)#DD[1CCC/)'!.:)+_2]+:VL9+NTM&<+'! \BH6[ *I//3H*O4 <P
M+!];\47=S>P:A:PV<0M[-DF:(2!OFD<%&!Y(08/]S/>N9L/#>I6H\:>%+>UN
MHM'U-)'TZ\E.Y4EECQ(I.2V-W(..>?7GT:VO+6\$AM;F&<1N8W,3AMK#&5..
MAY''O4] ')>%-2UJ\MK&RU+PY/I\]E$([JXG*&-B%V_N2K$G) .2  ..3BCX
M<V=_I?A"WTK4;":UGLWD0F0J1)F1VRN">,$<G'6NL=UC0N[!549+$X %5/[7
MTW_H(6G_ '^7_&@#G/$*ZM)XJM(ETVZN=)>RD4R6CJC>>6&%D8L&$>T9P#@G
MJ#P*YKP_I&LVME\/(KG1[N%M):9;S.T^6#"R \$\%F^N.3BO4U8,H92"I&01
MT-+0!Y1>Z#KTD6L7=IILS30>)XM8@MW(3[7"B(I"DG .5) ..@KH=,_M"^^)
M;:PVBWUK82Z,EN);D(I602LV"H8GH?3],&NON+RUL_*^TW,,/FN(X_,<+O<G
M 49ZDGM4] '.>,VU5-*M6TJTDN2+V$W*PA3,L&?F:/=QOZ<]1DD8/-<+J.@Z
MU+H'CRQ@T*^#:I+#)9B259#)^[C!!;>3D;6))./<UZ[10!R)M[N7XGV6IK97
M LAH\ENTS)@+(TJ.%/?HIYZ52\/:%<V/C34K)71M#LIC?VB \QSSJ0R>P7]X
MP'_385VMY:QWUE/:3;_*GC:-]CE6PPP<$<@\]15;1]&L]"L%L[%)!&#N9I9&
MD=VP!EF8DDX '/8 =!0 :Y]N_L#4/[,ABFO_ +-)]GBEQL>3:=H.>,$XKAM!
ML=6'C;1]5FT;4XXFTB2UN)KN1"4E+QL<J&PJ_*<!0/8 <UZ144VV13!YQC=U
M."I ;'<C/U'YT >2^&+&?Q+\)O"NCPV<Z.D\$\EPZ82...7>75NA) V@#G+<
M@#-7[!IKFV^(FE0:?/<SWFI3PPX3]VS/;QKAFZ*!P23C@\9/%=_H6B6GAW1X
M-*L#+]D@!$2R-N*CKC/4]^M,TC0;719[^:VDG9[Z<W$_F/N#2$ %AQQP ,#C
MB@#E[#1+S2/&'AQ?L\\]GIV@M8272KE3)F+'OR$/:L6/1/$%OX9M[NUTN9KW
M3?$4^I_8I&"M<0.\G"G.-VV3(SW%>K44 <1K&H:_J&BI>V/AZZMD:\@\V"18
MOMGD@GS'4;BH;[H7G(Y/'%<[>>&];N](\>65OHMW&=1D@GL_/G1C)M2,%2Q<
MG=\K=3CWKUFB@#D9+2?7/&.C:Y]BN;6UTJWN-QGCVR2/*%78%ZX4*23T)(QG
MG'(VN@ZW9>%/#MTV@/>S:5?W;W6ERA-TL,SR$,F3M+ ,I SZBO7** ,/PS%%
M]FGNHO#Z:(EPX80&*-)GP/O2!"1GL!DG YZX&?KEK>2_$+PO>PV<\MI:17:W
M$RJ-L9D5 F><GE3TSCO7644 >?ZC9ZK9>*O%;PZ1=7<6LZ="EM-"5V*Z)(K*
MY)!'W@1@'/:J^EZ7JL,_PY\_2KJ+^RK"2"])VD0L8%C&<$YRRGIT'7%>D44
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
M;V:0K(TLD<8422G)<@=6(]:Y3PWX:U_PUIES9V^HZ;-YUU-<AY+5_E:1MQ&
M_(!- #]>U^;P9+I4362'0' MFN4W/);N%Q&I4=0Q 4'/4\]:MRZ[J%NVC:=<
M6UM'K.IAV\L.6B@5%W.2>K8RHP,9)Z@<U'>>%IM8M4L=;N(K^R%HT;QLA4R3
ML,-*>> ,G:!]W/L,9<O@O7I-+T.0Z_"VOZ(S"VOGMR4FC9=K)*F[)R ,D'/&
M>M %+Q?<ZG=:3HLFIZ5'!>VWB>UBA"R K.HD^613R5##L>16Q;^*M8\WQ'8S
M:1#<:GI*12PPVDYVSK*I*C+ 8(*G)Q]/2GZIX8U?5M/TY+K5+=[RWU*'4)7$
M#",F,@B-%W$JO'4DGJ>_%36/!&H:K<>)Y%U2*W_MJ"WB39$28O))(W<_,K9(
M(XX- $D/C2Y-SK]HL5C>S:98I>QRP2E8I0=^4)PV""AY&<Y[4W2O&.JW-_X8
M%]IUK%::_;&2)HIF:2-Q$)?F!&,$9Q@D]*#X/UB74]3OY=4L=^H:4M@\4=HR
MHA&_!7YR=H#].I(Z@5+!X0OX&\($WML1X>B,;?NF_?YA\K(Y^7CGOS0!5NO'
MEZNE'5[/3[>6U_M;^RQ!+*R29\SRA(6 ;'S?P[2<<YSQ4VI^,]0C347TK2GO
M6TV80RV\<,TC3N I=8W5-HQNP,]2#P!@GC].U&6::XU/3]9\+SS2WLMTFGWL
M$BW8DW$*IC63B4+A00F[Z]3V,?A?Q!9:Y>WVC:S!966JNL]Y:7%MYS03;0&:
M)@P&2 /O C(S@]* .QAE\Z".78Z;U#;77#+D=".QKRCQCXBAL_$MOXIBU6#R
MM#OA8R60G7=) _RW#[,Y)#%1C_IEFO4;F*Y&G/#8RHEP(]L4DX+@'& 6&<M^
M?-9<?A\?\(8=!G\B5GM#;2.5.V0E2"Q&<Y.23SU/6@"35M<^QWFEZ?:+'+>:
MF[K 6/R*B(79SCJ ,8 ZDCD=1S7B37O$]KHMN6M(+&X.N6]D9-Y9;B%I4 =,
M'*ALX(.2.?7- \"ZROA[085UV'^VM!;_ $.]-N=DD9784D3=D@K@$@YXS6EJ
MOAC5M9\/QP7>JP'5$O(+U95MR($:)U8($W9V\<G=DDD^@ !U,7F>2GG;?-VC
M?LZ9[XSVI]9UO!JR:IYEQ>V\EC]F53$D!5O.S\SYR?EQQM_7UT: "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ J);:!)3*L,:R'JX0 G
M\:EHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH C$$0F,PB02D8+[1DCZ
MU)110 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 %%%%
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
M&06T+22-@E<CY0ZY [YQFO5** (Y)ECMS,5D*A<X6-F;_OD#.?:O/? %W?\
MA[X<V.FS:#JDFJP>;_HOV<H"6E=ES(V$ P1SGBO1J* /*9/"6I:)X(M;>:&2
M[U6\U^'5;Y;2-G5&,RN^,#HJJ/J1Q73:1#.OQ,\0W3VEREM<V=I'#.T#!&9/
M,W $CMN7ZUV%% 'EWA*PFM[73O#NL>$KN74=,G7;?RKNM&"-\LZN6^]MZ #.
M3VYQ=\+2:II-L_A74/#MW<SP7TLL%\T2M:R1O*TBRER>&&X_+][(&/;T2B@#
MRS4?#^LW^C^/=%M[&>.YO;_[;:S. (9E"PD(&SU;RV4CMWQ6Y<QS>)/$WAC5
MH[&]LTTH3SW7VBW>-E+Q[/*7(^<DG)VY&%Z\BNWHH \Y\/Z:1\)I-+U71KZ3
M,\PGM!&R2E'N68,G<D*P88]*V/!5MJ]E<:G;7EY=WVF1F(6%U?PF.Y88.]'R
M 6"G&&(YR?2NNHH XJV2\T#Q_P"(+R[M+NXL-6CMY+::W@:;8T:%&B8*"5S]
MX$\<GG-8*>'M1T7P=X-TU[.YEGM=:CO;B.",R"WB+R.02N1\N\#CTXS7J=%
M&=KMO+?^&M2MK="TMQ9RQQJ>"69" .>G)KA((KZ6Q^'@;2=1B.FR(+H/;MF,
M+;-&6.,X&\X_7IS7IE% 'E&HZ1K%Q_PE%Q9:9<RNFN6VHPV\B-$+R*-(PRJQ
MQSE6Q[@5U_A;[+>W<^IV_AR[TIGB6)Y;^+9/+@YVXR3M'J>I/%=110!PVL:;
M?:)\1(?%MI937UE<V/V"^AMUW2Q8;<DJKU8=B!SW -;EU<R^(=+O+*PANK=)
M[:2,W-S \!1F4@85P&)R0<XQQUS6[10!YE%IFHZQX+\,^'9=-NK34=,NK3[0
M[Q$1Q+;D9D23[K;@O&TD_-SC!Q6OM.U";P3\0K---O3<:CJ,\EI']F?,RLD:
MJPXZ95ORKU:B@#BY8YYOB+H%ZEG=_98]+GADE-NX5'=HRJDD<?=;Z5R.@6;^
M)/A'H&AVMI<"X-W'(9FA98X42X+M('QM/R@@ '.6QZX]@D4O&RK(T9(P'7&1
M[C((K-\/:%;>&M%@TJSEGDMH,^7YS LH))QD 9Y)H \YU6'6KY@TN@ZD)[/Q
M)%<F*VB"P&W68$2+@CS&8<ECD@Y^Z*T;FTO99?B01IU[_P 3&U1+0?9V/G,+
M;RR%P,'YN/UZ<UZ310!YYK5C?6_@SPUKEA;E=:T98 D$P,9E#A8I(3GINR,>
MZC%=1;E_#NGZ58_9+J]DGE$4TUO&"%D;+O-)R,*6R2?5JDG\.VEUK\>KS3WK
MO&BA+8W+?9PRDD/Y><%AGJ?8]1FM>@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M7)_#*ZGO/AQHDUS,\TOD%"[MEB%9E&3WX KK* "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "J&IZ)I6LB$:GIUK>>2VZ+SXE?8?;/2K]% &8GAS1(HDBC
MTBQ2-+@72JL"@"8$D2=/O<GGK6G110 445F:GXATO1S(+ZZ\ORH_-EVQL_E)
MG&Y]H.Q>#RV!P?0T 4M:T34-9$D$TVBS6)8,D%YI;3E2.^?. S[@"H;#0=9T
MQ&2QO="MPV-WEZ1("V.F3]HYK5N]=TVR$9DN"YDB\Y5@C:9C'_?P@)V\CGI4
M$WBK0;>*QEDU6U$=^,VKA\B48)R".V : ,VT\,:E87+7-I-X>@F8LV^/174Y
M;[Q&+CC/?UJ,^$;PP7$!_P"$9,-R_F3QG0FVRMZL//\ F/N:M-X]\,)9R73:
MJBQ12&*7,3AHF&,[UV[E R.2 .1S5R[\5:'8WILY]1B%UY'VGR4!=C'D#("@
MY^\, <F@#,;POJ#SQSM)X;,T4?E1R'1&W(G]T'S^![5&/"%V+6"U \,"WMW\
MR&(:$VV-_P"\H\_ /N*OP^-_#=Q]A,.K0NM\P2W90Q5F)P%)QA6)!&&P<TV;
M7+&RUG5Y9-8DG6RM$DGT^*'>8!EOG&T;B6Z8SVH K-X7U!Y;J5I/#9DNUV7#
MG0VS,OHY\_YA]:1O"U^T%I S^&S%9L'MD.AMMA;U0>?\I^E0I\1-/.D^'[UK
M6\#ZP\:(@MI"(RR;SSM^; Z8SGMP#C<OO$VCZ:^+R\\E0R*\AC?9$6QM$C@;
M4)R/O$=1ZT 9J^'=56[NKM;CPZ+B[79<2C1'W3+C&'/GY88[&H]+\+:AHD,L
M.ER^'+**8YD2WT1T#GWQ/S6QJ?B+2M'+_;KKREC"M*PC9EB!. 7900@/JV!6
MFK*ZAE8,I&00<@B@#FM \+S:!=O);+H-O#,<SI8Z2UN\G!Q\WG,."?0]_6NF
MJC?ZQ8Z9)#%=2L)9@QCBCC:21PHRQ"J"2!D9..,CUJ:PO[75+"&^L9TGM9U#
MQRH<AA0 ZZM+>^M9+:[@CGMY!M>*50RL/0@\&J@T#1U>T<:59!K,8MB(%S /
M1./E_"L^X\=>&;99VEU>$);S_9YF5681OQ]X@8 ^8?,>.>M7+3Q+H]]JLFF6
MU_')>1QF4QX(R@."RDC# '@X)Q0!(N@:,D%W NE60BO#FY00+MF/JXQ\WXU'
M%X8T&'1WTB/1[%=-D.Y[40+Y;'KDKC!/ Y]J2R\3:/J-U%;6MZ'DFC:6'*,J
MS(IPS1L0 X&1RI/6JVD:Q8?V?J=\VO+?6L-Y*'F<*JV_3]T" ,A<@ \DY[T
M6O\ A&- VRK_ &+IVV:-8I%^S)AT7[JGCD#TJ0Z!H[2PRG2K(R0QF*)C N40
M\%5..!["HD\3:.R7C/>B$V2"2Y2X1HGB0]&*N <'L<8-8VI>-/#U_HMX;3Q.
MEB4CAD-W''N,:R'*$!E(;=@C&"1ST- '16.CZ;IC;K&QM[8[=@\J,+A?[HQT
M'L.*LW%O#=V\EO<1)-!*I22.10RNIX((/45AR>+K*/Q9+H!BNC-#:"YD=;:1
MA@M@ 84YZ-STR,=<@6H/$VCW6BKK$%WYNGL^Q9TB<AFW;< 8R?FX^O% $D7A
M[187M7BTFQ1[12ENRVZ@PJ>H4X^4?2@>'M%%C<V(TFQ%I=,6G@%NNR5CW88P
M3[FKL]S#:VTES<2I#!&I=Y)#M55')))Z"J-MXATR[N)K>*=_M$47GM!)"Z2&
M/^\J,H+#MD \\4 6--TNPT>R6STVS@M+9"2L4$8103U.!WJQ+%'/$\4L:R1N
M"K(XR&!Z@CO7$^&M7U#Q7=2:A!JES:):ZC/$]HUG^ZEMT8H%RR@AS@-D-D'(
MQBMZ?4;2/Q7';-K8CDCLI)9-.VK@J&7]ZS8R,9QC/>@"QI_AW1=*D$EAI=I;
M.N=IBB"[<]=OI^%/FT+2;B_-]-IMK)=';F9H@6;;]W)[X[9Z=JH6OC?PW?36
M<5MJT,C7K%+<JK;789^7=C /!P"<GMFLOX@^*4TCPGK3Z?J,EOJ5G#D210>8
ML;D9578J54G(X.#R/44 =,^D:;)?M?OI]JUXT?E-<&)?,*?W2V,X]JKCPSH(
MM(K0:+IXMHI/-CA^S)L1_P"\!C /O3;GQ!I^EV<<E_<,K" 32;(GD*)CEV"@
M[5Z\G X/I4-YXR\.6+JD^KVP=K<72JA+EHB0 P"YSG<,8Y- &7I/A$KXG\0Z
MCJVGZ?+#J$\4D&&\Q@J1JFU@5 ZKG&2*Z#5=!TC78XDU;3+2^6)MT8N(5?:?
M;(XIEOXCTB\TB#5;6^CGL[@[89(@7,C<_*J@;BW!XQG@^E5SXQ\/+8I>/JD,
M<+W/V3]YE66;(&QE(RK9(R"!C/- %]]&TR6ZM[J33K5KBV79!*85+1+Z*<9
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
M Y&.N-#6K.WN- @NM)T#4H4NM;L[F42P2O-,$D4O*Z'+* !CYL$XZ=,^H44
M>5^*M)U75]4\;P:9:70DO=(M8K>1H'1)F1I"Z!R ,E6 Z_Q5:O-0E\1>*/"5
MW9Z7JMJ(H+R.=IK"6/[*[Q*H#$J!PW&1QQUKTJB@#R[PA%%+9Z+HVK>&M876
M-',:F2X,QM8S&-OG1N6V'(' 4=3C&,FJ4]G>-\.=;MDTO4?M,WB)KF.(64N]
MHS>+(' VYQL!.:]>HH XW21/:_$[7Y)+*[$&H6MFUO/Y#>4=BR!@6QA2"1P>
M>>E1^)7N]+\?:%KDEI=76DI:SVDIMH6F:VD<H0Y106P=NW(!Q7;44 >/:A;W
MMSX$\>P1:3J7G7NL-/;1_8I-TJ-Y.&48S_ WTQS770*\OQ=EO19W?V9]#C@6
MX>UD5-XF=RNXK@'!!Q_6NSHH \JTZU5'O_#.O>'=8O;DZA-/;R S&SN$>4RI
M(S!MB;2W.>1CC)XJ[I]Q/I>H^(?#^K^';S4?M^HR7=HXM?-MKA),%0[D%4V$
M '=T &.U>D44 >;ZAI>IW6N>/M.@MKF*;6+&$6=R(F$+$0,A!DZ [L#&<\YQ
MBG/#<>(K#P7!#87EG>Z7>P7%X)K=XQ;K%&RNNXC#;B0H"DY!ST%>C44 ><Z'
M:(WA;QG!J&D7\D-UJE[*8/LTD<D\,AX9,@%B1TQSQ6EX,BU>TU:_LY[RYU/2
M4@B-K?7MN8K@'+9A<D R;1SNQQNP>:[2B@#S[QK97#:S<W^D3:C9ZQ#IZA&2
MU:>UOUW2$02+M(R#GG(($F:HW+7.G>*=0?Q!H>KW-GK%K;E#IGFR1QR+'LDA
M=8STSD@GCD\UZ?10!P&DV'V+XCV(CTFXM+.+P\+5,0N\4+>:&$7F8VY"^_:I
M=5T2_B\=,;* MI>OVZQ:DPZ1-"1\Q_WXR8_P![5W5% ''3K+'\7(;LVMT;5-
M#DA:=;=VC#F9'"[@,9VJ3BN2LK.\B^'?A.V;2]16XMM?2>:+[%+OCC%R[ER-
MN0-K Y]Z]>HH \CUMK==3\7Z/+%JT>G:I/']HEATJ6YP?*3>4=,@9&!AAE2,
M\@@5Z'>*NN^#;F/2+G O+%X[68Y&"R$*3GD8)'7FJD?A 6U[<S66NZQ:6]S,
M\\MI'+&T9=SEB"R%UR23\K#KQBM^WMXK2VCMX$V11J%5<YP!0!YLEI=ZYX5\
M'Z.NGW=IJ6EWEH]R);=D6W$ P[!R-I! PN"<[AVSBCJ5E>3>!_B';1Z9J#7%
M]JDLEM&+*3=,I6(*RC;R,JW/M7KE% %28&ZTB01JVZ6 A5=2IR5[@\C\:\PM
M8[M_!/P_M'TG4UFT[4K7[4CV,F8Q'&ZLQ&W[H)'/0YXSS7K5% 'E.MZ;JUY?
M^.7T_3[QY&N=.NK=#&\2W0@"%U1R!D_(1P>N*Z?PM)IVJ:J^KVFAZK:7 MOL
M\MSJBRI)C<&$0$A)(!R21P#T)R<=?10!Y_XXMDNO'/@^2XTNYO;"TDNFNBMC
M)<1H&BPF[:I!^;'TQ5&VT.YD\>7,WA:RN='T>;398[UGMVMHIK@@B-DC8 [E
MZE@!P,9KTZB@#RJ'3[W5/AWH'A@Z?=VNL6%S:I*7@8)!Y+@M*),;2"JD@@\E
ML>M5]=.H7B7R'1-2AEM?$4,_V>TL6$3PK,A\_<H_>LP&3@G'H,9KUVB@#A]&
MAN9?'/C*5;6ZMC>0VHM[B6V=5++$P.&(P=K$=#]*Y2*2]'@/PWH4VB:JFJ:3
MJEG]KC6RD9=L<N6D5P-K CG@D\FO8Z* *-GJ:WE_?6BVMW$;1D4RS0E(Y=R[
MOD;^+'0^AJ]110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445P^M7#ZE\0/
M^$=N+J*&W;2UGMXI=^)G,CJY&UURRA4QU(R2* .XHK$\+126'AZQL;O6AJMQ
M'OB^UN-K3;6(Z$G) &"<G.,]ZVZ "L.Y\5Z7:/JJRW$8.F;!.OF*&#,%(X)X
M'SJ-QP,GV-;E9\VA:3<3W<T^F6<DMY$(;EWA4F9!T5CCD>QH IWOB>UMKBPL
MK:,W^H7\9E@M[9U8&, 9D+G "#(^;OG@$U)#K5RNKVVFWNERP27$;NDZ2"2$
M[<97=P=W/0J.AP3BN1L8(M&^-TT,L:6]M=Z)'#I@ "H%C?YHD[9'WL#M78>(
M]1;3=#OKBV19;^&TFGMHB,EG1">GIT'XX[T :U%>8O--;^'O!&OZ7>7$U]?7
M5I%=,9F87:3+^]#C.,CEAQ\NTXP.*FS/I'B?7/"K3W+'6@ESIDCS.S1HWR3*
MI)X\O!< >M 'I%%>=7<4FO>)_$/ATZFMD;*V@6R#F3>B-'DS(1(N6#D@DY^Z
M!WYKC2VU?QMI^EWNMW]W;S>&_,EEM[F2!9W$J*)0JM\I/7CK[B@#TVL_7-3.
MBZ%?:I]G>X%I \[1(P4L%!)Y/L*\]MDNO$MAJMW_ ,)"FF:AIFJ2HTI61Y+9
M8I2$0KY@!5HP,C'S;B>31?S+XCT#XBR:A)+]ITYKFVMXEE9?(B2 %& !_C.X
MD_Q#CH,4 >CZ=>G4='M+](MIN+=)A&6Z;E!QG'OUQ7)+\28$TN_U6XT34(].
MT^\>SNYT:-_*9&"LVT-N*@D<@$^U='X8Y\):-_UXP?\ HM:\]\,>'I_$_A[Q
M5I4FH_9M.N/$-ZMPL4.977S 2H<G !_W30!ZI#-'<01SPN'BD4.CJ>&!&013
MZ\XGMCK/B+7O#"ZA'IZZ?:P1V"'S T49BSYT>V1>0V1GG&T#OS!#I3:QXWM]
M,OM;U"[MG\.13/+;W,D"S2";;YH"M\N0 <#@^] 'IU%>;Q7=WI?BZW&L6\L]
MI=:K*MCJUI<%EW,75;>>// 7E0>1E0>#DUEMJ%Y?_"B^\5K=7$/B.VN9I,K(
MV8I$G*B#9G&W: NW'.<]3F@#URL6^U^6Q\06^E_V3>31W%N\D=U'MV&10Q\K
MDY!(7J>.17#75D^I:QX]2[N]006UC;3PPI>RJ(93#(Q*X;LPSCI[5W'A60ZA
MX5T34KH"6\FTZ%I)F'S'<BLW/N>: )_#^L'7=&BOWLI[*1G>.2WGQOC=&*L#
MC@\J:U*CC@BA@$,4:QQ*-JJ@V@#VQTKQRYCGC\ ZUJZZEJ7V_3O$$D=K,;R0
MF-1=JF""<,-I(^8&@#V>BO-=1ENO#'BW7DTF6ZD_XIJ34!#-.\P:X1V"L Q.
M"1P0.#Q4FG0HL&D^)XO%216;V4IN!&CN;L>46W-ND8;TVEL[<\$=.* /1J*\
MNT*::+Q3X42.:X%IJ6D7#2/+=,TMV (BLL@!PKG<2,$D9(SVK+L%GA\&Z!K0
MU'4'OT\1"V$DEY(P,37CQLA!.&!7J2"??@4 >RT5YO?WEYI?BCS]4MY+K2KK
M5(UM=4L[@[K5]RH()8\_<W C(R/FR1FNE\:7,,&D6T4MU<PFYOH((TMB%:X8
MN#Y18D;58 @G(XS]" ='17C6M7-];^&?B%;+=S6QL+NW:V2VNW(@WI$656X.
MW+'*XQDGBNICT];;XFW&DI=7K6=_HC3W"/=R,3*)@H=23\APQ'RX[>E '>5E
M^(M97P]H-YJ\EN\\-I&994C8!MH&3C/!-<5X9EN;EX/!M[-<O?:->/)>3F5]
MTT"_-"Y;.?GWID$\['%=%\1_^2;>(_\ L'S?^@F@"S;Z_>SV]G='0[E;:Z,6
M)!-&Q17( 8@'.!D9Q6]7):/9W=II&A:A/KL[65O;H\L$J1A2#%M7!50202,
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
M6=V. H'))HAE2>&.:)MT<BAE/J",BO(]5$KZ1\3M,N<);VUC%-#:QW#.D+M
MS':3CJ5!(QC/:M<2*^NZ'X;-S'!9S:/]HBCG:1EGFRH89#J257! SQN)QP"
M#TBL70/$']N7&KPFS>V;3;TVC!W#%R$5MW'3[_3FN.M7N;+7/#'A34-;?4K.
M07C/<G<GVEXR-D+'<2VP,V>3DJ,]#6I\/;:.SU'QC;PES&FMMMWN6('DQ<9/
M.!T'TH W=-\0?VAXFUG139O"VF) _FLX(E$H<C '3&SOZ]JVJ\X.@VFO_$3Q
MC;WEQ>0QK:6!!MKEX2&VS88E2,D=@<CV-9EG>ZI;^#?"7C74+JZF-DWEZD#(
MP6>U9F19V7."RC8^<<@F@#UJJ=SJ44(NXXAY]U;0B9X$8!MK;MO7@9V-^54/
M#*&:TN-59I,ZE,;B-6<D)%TC !^[E0&('=C7,:996R?$?QO, PD%M:,/WC<E
MHI<\9P?Z=J .N\.:ROB'PYI^L) 8%O(%F$1;<5![9[UJ5X]X:@.FZ)\,]0MK
MFZ$UVRVLX-PYC>(P2';LSM !4$8'49ZUH:*+KQ+I-KKI\0QV-_;:DWVG".SJ
M1*5^S,OF ;2, #;Z$#)R0#O]?U8:#H5[JSV[SQ6<332HC -L4$G&>"<#I6-+
MXXBL=,L-4U/2[NTTV]\K;=;D=8O,QL\P!LJ#D#(! )YJQX__ .2=>)?^P9<?
M^BVK@/%UI>V?PGT;5;G4OMNGV<5G--I<\:HMT/D"IO4!N"00.<XYH ]BHKA;
M.?\ X27QOX@TS5!/'#:VEJUI!YC1D+(C,\@P1\P;"[NVWC&3G%\/ZE=ZWIWA
MJTU.YGO=0,=YB!Y/+BN8HY/+6>5ASP,8P#DMGMD 'JE-D9DB9D0NP!(0$ L?
M3FO'M+GN]4\._#[[3J=\6N-0N+:=H[N13+&HG #$'DX0#=][T(-=)I-O;W'C
M75/#%U-<FSTFPM_L4,ERY9Q)O+RELY9@0B@_P]L9H Z?PMKR^)O#=IK"VS6R
MW(8B)FW%<,5Y(^E;%<9\* %^&6C ,6PLHR3DG]Z]=G0 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 5E:WX:T7Q''%'K&F6]ZL+;H_-3)0]\'J*U:* *!T
M33//T^<6$ DTY66S*H!Y 9=I"XZ CBK]%% !116=J&NZ;I;,MW<[&2/S7"HS
MF-/[[;0=J\'YC@<'TH S==T.^ULF&>/1Y[17#PK<VKNZ$=PP<8/N,5'8:+K6
MFAOLLFCHS !G:WF=V Z LTA)'MFK]]XKT'3?L_VO5K6/[1$TT/SY\Q -Q88Z
MC'Y]JOP:A:W6F1ZC;S"6TDB$R2("=R$9! ZGB@#FK+PQJ&G3B:SCT*%E9F0+
M:R[8V;[Q1?,PI.3G &<U=?3]?EO(;QY=$:XA5DBD-I)N16QN /F=]H_*N<U'
MQTVI>'M%UG2+J2SMYM9AMIQ+" '@:8H<EUXRJYXZ9Q78:?XCT?5(KN6SU"&1
M+,XN23M\KC.6SC QSGH10!@:QX/N?$%S!<:M:>';R:#B-YK&0D#KC_6<CV/%
M63H&K'5DU3_B2?;DC\I9Q;2AE3^Z/WGW?;I6S8Z[INI7DMG;7.;J)!(\+HT;
M[#T8*P!*G^\.*S/%WB2;1%TVQL(XY=4U6Z%K:K+G8G=I& Y*J.<#KQ0!GS>#
MKBXUU-;FL_#CZFA!%R;&3=D=#_K.2.QZC%%_X.N=4OI;V]M?#TUS-%Y,LC6<
MN9$QC#8DYQVST[5JW5CK]K!!+9ZPUW*)XO/BN8(PK1;QYFS8%*G;NQDM^?-6
M[SQ'I&GS/%=7J1F-U25RK%(F;&T.X&U"<C 8CJ/6@"C;:;KUE8I96DFB6]M&
MFQ(H;21%4>@Q)Q5?3/#^K:*)AIO]B6RS.9)!';2@.YZL1YG4^O6M*]\5Z%IU
MU/:W6IP)<6\8EEB&6=5/0X )['CK@9ID/B_P]<W5E;0ZM;22WH!M]K9$F1N
M#=,D<X)S[4 8^L>#[GQ!<P7&K6GAV\F@XC>:QD) ZX_UG(]CQ5D:!JRZL-57
M^Q!?"/R1.+:7<(_[G^L^[WQTSS5NX\;^&;43M-K-L%@F\B9@2PC?CAB!P/F&
M3T&>M6K7Q)HUYJDNF6^H0R7D2&1HP?X0<$@]" >#@G'>@#'A\-ZG;W?VF(:*
MLGG-<?\ 'O,5$K9W2!?,P&.3\P&>32?\(QJ'V^2]\O0A/)()G(M90KR#HY7S
M-I88'S$9XZTR3QCI^C:')J#ZL^L1S:F;:)XH>(RT@41Y08PF>IY..Y(%:,?B
M_3YO%2:#&LYF-J+DNT+@ ,P"CD?[V3T&,=>@!1;PSJ3SWT[+HAEOU"73?9YL
MS*. &_>\@#C'IQTK?T6Q?3-*@LF6W00C:B6R,L:J.@ 8D@ >]1)XCTF348K!
M;U/M$Q98058+*5^\$8C:Q'.0"2,&C_A(])&HQ6!O4$\SM%%E6"2.OWD5\;68
M8.5!R,&@#4(R"/6L8^$]":PFL#IL)M)I?/EA).QY,YW$9Y.><^HS6G=WEM86
MDMW=SQP6\*EY))&PJ@=R:I0>(=*N$O&6[5#9*&N5F1HFB4C(+*P! (!P<<XH
M D31-.35%U,6R_;EB\@3EB7\O^[DGIWQZ\]:IZ=X/\.:1=7-SI^BV5O-<J5F
M:.(#<IZKCL#W X-7[+5+34)9HK>1S+#M\R.2)HV3=G&0P!YP:YKQ%XBDT'QQ
MHD5UJ2V^DW-K=//&Z+C='Y>T@XW9^<\#KQQ0!JVO@WPW9-;-;:+9Q/:EC ZQ
MX:,MUP>HZ#Z8XIX\)Z$+&.Q&FQ"TCF\](03L63.=X&>#GG/KS4MGXCT?4-'7
M5K34(9K%FVB5#G+9QMQUW9XVXSGM6=JOB72KCPY?7$'B%-+\F00R731C?;R9
M!VF-QG<1V(SS0!I+X>TI+LW*V:^8TOGMEF*M(.CE<X+#^]C-3ZII.GZU9&SU
M*TBNK<L&\N1<C(.01Z$>M4[[Q3H>F7DEG>:G!'=11><\.2SA,XSM'/X=:G77
MM+?3+748[V.2UNRHMWCRWFEN@4#DG@\ 9X/I0!4?P;X;D2Y1M%L]MT$6<",
M2!,;0V.H&!Q[#TJ6ZT:WAEDU2QLH9=8BMFBMY)I6&1CA"W)"DXS^?6I]-UW2
M]7>:.POH9Y8"5FB4X>(@X(93RISV(I=0UK3]+)%W.4*QF5]L;/L0=6;:#M7K
MR<#@T 5-!L+V-[G4]6AMHM3O @DCMV+K&B A4W$ MR7;..K8[5H:CIMGJUD]
MG?P+/;2</$^=K#T([CV-0IK>G27LMFEQNN8H!</"$;=Y9X# 8Y!.1QZ5R^M>
M+HX=:\)WUGK$0T*_DN!.VU=DBI"[*=Q&1\P'3K0!T$?A30HC 4TV'%NRO"#D
MA&4Y4@$X&,#%23>'=(N=/N;">PBEM+J3S9X7R5D?(.2._(!_"LV]\4Z-J/A&
M]U*P\206=L@:(WZ@,;=QV*,/O>Q'>M6]UFPTN!&O+D\QF3Y8V=B@QERJ@D*,
MC)Q@9H JZGX0\/:TEJFIZ1:W8M1B$S+N*#TSUQ[=*?JWA70==2V35-)M+I;;
M_4"2,?NQZ#VX''2II=?TN*TM[G[8DL5S&983 IE,B  EE" DJ 1DXP,BLVZ\
M;Z1!?Z);0S-<IJP=X9H$9T\M4+;LJ#DY &.O)/:@#1U#P[H^JQVD=]IUO,EH
M<VZLF!'QC QT&.,=*B/A30#87-B=(L_LUS-Y\T?E#$DF[=N/OG\JM:SJUMH6
MC7>J7GF?9[6)I7$:%F( SP!56S\26-QHUEJ$KM%]K5=D7EN79RNXJJXW-@9Z
M#H": +$.AZ9;ZDNHPV<<=VL(@65<@B,=$'^R/3I5E+.VCO)KQ(46YF14DE ^
M9U7.T$^VYOSJ/3M3LM6M?M-C<)/%N*$KU5@<%2.H(/4'D5F3^*;./Q<GAO$P
MNGM6N#((F*K\RJHSC!SN)ST&.>M $LWA+P_<:ZFN2Z/:/J:$$7)C&[(Z'W([
M'J*V:X7P?XTMY=.CM]=U>-]2FU&YM8MZA2^V9T13M 4$A<#.,^];UMJEI_;>
MM%M>CFCLXHFGM2%"V7#$L7'/S8)()XVT 2KX6T16&W3HA&K^8(,GR0^<[A'G
M8#GG..O-6-1T;3M6>W>^M5G:VD$L)8G]VXZ,O/#>_6G66K6>H3S06\CF:%4>
M2.2)XV56SM.& .#M;GVKG?'6JZGI4OAY=-O?L_\ :&K0V$P,2N CAB6&1][Y
M1[>U &^VAZ:^JIJC6P-_&GEK<%FWA/[N<]/;H:CB\.:/%:WMJNG0&WOF+W43
M#<LS'JS ]2>YZU@:-XEOXO&VM>&]5G@N(;&T2\COE41[4;JLHSM!'7(QP.E=
M!::]INHW)L[6[_TDQ>:B.C(S)TWJ& W+GN,B@!NF^&=$T?39M.L-+M8+.;(E
MA6,%9,C!W9^]QQSVJO9>"_#>G:?=6%GH]K!:W?%Q&BX$H]&]1R>.G)KG=&\0
M7%QX*:YU;Q$+&Y_M66V2[:*/+A+@JJ!,8.5&W@9YS76ZEK^F:1N^W70BV1^;
M)A&;RTZ;WV@[5X/S' X/I0!<M+2"QM(K6VC$<$2[8T!.% Z >U9-SX.\-WDU
MW-<:+92R7;!YV:('S&!!!/OD#GOBK<.O:7<:L-+AO$DO3"+@1*"<Q'HX.,;>
M<9SC/%6+._MM021[60R+%(T3G:1AU.&'(['B@"F/#>CB6[E6QC5[N,17!4D>
M:@& IP>0!P!V'%1S^$M!N;.SM)M+@:"R.;5<$&'V0]5'L.*V:XW4_&$^G^/]
M,TLPK_9$Y:SFN3_#>,HDC3_OD?B9!Z4 =)IFBZ9HL<R:986]HLTAED$*!=['
MJ3BJ-SX.\.7D]W-<Z+92R7A#7#-$#YA!!!/OD#GVK<KG[_QSX8TR2>.\UJTC
M>WD$<HW;BC'G!QG';/ID9ZT 6AX:T97O&6PB4WJ".YVDCS4 P%;!Y ' '8<=
M*S=0T:_F\GP]9V%C%X9,*),[2L9%4-S$L>,;2H"YR, GT K8O-;TZQ@CFFN0
M4EC,J>2C2ED !+@("=HR/FZ<CUJE<^,_#=G##+-K5H$G@-Q$1)NWQCJPQVH
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
MQRH<JRGH14] !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
MW,[6R!LF94 )9EP,<'!.<'&*S/!"S1>*O%GF6VHK'<7$$\,]W R>:ODHN<D
M9R#\O!'0@=*[JD)"J68@ <DF@#A_%6G7FG>.=%\86UI/>6UO!)97T-NA>5(V
MY615'+8;J!SCH#726VMPZF533H[B3=]Z5X'B6,>I+J,G_9'/K@<UJ A@"I!!
MY!'>C(! )&3T% 'D<>FZA>?"8>#)K.ZC\00SK#N,+[=PG#_:!)C&W;\V[/7(
MZ\5TOB/2M3MO&-G?Z1&Y35[<Z9J#IQY0&72?ZJ/,&?4J*[BB@#SO6S_PCWCC
M[3>:;JDVB7>G0VL,FFB9OL\D;.=C)$<X8.,'!Y&*9'IT%CXL\$1V6BW5G86L
M%\!'Y+R+;>9MV!VP0I//!/'(KT>D5@RAE((/0B@#S*Z$5AXF\1:7K^C:S>V>
MK3+-:260F>&=#$D9B8(0JD;/XL#!Y(%6]+>;PSXXU6/4--NULM0L[1+![>"2
MX2,11E6@+*"00Q)&< Y)KT.B@#D?A?%-;_#?1+>XMI[>>&#8\4\31L#D]F X
MYZUCZ7I-KJOQ+\9'4],N)+.[CLE@>>WD6*8)&P<9("L 2.#UKT:B@#S_ ,3J
M= \6:3J3:=?RZ$MB]BPTL2;K1]ZLI*1$'80N./0>U4[FPMK:^\&MIVAWUK8I
MJDUTT;02R-&K1.!))P=A+D'!.1D9P<X]+9U3&Y@N3@9.,FEH \W\76UY!K&H
MZAH$E[!JJ0QQO8R6K36FJ)CA.F PR5R#P.O!S5O3Y)]%\5^*5UJSN9(-3,5Q
M;210/,LJB((T/R@_,". >H.1WKO:* /*O#^BZAHFH?#RSO[:YDEL+&\6XD6%
MI$@:0)L1G (! RO7M72_#Y)8K?7UEMKB#?K=W-&)H'CW1N^59=P&0?:NPI"P
M! ) )Z#UH XSQ5IVIP^*M*U;1X2\MY%)I5V0,B.-@724CT1@WUW8[U!X(T6_
MTF[NM+NXG&FZ)-)%IDCDGS8Y<.#[E%.S/NPKNZ* /(9+2\;P3K)73K\M'XJ-
M[Y?V20.T'VI7WJN,L-H)X!KIH93)\5WU$V=ZMJ=!6,3/:2 ;O.9RN=O#;2#M
MZ]L9XKN** .0^&$,UM\.]*MKFWGMYX5=7BGB:-E^=B.& /0BNOI ZL6"L"5X
M(!Z4M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
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
M)9[WE2$>7$ZE&!+*,+D9!#8R!D=ZI:]X;O7\3V/BC0Y+==3MX&M)X+DE8[J
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
MY"^P)P3Z\>@QRO@WQ)-JNJ&QO[R]@U2"US>:7?P)&ZOE1YD;*H#1_>&03U%
M';T5R]WJ5WJ7C&Z\/6M\]@MMIZ71EB1&=WD=E'WP1M79D\<EASQS234=>LO%
M'A72[_489VO+2Z^VB")1&\D03#+D;A]XY&<>U ':T5Y?<>)O$*^'KF>'5 +B
M#Q1_9BR26Z'=#YZQ@$  =#U&#[U?OAXHM?%6EZ GBJ1EOK2\F:Y:RAWH49-F
M!C!(WX]#CIF@#T&BO/GU+Q1K$>L1:+=.+W3+H6D3,(1%*Z(A8RJ06PQ8_=Q@
M8QSFG27OB+4?%.M:9'K9L8H-+M[N/R((W,<C^9D!F4Y7*CJ.1TQ0!WQ95(!(
M!8X&3U/6EKRVQU+4O$&M?#O4)M2N('OM-N)YHX0FSS%2/+ %3UW,/8=,<YZC
MQYJ6IZ7INFS:7=K;RS:G;6SEH@X9)) I!S]>W/N* .JK-UO7;'P_8K>7[2K"
MTJ1 QQ,_S.P5<X'') R<"N<AO-53Q;!X3GUN>5Q8RZC+>B"))'4RA$C VE0%
MR<G&3A>G-<YKNLW^I>!-<L=282W.E:[;69N%4+YZBXA96(' ;##('&1[T >L
M45PVH:KK^L:EXAL-"FDM[C3&2&#;Y6QI#$L@,@<$[26V_+C@$]>FWJ^N7.A^
M!KK6[N"-[NUL3/)#$V4,@7) /]W=W]* -ZBN%O-6UC19O"]V^HM?6^KSQV=S
M$T2 (\B%EDCV@$ %3D$GCWYI_@BXU_6!+J.H:X98+>]O+4VHM8U$@20JC%@,
M@C';@_K0!V])N7=MR-V,XSSBN%\8^([[1-5E2ZN;S3=*DM5%MJ4$"2PPW!+
MB?*L57_5X/ Z\^C(6NO^%H:Y-'J\@ABTBWFC25D\@9:7J=N0G .00?<\4 =]
M2*RL,J01DC@]QP:\^T77=7E\2Z+I\VI3W-OJ6E3323F"-$,R>7^\@^4-L^<X
MWC!&T\\UBZ+J.KZ5\,--U.#6+J2>;6/*D$R1."KWSH_.S.2"3G/7ICI0!ZY1
M7#ZCK&OQ>)_$FG:;)]I>#28;JRMW5!B5VD4@' S]T8#$\U=\'>((M<GU )?W
MCR0"-9;#4+=8KBT?YLA@%&0>,'GH>: -^QTG3M,:9K"QMK5IWWRF&()YC>K8
MZGW-7*XG6-7U#2?%]Q9W6JS0Z=?:9)-8LL,9,,\1RZCY<L=I4@'/\0]*B\):
M[JNOZ?I$%Q>RQ:G;/,NKKY<?#QG84("X7<Q##&/E4\]Z .OL=2AOXIY42:)8
M9W@;SXC'DJ<$C/53V/0U#'KMC+XAET)6E^W16XN65HF5?++;00Q&#SGIGH:\
MVU74]7U/P9<M<ZK.);?Q2MD'A1$WQ+=*B@C;VZ^YZY'%;5U8WMQ\5I+6VU:>
MUE_X1V,-=K%&TI_TA^0"NP'/7Y?ICK0!Z#17.^!-8N]>\$:5J=^RM=S1'S65
M=H9E8J3CMG&?QKHJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M?V,666=6'E@ENZGG<2<_TXK8>>&.1(WE17?[BLP!;Z#O2R311 F21$ &X[F
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
M1*&1B,;\#&3^OO6'8^$KIYK8ZK!H 6VDCE22PT\QR,R$,I#,QV#(&0,\<9%
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
M>"V39;PQQ(3G;&H49_"I* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH *R/$M[=6FC2)IY4:C=$6UGNZ"5^ Q]E&7/LIK7KFKJSDUKQ6$NK
M>^@LK"'-O-'(T0EF?(<@J0?E4 #/7>WI0 >"?$+Z[X.MKZ\5EOH UO?1A266
M>,[7&T<Y)&<#U%5[?XD^&KIK QW%R(+^7R8+E[2183)D@(7*X#''0\^N*H:!
MIE[X:^(6KV]K97LF@ZFB7/VAV+B*Z'#Y+'<0PP2W/(Q7.:!8S^)?A%I>@06<
MZR27@9KADQ'%&ET7:0-T)PI4 <Y/3'- ':7WQ%\/:>UZ)9+UOL$OE79CL96$
M' .Y\+\JX(Y/![9Q4-WJ,S_$?PZMK?ROIU[IUU,8D?,3[?**L .O#FL6RGD;
M5/B)81:?<74MS=".)43*.S6R+M9NBCIDM@8/?I5O3_#]]H_B+P9;^1-/;Z5I
M$MG<72+\@=EB ]\'8W;CB@#;TC7=(CT_5KY-3O9K>+49(I3>*VZ.4E1Y,:E0
MV,D!5P3D\9J5O&>C1)J/VF66VETXQBYAFB(=?,XCP!G=N)P,9YXKBY-!UY]#
MUB:STZ07L'B<ZQ:VTQ""ZB#*0 <X!(!Z\@@5N:OJ?B#5/#=S>:;X<N;67? #
M#<I$;EU$@,C(NXKE5SMW'D\XX&0!WBWQ&MUX*\4C3KF[L=3TJU9Y%QLDB8IN
M0YY&".X/K5_1O&.E:A>6VC>==1W\ML)(FN+=XUN  -S1LPP^.N1GUY%<E-X?
MUB\'CR"WT:]B36--A6S>ZG5B[K&ZE68N2&)([X ZD=*WEL+G7-8\+W9L;FTB
MT99)9VN$V,7,7EB-1GGJ22..!@G/  O@S6GA\/W\NJ7MQ<NFLW=I"9,O(^V5
ME1% Z\#MP "> #71:3KUCK,EY#;-(ES92"*YMYD*21,1D9![$<@C(/K7G/\
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
MA*Y*E65@<,K \@@@@@UYK;^%=3\)1^'KJ31!KEM#:SV][9VX5W@:6;S@T8;
M8 DIVXP:]$\/6R6^E@II,.DK*[2"TC55*9[OM^7<>IQZXR<9H L7^J6VG/!'
M+O>>X8K#!$NYY"!DX'H!U)P!Z\U0MO%NCW>FQ7L$[NLMPUHD(C/FF=<[H]G7
M<-ISV !.<<UD^*X=5L/%.B>(]/TZ;4K>UBGM;NUMROFA)-A#H&(!(*#(STJM
MK%IK%U?^'/$L.DR(NGWDSS:<I7SO)ECV%S@[2X.6P#T..3U -F?QMHEKI>I7
M]Q+/$NF,$O(6@<RPDC(W* 3@CD-]T^M36?BW2;W5)M/62:*>.W-T#/ \:R1
MX+HS !E!(Y'KZ5QGB;P]J.JVGC34[2QN"^JV,%E:6Q7:\I3)+L#]T?-@9P?E
M/J*UK^VOI?&UAJ,>ESS6T>B7%N^],*979&5&^NPCTH WH_$EC<PL=M[%&]JU
MTDGV=OGBX^9< DGY@<8SSTJOI.N:9;^&-&F@O;R^CO$5+-Y\O<7)P3D\#)P"
M23@ #)Q7.^']'O\ 1KZ9-,35$T!]/DW:=?#>UI/E=L<+'DJ1NR 2HP.>>,_3
M-)UW1=-\!ZD=*NI_['M9;._LH]OFIYBJ-ZC.&P5YP>A^M &UX3\0$WOBV>_O
M+MK:VU-(84N5.^/,:?NU4#J78@ #G(QG-:USX[T2QMM3EO7N;=],"M=0O;N9
M$5ONM@ Y4_WAP.Y%<;>Z'K^H+XFNK?1)1(VKVNI6MO=M&JW:1I&&C.&."=IZ
M\9Q5G7+"?7? ^N_V;X,DTR\N[06Z))#$EQ,VX''RDX08ZL>2>@QR =E!XKTV
MY5_*2[+B?R(XVMG5IFV[LH"!N7;SNZ8[T6_B[1[G3'OHYWPER;-H6B82BXSC
MRMF,[OZ<].:PO&%G?S7'A[7;31FU2&Q,J76G,%$C1R*HW*&X+*5''?)K/U/2
MK_RM&U_2/#'V-;+4_M<VEQK&D\T;1F-I&"G:9!N) SG'?/  -7POJMS?^/\
MQ9;23WOD6\=F8[:Y&/(9A(6"CI@X'(SGCDUU.IZG9Z-IL^HW\PAM8%W2.03@
M=.@Y)S@8%<OX<CU"3Q[XAU.;2;RULKVVM!#)/L&3&'W @,2#\P[?7%:WC$ZJ
M/"E\=%MEN;_"[(BJL2-PW%0WRE@NXC/&0* +6FZ[::G?7EA&LT-Y:!&F@F3:
MRJX)5O0@X/0]N:;XFUR'PUX:U#69T+I9PM)L!QO/9<]LD@?C7,^&;&_M_'NJ
MWSZ3J$%E>V%L$FNY5=MR&3(;YR0?F' Z#TZ5T?BK08_$_A;4M%DD\L7<)C#X
MSM;JI_ @&@"AHFF:EJ&AVM_J>KWB:G<PK,?L[!(H"PSL6/!5@,XRX8G%6K74
MY-)L=/T[4Y9+[6#;[I%MX]SR[,!I,#A021UQR<#FJ/A[6-5M=(M=-U;0K]=2
MMHEA=H%5X9BHQO63. #C.&P1G%5KBTU73?B!;^(9K1[FRNM,^Q7"VH+FVD60
MNIV]64AB,@=1G % &FWC70QI]A?+/+);WUR+2)D@<XF)V^6XQE&SD?-CFM"X
MUNRM+FZAN'>/[+ L\KE#M"L2%Y[DE3P.>/I7)6O@J:]\(>);*Z!MI]9U">_M
MU)&;9R08B<<;@45CCN2*6_T+7=:^&UR)X(4\0WODWDENY&SS(V1EB/;!$8![
M9)H VYO&NCVK7Z7ANK::QMOM<T,ML^_R.?WB@ Y7((..G?%/L_&6DW\3R0?:
M]N8UBWVKKYYD4LHCR/GX!R1P "3QS7+SP2ZQX8UM[;P0^DWTNESV@,D40FDD
M=<!$*GE,\DM@=..N)M<TO5)?"_A6]M=)-[/I#QO<Z9-M#2IY+1.!G@LN[(]<
M4 =)!XNT>:RO;EIWA-C,+>YAEC82QR'&U=G4ELC;C.<\9K&TG5[F[^*FI69E
MODM8])BE^RW VK'(96!*@<'*A>1GN,]165J^DWVH:/;:OHOA8:=+::I;7[6+
M)'%<7BQ;@P;:2N<-\H)S\ON!6KI?]H7OQ,FUAM&OK6PFT:*W$MP$4AUFD8@K
MN)Z-Z?H0: .JU4,=)N]DLD3B%F5XVPRD#((KRNT\2Z[8>$/!>MQZS<7U_JMU
M%!<6$ZHPG5R=Q0!0RE< Y!QZUZIJI8:3=A(I)7,+*J1C+,2, "N:^&^A)I/@
MW28[S24M-5MX/*F9X5$F<G^(=1^- &KJ'BW2M,9C=22K;).MO+="(F&*0D *
MS=N2 3T!."14+>-='&LRZ2OVR2[AGCMYE2SE(C:094L=O"]/F/'/6N3L])N[
M#4-5T34?!L>JI=7TUS::B\<3P%)7,G[[<=P*DGH"3C@=*Z#0+6\@\<^++J:R
MFCMKQK8V\KK\LFR+8V.XY]<9[4 :]AXCL=1F@2 3^7<0M<03M&1'+&NW+!O^
M!#&<$@YZ5##XNTF:>Q3S)4BU!MEG<21%8KAL9PK>I )&<;ATS7%Z7X8U$%K+
M21J.F:7J&GW$=[I]Y\T=C,Z87R&//WB>%)7 [' JS'I&J:QX3\,^'[K39[2\
MTNZM6NIF \M5M_XT?.&W[0 !R-W.,4 ;T_Q#\/VZ7<CR7GE65S]FNI!9R[8&
M^7ESM^5?F')Z\XSBNJKRW4-'U:X\(^/[*/2[HW&J7TDEFFT?O59(U!SGCE#U
MQ7IMLQ>UB8HR$H,JXP1QT- &9)XFT^/4[_3B+DW5C;BYFC$#']V<X9>/FZ'I
MGH:+7Q-IUY8:9?6YGDM]3/\ HS+"Q+?*6R1C(&U2>?2LCQ3H>I7'B/2-4T?Y
M)7233KYP<%;:0;MX]T9<CW:H?!OAR\T&^U"UN$ TNPFD32 #D^5*1(PQ_LG"
M#Z&@")O&-CH_A5=1T^34M4CGU0VH>Y1BT;O-M8$$ A5)(48SP![TRX\0R:=\
M29UFEU*:R?1$N4L8X6D8.9F!(C49SA1DGIZ\UD?V'K!^']Q;C2KDW<7B#^T!
M;?*'DA^U^;E><$[>V:Z*&.]/Q,DU>73;N*S;1$M]Y4-B42LY3@GG:1TXSQF@
M#I]+U.SUK2[;4K"836ES&)(GP1D'V/(/M5NN5^'%C>:7X"TRPO[62VNK=762
M*3&0=[$=.#P1754 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 445Q]QX@\0S>,;_0M-L=-*VL%O<>;<3.-R.[!APO#84X[>IH ZZ12\;*'
M9"1C<N,CW&:S]!T.T\.:3'IEBTOV6(L8UE?<5W$L>>O4D\^M<ROC34KM;2_T
MS3)+RPFO# T,=I-Y@B#E#,),;#C&=N.G?-6=/\72ZGXBN=,@DLH[BUO)()["
M8,EP(E!VS*2<,K84\+P&ZY'(!MZ7H%KI-_J%Y;R3M+J$@EN/,<$,X 4$#''
M XXXK4KS6X\>^)8M!U+7ET?3FL-*OIK>\B6X<RND<FQFCX X'//7G@8YU-0\
M:7TR:E+H%D;S^SW6/R3:S.;IMBNRJZC;&0' &<\YR ,$@';45RC^(]4U*75(
M-#LX1<Z;!$\D-X"&DFDC\P0\$;#M*Y8YY;IQ56/5-=G^)5C8R-!;6K:*;J2T
M92[(YEC#@L&P6&, ].O7- ':T5R/CG4-5L9O#L>FW$,*7FK16\V]"Q889P,@
MCC*<CO\ GF4Z_JFH76LV^C1VCR:1MBD\X-BXF*!RBX/R  @;CNY)XXY .H9@
MJEF("@9)/:LX^(=$!(.L:>".O^DI_C3?#>NV_B;PY8:S:HR17<0D"-U0]"I^
MA!'X5P'A34+C3;7QS+;:#<:@T>O7LB^48@I(53M.YPWY ]>,F@#U"*6.:))8
MG62-P&5T.0P/0@]Z?7&ZIJVJ:+K>D^&M!T[3_+NK*=[=KB5U6,Q!< @#A?F
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
MJ E-E=P7(AD,4AAD#A' !*G'0X(X]Z+?4+*ZN;BVM[N":>V($\<<@9HB<X#
M=,X/7TKD?AP)U;Q8+E8A,-?GW^5D*3Y<7(!Z9ZX]^]9J2:[!X_\ &K>'[2PF
MG"63L+N1E#8B;"C:.I]20![]@#TFHYIXK:%IIY4BB099W8*H'N37%V'C[^W;
M/33ID)@N+NP^VR>9;2W B^8ILVQX)^97&[(X7H<UE^(=6UO5O#WA2ZGLQI=Q
M/K=M'<6MQ&Q.]9#M/490E0V",]/2@#T*PU*QU2W-Q87<%U"&*%X9 X##J#CH
M1Z5:KDK:_N9=9UK3-#MM-AO+)8IKZ5X2%N+F1,@84@CY57+DL>0,'%94'Q U
M/6!X<&CZ9:JVLQ761=S,/(FA&&5MHY4-W')]!UH ]"HKA[OQ=K(@U".QL8I]
M0TM42XMX[>>5+B<QK(\<;J,(,, "V<D\@ 9/0:GJ%XO@^YU.TC^RW@LC<)'<
MH3Y;;-VUE!'(Z8]: +\^H65K<V]M<7<$4]PVV&)Y &D/7"@\G\*LUY5//J5Q
MHWPTO+AH;J^EN8G1CE-VZT<_.>3G/)(_*MZ#QO=VUIJL.J6L!U&QU.+3D%MO
M,<K2A"C8P6& _(&3\IQUH [>BN=T+6M4O-9OK"_L'%O"B26]^MK) DH/#(5D
MY# ^Y!![53U/Q!KX\8R^'=)L=/9_[.%['/=3.%'[S9A@HSVZ#USD8P0#KJ*X
M+2OB#-JUI8VQL_LFKRO<Q7,8ADN$@:!E5R%3YFR77'(ZGGCE)?&GB"#3M,>7
M0HX;JZUC^S&$Y>)7!!*RH"N=C =^1SP: .^HKA;WQ?JNF7L.D:F^D66K2VAG
M@,A?[/=R;W B1R5VD!4)SD_/P..=5M=U#4=8U;3-'2T$VEQQ><UR&(DE=2XC
M&TC: ,9;G[W3B@#I:*X&U\?WVKGPNVE:=;A-;2X#"YF8-!)"IW*<#D!@>>^.
M@SFM[PEKMWK=GJ"W\,,5YI]_+93>028W*8(9<\@$,.#0!KV^H65W<7%O;7<$
MTUL0)XXY S1$YP& Z'@]:LUYK'+KUMXZ\;OX?M+":9?L;NMW(RA\0?=7:.I]
M2<#CKGC2LO'W]NVFG_V7"89[K3Q?/YMM+<"++% FV/G[RO\ -D?=Z'/ !W%%
M<;:^,-1N4\-VEQI3:;J>KM.)$NE8K!Y*DMQP6W<%1D<$GM@Q6'B[6KW3+V9M
M/LHFM-4;3I;@SGRHU1B))V#;?E&!A0Q.3C/% ';T5Y[/\0-0A\):YJD5G:W$
M^DZD+)CEXTF4F/#JIR1Q*.">W6MS3=>U1O&=UH&J6UHA^Q+?6\EL['"ERA1M
MP&2" <@#Z4 =-17,>)/%2:'J^GV$US:V*7D<C)>7J,83(I7$600%)!)R3_#T
M.:KW/BC4#.VG6T$2:G!80W5R/LTMQ&))-V(QY?091OF)Z8P#S@ Z^BN#?QAX
MCN+K0;*VT.WM+S5;*>8Q7\KJ8)8MN58!<[<MP1R?:K]IXFU"V\1W^DZZME;>
M1IRW\,L(9ED7D2=3_ P ]2&!XZ4 =--?6EO=6]K-<PQW%R6$$3N TNT9;:.I
MP.3BIZY&36]1A\0>$[+4-.LO.U))VDD&=]NZQ%RJ@YQV!.>>>*=8>(=9UBTL
M-7TJPM[C3+J\,)B+;94@#,IGW$XZKG9C.#US0!UE%</<^--2EB>^TC3)+ZUB
MO6M6MH[28R2(DAC>19 -@P0QV\Y Z@G ZC6[R\L-'N+FPM%NKE -D32!%Y(!
M8D] H)8^PH T**X5?'D\47B8-%#>_P!CQP3)<6D;!)4E!^;;ECA=K$D$Y XK
MH/#FL-K5O+=1WEA?61V_9[JR)"OQ\P92Q*L#VS_@ #:HKC/%OBW4?#L>J7*V
M]HEO8VZ3PI,Q9[WJ9 @4Y0*,?,5(R>PJ2Y\1ZY/XMET+3+.P&=,2_BGN9'/W
MG*X95'MT![YSV(!U]%8OA+76\2^%=.UAX!!)<Q;GC!R%8$J0#Z9!K:H ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MQ]L81&1&C!4!#\IR%X(/3BNJT[P[I>E?;A:V[A;^1I;E99GE61V&&)#L1R
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
M:TZ** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M7% 'J5EJVG:BLS65_;7(A.)3#*K;#C/S8/'%1P:[I%U.L,&J64LK %42=2S
M]"!GG-<!<?\ "->(-#\2ZOI=YJ<YGT>2"ZOEC?Y5 )5 A"AG'S<#D#@D9%0:
M-K6C:OXAT^_EU#3YM1L=(DM8K"U+[[E\!FQO1<8V<*,GD\\4 >CV^MZ5=W#V
M]OJ5G-,BEVCCG5F"@X)P#T!X)J.+Q'H<UQ;6\6LZ>\UR6$$:W*%I=I(.T9YP
M01QZ&O,-$U.SFUSP%<QDQVB6EU ;:.W?RK,F-,0EF!+,,$,6/\.< &JUF+.'
MX;Z&R+#'.GB9)6PH# "\8[CWQY9!S_=]J /9Y[B&U@>>XE2*)!EGD8*H^I-5
MXM6TZ>UFNH;^V>WA8K+*LJE8R "0QS@'!'7UK)\:1VEQX:9+J_FL4:>!H[R$
M F"02*R.<\%0P7.>,9^M<)>ZEK0T5[J^C2\ATS7();W4-)C.+R 18\T+SED/
ME[@,@%..E 'I8\0:,UC)?#5K'[)&_EO/]H78K?W2<X!]J:GB30I+@6Z:UIS3
M&4PB,72;C(.J8SG<,CCKS7F?B@>'[_P)XJU;1WN;LZ@ML)+J8,!/(C@ (I R
MRKU('\CCKO&.C12^%1J6@VUN+W39DU.T\A0!*T8Y7CKNCROXCTH V=<U6"'3
M;Z.WUS3]/O(4!,URRLL!/0NI8=><9(J[>ZI8:7$KZA?6ULK D--($!QU(R:X
M'QHOVOX1:[J,\++<ZI&)TB=?G4':(TQ_>"!<@=]U37VNV6B_$&[GUTL=)U33
M(8K&Z\MI(LJS^9%E0<%MRGWP/:@#N+K5M.L;5+JZO[:"W<9262555AC.02>>
M.:L03Q7,"3P2I+#(H9)(V#*P/0@CJ*\RO[RR\,>)-(GNX[[2?#DFE?9;1XT8
MBWD$A;8XP2NY-G7NN#TX[/PM9V&D^%88=)MKI+%!(]O%-GS&4L6Z-R,YR <8
M!'3I0!H0:SI=U>&SM]1M);D!CY*3*S?*<-P#G@\'TI8]7TV6]^QQW]J]UEAY
M*RJ7ROWAC.>._I7D^B:G:SZOX N8$DM[>*6ZA-E%;N4LRT+ 1,Q!9GSUR??
M%:_AN>XLO$.E6EA>Q:OHMS+.Z0S)B[TIBKL=Q'5,DK\PS\RX)XH ]&O+^ST^
M-9+RZAMT9MJM*X4,>N!GJ>#4/]M:5]GMKC^TK/R;I@MO)YZ[9B3@!3GYC]*Y
MSQ?J-O8>(_#@GB$+2/.(]19&<6YV ;%4<;W!P-V1P>#7!6K6K^#O#]I<J6:#
MQ:WFK<0E2$\^4DD$  8()[#(SC- 'L6G:MIVKQ/+IM_:WD<;F-WMY5D"L.H)
M!X-<[K6N:S;>.](T*REL4M]0MYYC)-;/(Z&/;QQ(H.=U5_#3P+\2O&21% KK
M9,H7HQ$;!B/7'R@^G%9OBZ337^*OAH7\T:V\-G=B9FD*+&6";0S C&<'&>M
M'7P7USIS7LFN:EI@LXM@6X5?(",<[E?<[#IL(.1]ZKT.J:?<S1PP7UK++)$)
MD1)E9FC/1P >5]^E<Q#J/A;3[#6;>W9;K3F4SW8#>;&6D 01@D_,6VGC/'?
M(KGO#D5YH"ZUX1F<#5I+#?I-UYI?]T481P;ST,;9QTR#NQUH ]&@UG3+J^>R
MM]1M);M 2T"3*S@ X)P#G@\4@UG2S?&Q&HVANQN_<><N_P"7[W&<\=_2O.?"
M]QHVO0Z)%"=2'B+28&C%M,CH+%_+V/O^4#;P !DYXXZXL>"-3T>_T;0=%O["
M9O$6D.!+;R0N'MY1E7F9L8P06;)/);UH [W^W-(^RK=?VI9?9VD\I9?M";"^
M<;0<XSGC'6J=MXLT>ZU[4-'COH/M-BB&7=(!R0Q*CUVA<GTS]:\OU&^@M_ _
MB71Y/,_M"/Q&9FMUB8LL;7J.K\#[I4C![UV.CW=O;?$KQ6EUF-;NWLYHO,C(
M5XUC<,V2,  \'/?B@#?TW6K2#2;#^T]?TRYN+@E8[B-UB2X;<1\@W'/8<$\U
MI-J%DD\T#7ENLL$?FRQF4!HT_O,,\#W->9:'I$VK? W3%L!C5=-S=V8QRD\4
MC,JD=LCY?HU7M<EO]0\!'Q)%977F75U:7TUI&,S"TC=6V =SM!?'JS"@#O;'
M5-/U,2FPOK>Z\IMLGDRA]A]#CI6+?^(KB;Q;'X8TD0B[6V^UW=S,I9((\[5
M4$;G8^X  SSTJEX3F\/ZOK5UKNBSWEY+-;K#<7<H=4.#E4P0 6&3T&1T/454
MGMV\-_%:YUZ[!72=6L$MVNC]RWFC/ <_PJR]&/&>* -1_$%YHOBG3M%UAH)H
M=45Q9W<,9CQ(@R8W4DCD'(8$9Z8[UFKXODUG5-4CTG7-*M8]+NHX]MPZLEQ'
MM5I&)!R -V 1QE><YX9K<2>+_&WAK^S)%GL='G>]N[N,[HPVW"1JPX9B<D@=
M .>HJ7P;?6JZ_P"-':XB5#J8E#,P *"&-2P/<9!&?:@"G8^*=3\0:+;:Y8>)
M=%TZUF9A/#=HKFW&\B, [A\Q"X(;KG(Z8KN;[5]-TS;]OO[6UW#(\^54R/7D
M].17DGF0M^SK:0L5,Z-"OED?.K"Z!(QU!P"?IS6]/K.FZ9XV\26?B5':QUFW
M@%C)Y+RI<0B,J\2E >=Q8[>^_- '>WVKZ;ID2RW]_:VL;#*M-*J CN>3TY%1
M7?B#1K#/VO5K&#$7G'S;A%_=Y W<G[N2!GIR*\^OKVQT'Q6\.N"]TS1[_2K:
MWLC&A>--F\/ Q ;#?,/K^5+8Z7HUOX\\.6"6>+*/0[B&*&\&]@#(FQ6W<@E-
MV%/(&1VH ]'N]3T^PM4N;R^MK>W<@++-*J*Q/3!)P<TB:KITEZ]DE_:M=HN]
MH%F4NJ^I7.0/>J?B30XO$'AB_P!&;"+<0%(V QY;CE&'T8 _A7G<=WXDFN=#
M\7I921WEY#_8EQ;E!E6(.V9O]D3AO^ $$=30!UFH>+!;>+M&ACU+3SH=Y:W4
MTLX(PIBV<^9NVX^?T'3K71Q:MITVFKJ45_:O8L,K<K*IC(SC[V<=>*XS4[6Q
MLOB+X,LL1F&SL;M%\S!V'$00DGN=K8]<&N5@NVT_1TOU^T'2K#Q5>2W8M%W-
M%"YD"2!0#E 7#<#W% 'K"Z_H[V0O5U6R-J9/*$PG787SC;G.-V>W6D'B'139
MM>#5K$VRR-$9A<*4#CJN<XR/2O,O$L7A^Y\%:OJ.E&>YBU'4+*22XG#8G=9D
MW%%('1!R0,'GT-;/B2[LO#?C+3-2N3+9:#<64L0N[*/*1SLZME]JG =5 SWV
MB@#T&WN(+NWCN+::.:"10R21L&5AZ@C@BI:P?!]CIUAX?CBTB*XBL&D>2$7&
MX,P9B2P#<J"22!QP<]ZWJ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "L+P]X?FT.YU>:
M2]2X&HWC7C*(=GEL55<#YCD84?K6[10 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 5B>*] D\3:&VF+>+:J\L<C2&
M+S#\CJX &X=U'X5MT4 (@8(H<@OCYBHP"?8=J6BB@ HHHH **** "BBB@#.U
MS2AK>C7&G&ZGM?. Q- 1N4@@CJ"".,$'@C(JI9:+J/G0R:QK']H"!Q)$BVJP
MKN P&;!))&>Q ]NE;E% !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 %
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 %
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 %
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 %
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 %
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 %
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 %%%% '__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>16
<FILENAME>cgnx-20231231xexhibit97002.jpg
<TEXT>
begin 644 cgnx-20231231xexhibit97002.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
M&WV>U"XP<'!9L8^7.T-ZKSSS>&/$LO@V?P]Y2&32;N.;1[FY=&2YBB<-''*
M20<#;G'(P3WH Z2/QQI2SZG;WJS6,^G0K/+'-M8M&W"LA1F#9/RXZYXQR*?-
MXPAM9;^&ZTO48)[.R^WM&R1G?""02K!RN1@Y4D'ZUA:CHFN>*?"6HVDFBV?A
M^[=(S @E24O*DBR LR# 3* =SR3@8&=6+_A(_$6A:A::KI4.D--92V^S[2LQ
M>1UQN!7[J#GKR<]!CD NKXLLGNM#@6WNB=:@:>U?:N,"/S"K?-D';[8]ZYF;
MQE#J7@77M1U[2=1AT^WN9K>1;610X5)-F RN"#D<G@<\$BF:;I'B5[WP1)<Z
M*EM'HD4D%R7NT8G, CW+MSP3R._7('>"\\,>('\ ^*O#R:<CS7MY<R6L@N$Q
M(LLI<$@_=P#SGG/0&@#MG\0V\/BFW\//:W2W$]NUQ%,P7RG52 P!W9+#(XQW
MSTYJ,^)[81(?LUQYLMQ+;P0DQAI3&2'8'=@*-IY)';U&:/B[1=1UBSTO4-(V
MVVLZ?<I+ 9L$*K_)*K8."-C$\'DJ*I^*/#NH0GP_?Z%90:@VCAX6L+EPOVB%
MU53AFX#@JIR?>@#?\/\ B*S\1VMS+:K+%):W#VUQ!,!OBD7J#@D'J"""00:Y
MSP[>2^--<\0W%W/.NFZ;?OIMK:PS-$"T8&^1RI!8DD8!X '3/-=-H*W?V)I;
MS3K?3I)&W+:PLK>6, ?,R@ L>3QP.!SUK"TO1;[PGK^M365F]_I>K7!O?+A=
M%E@G88?(=E#*V 00<@\8[T 5]/UB\T3XA7_A5S<W]J^GKJ5B'DWRI\^QXM[D
M;AGD%CQR,]*Y&75=0E^&,OC(0ZI#K,27.+J.X01N'=T&Y=_*I\N!C((&,C-=
MWINAW;^+;_Q=J-N4NGM%LK.S1U9HX0V\[FSMWLW8'  ')KGAX:UX_!6?PP=,
M8:HZ/&$\^/9\TI?.[=TP?KF@#2CM='TSQAHKR6NM6U]J+2""![K= CI$^YG5
M7*[F7ZY.#P<FMF7QC91O"ZVEY+937OV%;V)%:/S=Q7IG=MW KNVXS[<U4UFP
MU*_\3^$]0ATZ7R+"6:2ZW21@QAXFC QNYY.>.WOQ5'PM8^*O#J/X<.G02Z=%
M<R/;ZJ;E>(7<OAH_O%QN(].G/'(!JZKXYTO2$EN)XKAK"WN!;7%XFPQQ.6"G
M(+;B Q )"G!^APH\:6[^(+K1H-*U6>XM)X8;AXX%*1B095R=WW,=3U]N#6#I
M^B^(-&U74].30=/O["[O9;JVU.25 ;<2L799$(W,5).,=>!D=MK0M.U"U\;^
M)[^XLVCL[\VYMY3(AW>7'L;(!R.>1[>E &OJFM0Z9<V-J8)[BZOI&C@BA R2
MJEF)+$   =S],US>H>/?^)7H]YIFFW,HOM573Y$<HK0LKD.I!;!8[& P<=\]
M,Z'BFWUJ>_T<V%L;O35ED_M"U6<1-("N(R2<94'.5SSQP>E<G;>%/$-KX>M+
M<:7;B6P\2'4D@BN5Q+"9';Y20 ,!Q@''0\"@#T/5-6M]'T6XU6]66.""+S)$
M5=SCVP,Y.>.N/>LS_A+[5)-5AN+&]@N=,MENIH&5&9HF#89=K$'[K C(Z5/X
MGCUNX\)WB:(4BU=HE\L>9@ Y&X!B.#C< 2.N#7)1^']:CUC7+R'0D@M]1T5;
M9$^UH\GFCS.')^\QWC)R1@=2>* -_3O'-EJ-YI-NNG:C FK6YGLIIHT5)2$#
ME/O9#!3W !P<$BIK3QE9WFAZAJB6-\@L+AK::W=4$WFJ0"H&_&<D8Y&<C'45
MA6FA:Q$WP_WZ<X&BPM'>GS8_E)MS%Q\WS<\_3WXJR^A.WQ,>6UG3^SKB".^O
M[<#.;B,E(6]MW7ZP"@#8\8Z_<>'/!NH:S!9M--;P%UC+*-AQU;GH#UQGVJM=
MZK9/XA\-0W]EJ,%_<&=K4!P(U(C);S-CE6^4<#G&1TYJSXVTBZU[P3K&EV04
MW5S;,D0<X!;L,]JR[ZQUF_\ $/A'4FTIHTL&G>Z43QL8]\111U&XY.3C\S0
MLWQ'TZ&QN[]M+U7['97K6=Y/Y*8@8,%+$;\E<G^$$CN!QG3M/%EK<:W<:5<6
M=Y8S16IO$>[5566$-M+C#$C!(R&"D9'%<A>>&==N/ WBS2TTQA=ZGJDMS;*9
MH\&-Y%8$G=P0%.1[CK6QJV@W^L>,FN6LY8=/N-"GTZ28O'NC>5E;[H;)P >G
M?\Z -*W\:Z?-JNFV+P7, U-&:RFD";)MHW8P&+*2O(# ?GQ6GJ>L0:;-:6QC
MDGN[QREO;Q8W/M&6/)   Y))]!U(!YCPA9^(K6.RT[5O#VG6IL4$;ZE%*C_:
M0HP"B ;E)X)W8[^O%KQ1I>K#Q1H7B+2;47QL%F@N+/S5C9XY0OS(6(7<"HX)
M&?6@#"T#Q.NB#QAJ.H0:D;:'64A,4CB22#<D2@?,_P!W<W\)/!XXKL+GQ/:V
MNM7>E26MV;BVLOMQ*JI62/<5^7YLYR#P0*XR]\+^(=1T3QG$=.C@FU*^AO;.
M-[E27\ORCM)'"D^61G.,GTYK2-CX@O/&%UK4NB^1;S:&;-8C=1M(LGF,V#@X
M[^N,8YSP !-1\;Z3JW@R]U"ZTC75T=[)+@SQH(S(C'HC!P0P/7I^(-;=[XLM
M['7$T2/3=1NKUK,W<20HI#H&"XW,P //4D#CKD@'GY_#NLR_!)?#2V!_M4:>
MEGY1E3;N  W;LXQQ]?:M3[!J9^(-GK)TZ46<>CO:N?,CW"1I$?&-W3"D9]3Z
M<T 6[3QKIE]I.E7UO'<,^J2M!;6Q4"4R+NWA@3@;=C9.<<<9R,VM"\26^O3W
M\,%K=P26,YM[@3JHVR#!*@@G/!!STP17GR:3JVF:#X=TW^RB^M6VIW5[%''>
M1I*L1:1BR,=R8_>HK!A_%CK@CKO!KO!/J5I=:+=Z=?RR"]G>XGBF,Y?*[MT9
MP,;,8P. ,=Z 'P:_<ZCXUU;PY)IUPEK;6L+?:$E53F3S/FR&# ?* ,<YSG%<
M_P##WQ<L'A#PI::A;Z@[:@OD)J$@!C>;YFV$EMY)"GG&/>MV/3]5L/B%JFJQ
MV(N+&^L8(Q(LRJR/$9,KM/4G>,=O4USNG^&==M?!W@G3)-,;[3H^HQSW0$T>
M BB0$J=W/WQQ[&@#J-2\<Z7I8::>*X:P2Z%I+>IL,<<F[8<C=NP&^4D*0#6C
MXC\06OAC19M5O8IY+>$J'$"!F&XA0>2.,D5R.DZ+X@T74+[21H.GWMA/>2W%
MMJLDJ PI(Y<JZ$;F92QQC@\<CK6C\5BP^&FKE0"W[G )QD^<E %NV\=:;)K%
MSIE[;7VF2PVS7:/?1"-)H5^\ZD$].I!P1Z4^+QI9/JUKILMG>03WL#SV>\(?
MM 0991M8E6P0<,!Q^-9/B+PM=^,]0$MS;OIL,.F7=I&9&1G:2=0N<(Q&U0O<
MY)/3BIO#">(HU@CU;PS8V<MG&1)=6\T;F[(4@>6  4SU.XC'3OD !!X_75=
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
M==ZL#EV8$%2>Q%=-0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
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
MM7(+1^8R!L'(SM(SR ?PJ]10 V-!'&J*6(48&YBQ_$GDTZBB@ HHHH ****
M"BBB@ HHHH **** ,^UT33[/5;O5((76\O HGD,SGS OW<@G'&3CCC-:%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !7-7WAB[N/&$/B.WU2.":&T:S2%K7>NQF#$G
MYP2<@>E=+10!RFM>$;W7]'U.PO\ 6LF^6./=';!5A16W81=QY)ZDD]!Z5<UC
MP]<:O>:+=-?I%)IEQ]H&+?(E?84/\7 PQ_QK?HH Y^Y\-2+XF?7]+OEM+N>W
M%O=))#YL<RJ<HQ 92&7)&<]#TJFO@>*W.A"TO3&NE7,EV3)%O:XED#!V8@C&
M=['@>G88KK** .+O/A\E_%K GU.5);^]CU"&:"/8]K.BJJLIR<\*.#ZFK$W@
MN75O#]WIOB#6KC4I[@(%NEB2 PE#N5D5> P;DDYSTZ<5UE% &%:^'Y6U6VU/
M5KU+V[M+=[> QP>4JA\;V(W-ECM49R!CH!FL*T^'<]K8Z+8GQ#.UKHUX+BS0
M6R A0' 1CSN.'QN]!T[UW5% ',R^$WO+^QGU&_2Y2POGO+8_9]LR$EB$,FXY
M0;L8 &=HR:@MH[3P%8:A<ZG>R3P:CJ3W!\JS=BLDO5=J;CMXXX_$YKK:* .;
M\#Z!#X?\/^5%!)!]IFDN?)D.6B5F^2/VVIM7'L:T-0TNXOM6TV[%XB6]D[2?
M9S#N\QRI7);<,8#'''4YYXQJ44 <[XA\,2:WJ^C:G!J'V.YTJ5I8F$.\ON&U
MD/(^4CJ.OO5B_P##5IJ'B33-;F=A<6,;Q[5X64,5(W>H5EW >O/:MJB@#F+/
MP1I]CX<UG1()IDM]4>X9F4X:)9<_*GH%R<#Z^M5[#P7>V>K:;J;Z_)-<V-B]
MB ;5%1T)4C@<CE!GGGMBNOHH XZ+X?P'P"GA2YOY9(X6\RWNXT"21.'\Q6ZD
M9#?IQ[T^/P9<W.LIJ6LZR;YSITFG31):K$DL;D$YY)!..<'Z8Z5UU% '):!X
M-O-(BCLKSQ#=:EI-NACMK.:%%V+@J [CF0 $@9P/R&*$7PZN8=*L=(3Q'/\
MV;IU[%=V<9MD,D81MRH7)^8 ].!^-=Y10!4U+3;35]+N--OXA/:W$9CE1OX@
M?IT/N*Q]+T'6=+LX].7Q#YUC$H2-I;0&Y5!P!YF[:2!QDH371T4 <[-X6,/B
M%-;TF]%I=-:K:3I+$9HYHU.4)&Y3N7GYL]#SFJJ^!XK>71'M;TI_9EU+>,9(
MMS7$LH8.S$$8SO;H...PQ7644 <E-X+EFM?%%NVIJ%\09\TBWYBS&(SM^;GY
M0.O?GVK$M[>YMOBI!9VNI6ZS6_AV.W+R0;ED*S'C:'!#8P<9Z=J](HH XR[^
M'T+:?IPTW5+FPU6PN);F+45179Y)23+O0\,&)Z=L#TJS>>$;J_L]-2YUJ2:Z
MM-0CU"2XD@'[V1.%4*" J8XP.??.2>JHH YAO"MVNKZUJ5OK!@GU,VQRMOGR
MO)/RX^;D$9# ]<]JI7OP^CO?M]R-0%MJ5Y=6UV9K:W"QB2 Y0F,L=V23G)YX
M]*[2B@#BKGX??;H_$B7FM7$HUV"..;$*+L=$"AA@=.!Q^9/6M&;PS=W.K:#J
M5QJWFSZ3YI)-N!YQD78V<$;0!TQ^.:Z2B@#D%\"K%8ZGI$&HLFAZC,\LUH8L
MNF\YD1)-WRHQSP5)&3@CM:7PK)%K&LZA#?1H-2M([7ROL_$2QA@I'S<_?/Z5
MTM% '#ZAX6>3P7IO@=)C<0CR(KBX\O;MMHF#'/)&YM@4>N2<8!KJX+2\CU>Z
MNI-0>2TEC18K0Q*!"PSN8,.3NR.#TQ5VB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ KC_&&N3V6M^'M)CBO/)O[EQ<-; AF18G;
M8K @@[E4G!!P/>NPKDO%%K>S^+/"EU;6,\]O8W,TMS)'MQ&K0N@ZD$\L.F:
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
M   P .U+110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M';/7CKQ5VZ\6Z393QI/)*L$ES]D%UY1,(FSMV%^@.[Y<],\9SQ7#Z#8S^)/
M/@.QALYX_L4EG>S3RIM1$B7(*M_$6X  S@,<XQ4VB:3=:?+/X>U/P7%?R+>2
M2VVJO%$\#QM(7#R$G<&7=C: 2<#IUH Z6[^(.@6?V\R/>%=/E$5XR64I$' .
MYOEX7!'/?G&<5I7OB2PLGG4B:86\2RSM!&7$2-G:3CUP3QG Y.!S7%7VE:I-
MI7Q&@33+HR:JS?8AL'[[,"QY'/'S*>N.*;K.BW]P/M^DVNJ:;XA@LX8[>>(9
MAO,*/W4ZG*X#;AEL<'@G&* .PU+QAI&E37<=S)+ML3&+R5(RR6_F8V;R/7(/
M&< @G%11^*DD\:7?A_['<@6MJD[3>2Q#%BW3';Y3SW/3WXWQGIWB/6;+Q5I[
MZ-=3/+'$;!K5U2"10J[BWS!G?<" &!P N,<FNCM8=1A^)%QJCZ5="SOM*@C$
MF4(A='D+*^&SG##[N<T 7-$U[2(O#2W\6I7MW:R7<D4<EVK-,\AE9?+5<!N&
MR ,< >U6&\8:1%;:G+<// ^EH)+R!X&,D2$9#;0#E2 ?F&1P>>#7#VF@:Y#X
M8T>X33I_M6DZ]-?R638#30O)+RO."P63(&>Q'6M+7M&O=8O?$FMVUE<JMQX>
M?2K:!TVR3RL7;.T] "RKDX_B[<D Z;3O&&D:GJ=O80-<+-=6YN+=I;=T2=!C
M=L8C#8W#./6M:_O8--L)[VY+B"!#)(4C9R%'4X4$G\!7$Q6%^==\!S?V?<B+
M3[*:*[8IQ"S1(H!]>5/3/KTKK=?227P[J44,3RRR6LB)&@R68J0 /Q- &=8>
M-M&U*W-Q;M=>48X9(W>UD42^;]P(2/G.>"!G'X&IH/%ND2Q:@TDSV\FG.J74
M,\962-GQL&W^+=D;=N<YP.:Y2]T75Y/AKX52WTO[1?Z*;66?39]H,XCB,<B
MGY<_,2#TX%,U32;S6/#\NI:%X432;V"[M;R.VN(XH9KQH7W%7V$@+CA<GKGH
M,4 =?#XKTJ26_AEDDMI[!4>XAGC*NJO]P@<[L]!C)SQUXJ)_%.ES#4[.:2\M
M+FTMO/FC,#"58FR!(@ .X<'D9P1SBL+7DUGQAX4NVL] EL+B-H)HK?4=BO<O
M%*LFPA6("?*0-W4MT &3)8J+_3M1O(?!;:/<&PDMR98(EGE<]$0H22F>[8R2
M#C@T :FG>)=)M;#PY:"ZOK@:I @LKB>-F:?Y-V7?& VWDYQWK2EUZQADNDD,
MH:VE2%AY3'=(X!55Q]XD$' Z9YKD7\/:C=?"/2+2*W>#7=(MK>>V1QRMS H^
M7T(;#+Z8:I/$FA:K+X8TN[M["*_U&TU!=2N[%F&+C<KB2,$\':'PN>R"@#H8
M?%VD2P:C)+.]NVFLJ7D,\962(L,K\O?=D;<9ST'-8ECK-S=_%I[+S;^*U&BF
M8VEPNU0_G* X'0Y'?)QR..E9>KZ1>:QX>DU'1/"BZ5<PWEI>"TFCBAGO?)?<
M5?82 /[NXYR#TXK3L&U#4?B5;ZR=$U"UL6T9K9I+E40I(90V"-Q/0'I_+F@#
M1^(EQ=6?P^UN[LKN:UN8+5Y(Y86VL"!ZTNF^-=)N[Y=+#W:WOV?SHUEM9$^T
MJH^9HBP'F?AUZC(J?QQIEWK/@?6M-L8Q)=7-H\<2%@NYB.!D\"LS[#<:]XB\
M,ZA]BN;2'1TEDE:Y38S.\?EB-1WZDD].!@G/ !K6OBW2KWP_'KENT[V,DHA1
MA P<N9/+ V8W??\ EZ5N=JX33-"N;3X@ZA9QLAT,.NKB('F.YD#(4Q_=)5I/
M9L5W39VG;@MCC/K0!A67C#2+^\LK>"24K?M*MG,8R([@QYWA3[8)YQD XS6S
M<W$=I:S7,S;8H4:1SZ*!DUY=867B&XU+PEJ-]H.H+>65Y/\ ;OGC6*/?%(H\
MI ^ @R.< D8^\:]0N[:.]LY[68$Q31M&X'=2,'^= '(^$)K[QAH47B'4+VZM
MTO69[2TMI/+6"(,0N2.78@9.[(YX K6M;N;0;-;?6+Z2]NI[J1+4K&/,G4Y9
M5VJ ,A<Y. /E)X%8?@W^T_"&BQ>&M4TN\G%B6CM;VUC$D=Q%N)7.#E& ."&
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
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4C,J*69@J@9))P
M*6N:\:7EJ-.ATBYO8[1=5D,$DKRB/;"!F4@GH2OR@]BXH Z165T#HP96&00<
M@BEKA?ACJ\EUX5GTAKB&ZOM#F:Q,@DRLR+_JGR,\%,<\]#6=%\0O$"^&M-\4
M76DV"Z-+<""[6.9S-&#*8Q(O&, XXZGV[ 'I=4+V>QN7;1Y;Z..YN8FQ"DJB
M4IT) ZX]\5Q]WXN\4N_B0:;I.FN-#GPZRW#YG3RUDPN%^]@]^!P.>H:FIP:W
MX\\$ZO;(5CO=(NYU#=0&$) /TS0!U?AVWTRPTE-,TFZ$]MI[&UQYHD,)4#]V
M2.XXX/-:U<-8^,7BT[4Y9--M8;P:\=*@BA8A996*J'=L>Y).,X%:=QJGB:QA
MU7S=*MKG[.(C9W$<HB28,</N5F)7R^6//S#IB@#?O+VUTZU>ZO;F&VMT&7EF
M<(J_4GBI5D1XQ(K H1N# \$>M>:>(?$;ZUX0\>Z9-]FG&G6&Z.ZMU*I,LD3,
M" 2>A4\@D'@UJV'B/6M-UG0M,U>PLUT_583':36TK,\4B1[ML@( .5!Y'0\>
M] '86=_9ZC"9K*ZAN8@Q0O#('7<.HR.XJQ7FGAC6UT/0[J*./=/>^);ZV@41
MLX4^9(Y)5020%1N!UX''4=9X<UC4]1N=2MM2T]X?LDBB"Z$$D,=TC#.55_F!
M!!!'/;GF@#5N]3L+!E6\OK:W9AE1-*J$CVR:DMKJWO(O-M;B*>/.-\3AA^8K
MB/B856X\&N83,5\00?(H!+?NY.!GBJ_@F,:QXZUWQ181?8=,DB%@]FV%E>XC
M;YI)$'W"!\HSR0<\4 >BT5P\'C34KX:;?Z=IDEWIMY=")HX[6821PEBHF\PC
M81P"5[ ]3BKD'B+6=5MAJ>BV%O=6 OVM3"S;97C20QO*&)"C!#$+@D@=03@
M'645Q]QXJU&YLM>U#1[>VEM]%GD@>&;=ON6B4&0*P.$QDJ,ALD=A2VWC"6ZU
M_0$2.$:/KEDUQ:SLI\SS H;RFYP#M);/^R1CO0!U]%<B_BNZ4V%OMC^T:BT\
MMLZ6TDJK;QD 2%$)9BVY"!D##=>,'/F\:Z_;Z;I[S:%'%=3ZR-,83EXED4YV
MS(&7(5AZ\CG@T =]17(1Z_K^G^(M&TW7H--CBU%94$]J791,F2L>6QC<GS ^
MH(]ZW-#O[G4K2:ZF$0A:>1;8Q@C?&K%0QR3UQD8[8]: )[G5],LYO)NM1M()
M>NR6=5/Y$U9CECFC62)UDC895E.01[&N!\7-''\5/!DDELTX^SW^41-Y/R)V
M[U3\/F^\&Q:O=3V+V=OK.LA-+TXC?Y(8$EBL><9"LVQ?3'&<T >FU4O[BRBB
M2WO;F. 7;?9XPTNQI&8'Y5.0=V <8YXKB=4\;Z]I.C:W=2Z,LG]GR0>1<O%+
M;QW*2,%.U'&0RDX(S@]<U>U/6=;TVYT5-6TW29!>ZRMK$T4CN8D*,RL RCY_
ME8$CV]: .AT30K'P_8_9+%9=I.YY)I6ED<X RS,23P !Z 5H.ZQHSNP5%&69
MC@ >IKDI_%.HW5IKU]H]O;2P:+/) \4V[?<O&H:0*P.$QG:,ALD=A3M.\7-X
MGNDM]!$ 4:?#>S2W2%@OG F./:".<*23GCC@YX .FL[VUU&U2ZLKF*YMWR%E
MA<.K8)!P1P>01^%3.ZQHSNP55&2Q. !ZUQOPHW?\*UTO<H5MUQE5.0#Y\G I
MZW^KR?%6?3#<V_\ 9T6E1W"P^6V?GE93DYY;Y.N,8XQU) .IL[VUU&U6ZLKF
M&YMW)"RPN'5L$@X(X.""/PJ>O)_!NNZGH/@_PX5M;1M+NM5DL7^=O.!DN9 K
MCC: #@8YR/2NBUKQEJ&C7C&>VM4A748;1;9FW32PR,J^>"IPHW,<!EYV]<F@
M#MJ*X_1M0UBY^(_B2SGN8&L;.*U$<0C8%0ZR-P<XW9ZG'.!TQ6SXBUQ=#L[=
M_+,DUU<I:PJ%9OG;)R0H)( #' ZXQ[T :]%<?!KOB:YBUF"#2HWNK-5DLYY;
M>6"&]!!)0!^48$8ZD<BFZ+XU;4O#]WXBGC2+2K.T,DP,;+,)D4F5,$\!2-ON
M<]AD@'945S5OK&N(]G>7MC;'29[1[F>6%\-9D*&"MD_O,@D94#!'2J&G^+M5
MO;O1YTTN273=27=(4M9D:S!7<C,[#:X/0XQC/&10!VE5K[4++3+8W-_=P6L
M.#)-($7/IDUR-GXTU+4#I%]8Z9)=:9J,ZHR):3"2")L[9C(1L8="0.F>"<5A
M>.=:N_$?PQUG4K-+4:4+CR8PZDR2+'.$,@;.%^93A<'@9R,X !ZI17(W'BZ3
M_A++G0H9;*"[@EA$=M=AE>[B8*7DB;(!V@L-H!.4.<9KJYA*87$)19=IV%P2
MH/;(&,B@"&[U"RL/*^V7<%OYT@BB\V0+O<G 5<]22>@JS7CTFH:IJOPQ\.:G
MJ,D-U=3:Y:R)M4H<_:CP22<#L,=!75GQK>:7-XD@UJUMC)I,,$\1M&;$JS;@
MJG(R#N7&??..U ';45S.E:YJ\_B,Z?=Z>[V3VWG)>QVDT*QR X,3"3KQR&&.
MG05I:]?W>G6,<MG!$Y:9$EEF<+';QD_-*V2,A1V!!- &I17GMQ\0-0A\,:WJ
M,5G:7$^E:DEDS!F1)D<QA753D@_O1QG'&<UH'7_$O_"5W/AX6FEBX:R%[;S^
M9(41-Y0JXQECG'3:,'\* .RHKB=+\<S:KI?AU4MH8=4UEYX]K$M'%Y&X2OV+
M#*C X^\.>*JZKX\U#2-/\2QS6MJVIZ%Y,K ;A%<PR_=9><J>H(YP1U.> #T"
MBN9O_$5]:^+Y=&BM[>5/[)DOXF9F0[D=4VD\\'=G.*Q])\;:S=Q^%+V\L+&.
MQU[]WB*1C)%(8V<'GC:=I&.O0Y[4 =]17(>!]0UC4;CQ"^I7,$J0:M-;H(XV
M7:$"  9)PN.WJ2>]:>KZX]KK>F:):"/[=J ED#R@E(HXP"S$ @L<LH R.I.>
M.0#<JE9ZQIFH7$MO9:A:W$T(!DCBE5F0'H2 >E<5K7B74;SPIXVTYEAMM6T:
MVD$SIN*21O"SI(G.5)'8DX([UTGA:P5-&TV\N8+0WHLHX5GBBVL(MH(3)R<9
MYQG'M0!O45S%YKVJ7=[K5IH-M;33Z2J!TGS_ *1*R;Q&IR GRE?F.>6Z<4J:
M_J&I:S/H^GPV]M>6EG%<W?VK,@C>3.V(;2,_=.6SCI@'/ !TU%<!#\0+Z]M-
M DM-,@6:_P!0ETZZBFG.8)HU<L 0O(RG7T/2FS>+_$T5EXF'V'2C=>'R9)V\
MR0)/'Y0E 0=0VTD$DX!QUSP >@T5Q,GBS6[[7[;2]'T^P_TK2%U**:ZF?"Y9
M1A@H]^WUR.E0Z9\09M1L+*"6R%KK$MU<6=Q$L;SI"\'^L8!!N8<I@<?>Z\<@
M'>45P,_C77[33+:6?0T2X?68]-)F\R%9HW8!98U89 .>AZ$=ZG/C+5+#_A*(
M-1L();G1HH;A/L>]EDCE#8R#SE=K9QU X H [>BN2@\3WMWHEQJ.F2:9JMON
MB$%S;R>7&JLV)&D#,2NP?,1G)'IVP]9\::I-X4\:"RFM5O-&0>7>11MLE1X@
MX95)X89(!R1T/(H ]"EOK6"ZM[6:YBCN+G=Y$3. TNT9;:.IP.3BIZY&35[V
MS\1>%-.N[6RG-^D^;H AXBD6[Y0<XR, G///%5;GQM>_\(Q>>*K*UMYM(M)Y
M%:$Y\Z6&-RCR*V< Y#$*1R!U&> #N**XJ;Q5K=WKNIZ;I-IIQ2WL(;V">>1\
M.K[\ @ <G;T[=<GI70>&M8'B'PSINL"+R?MENDQCSG:2,D9[\T :4LL<$3RS
M2)'&@RSNP 4>I)Z4RUN[>^M8[JTGCGMY1NCEB8,K#U!'!%<A97VK7?C[Q387
M%Q;OI]I:VVR'RSD!UF/!SC=GJ<<@#IBL'P/KVJ:1X5\#6\UK:'2]11;-65V,
MROY;.K'C;@[",=>ASVH ]3HKB9O&6H6>L:;;WEM:QK>ZFU@;16W30+AS'(S
ME?F"9VX!PW4X-3>$-0UB_P!>\4+?W,$D%KJ)@B1(V!0"*,@#)/')SZDD\=*
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
M<UH?-NE"7(25T2X X D12%?CCY@>..E3-H&FMJ[:MY,BWQ@^S>:L[KB+.=H
M; &>>!UYH R?AS?W>I^ =*NKZX>XN2CH\LARS[9&4$GN<*,FNHJCI&CV.A:>
MEAIL)@M4)*1^8SA<G)QN)[DG\:O4 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 5AGQ1ILWB*Y\/6]];KJ44*R$.00&;.%VY!8\$D ],>M;
ME<1'=0Z?\7-4-TQB6YTFV\IF4[6V/+NYZ#&1G/3- %GP1XOAUOP]I+:GJ-BN
MLWL;R?9ED5'8!V&50G.,+^E=#/K.F6U['93ZC:174C!4A>95=B>@ )SD]J\B
MTG[);_#[P"P$4<\>NQO*< .HW2ABW<<%<D]B/:KJ2Z7<RZWX7\3'4_[1EU26
M>"TC5@+M#)OA>-U7C VC.1MV\X H ]5N[ZTT^)9+RZAMT9@BM-($!8] ,]SZ
M55_X2'139&\&KV)M1(T1F%PA3>.JYSC(]*YOXJB!_!1294;=>VF%89) G0MC
M_@()/MFL_P 1W=EX;\::=J%T9;'0;FRDB6[LH_DCN&=6)?:IQO4+SWVB@#N9
M-7TR*TANY-0M5MIAF*4S+LD&,Y4YP>.>*SYO&&APZSI^E_VC;-/?1&>(B5=I
M3C!SG!W$C'KS7%S:?I^G6>BGPYJ\NA3QK=RV$FHJ3!/&SH9$D#X*ACM9>A !
M(':G:?J,G_"1^!M1O]/.G";2[J 0QHQ19"T6U5XR 0I(![4 >@KK.EM?_8%U
M&T-X6*B 3+OR!DC;G.0.2*IZ7XKT?6-0U*SL[V%Y+"3RY?W@Y(4%B!_=&[!/
M3(->92:K;7 T"6**6S6V\4,TVGQV[L;?+39:1B"2[$Y ! PV #C-7-1-W]C^
M(=A9P7$FH-J,5VMND9W2VX2 OCC!W*KKCOTH ]/L=7TW4WE2PO[6Z:+'F"&5
M7*9Z9P>,USE]XLSXW\.Z5INHV%Q:7K7"W4<9#R#9$S*=P;@9&.G8\URVHR:?
MXGT36]7\)3:E>ZTVD26IF=738I(;RL$ &3[V,9(_$9G_ +=T;5O%'P^GTOF.
M#[3$\:1-NMLV^T1L /E.<#!H ](O-0LM.C5[V[@MU<[5,L@7<<9P,]> 341U
MK2EBMI3J5F([KFW?SUQ-QGY3GYN.>*YOQ7J5O9>+/#T<\?V=Y$N!%J)C9_*)
M" QHHXWOV+ _=. 2:X31VM'\-^!K:X3,EMX@N!,L\6THNZXZ@@<99/8$B@#U
M7_A+/#GV);W^WM,^RM+Y(F^UQ["_]W=G&?:KUYJ-CI\2RWMY!;QMPK2R!0W&
M>,]>*\SN4L&N_BF2EN3);*$.!\Y-J =OK\^ <?Q>]3Z)?_V=XE\/:AJ<RQZ7
M<>&XK:WNI&Q''<!@TB,QX5F 7KC.S'44 >AG5M-"VK'4+3;=D"V/G+B8GILY
M^;\*:^M:5$ET\FIV2K:$"Y+3J!"3T#\_+^->5R6DFDZ#;:A,KQ:/'XR^W0$J
M=L%H2P#X_A0L21[,#WI-=O+6^B^*#QAW2XL;8V[-$P$A\@@;<CDY(QZY!'%
M'J2>(-&EFNH8]5LGEM4\RX1;A2T2^K#/ ^M5-(\6Z+K.BIJMO?VZVK,5!>4
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
ML]U'J=FT%N<32B==L1Z_,<\<>M-@U[1[JYEMH-5LI9XHA-)$EPI9(R,[B,Y
MP1S[UY==W<$T_P 1M]S)="\T6%X97MRBS$13+E/E QDJ!U)XY-:UH;.'Q+\.
MC;>2@_LZY1_+P,9BCP#CU8-U[@]Z .]CUO29=/;4(]4LGLE.UKE;A#&#TP6S
MBJ^O>)=,\.6=O<ZA<QQK<3QP1 L!N9V S]!G)/8"N2L-+N]/\6W?A1+<_P!A
MS7"ZS$X^[&F[+P^W[X*P']TL*T_B4?+\.V-P5;RK?5K*:9@I.Q%F4LQQV% '
M0W&O:/:B,W&JV40E0/&7N% 92<!AST)X!J1]6TZ*_%A)J%JEX5WBW:91(5QG
M.W.<8[UYAXTU2UO/^$RM((9+6>;1T966W=Y-07RW*X!!"HFX@X&<G)(Q5WQ'
M"/$>D:0VARA=;TZR^V+,SF(B$IM:(G@XDZ9XQC=D<9 /0?[7TS[ M^-0M39M
MPMP)E,;?1LX-(NLZ8]A'?KJ-HUG*<1SB92CGT#9P3P?RKSO5/$UC+'X0\10K
M=VGAZ..:&Y%O'\UC(RH$WJ < 8=<XZ-Z&GRV.C#3;6YT/6+O2)+C4Y;VSU&Y
M3=%+,T>'+(^ $8%AVY&1U&0#TFUN[:^MDN;2XBN('SMDB<,K8.#@C@\@BIJY
M[P3>W=]X:CFOK."VN//F5_LV?*F(D;,J9YVN<L/K70T %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
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
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 5P<%Q=V_Q9\0FUL6N\Z99@A9%0JVZ7&=V..N2,D<<&N\K%N8M"T34G
MU:X:.WO;O$1D,C%Y\<A N<MCG  .* .5L/"&MZ+'H5C''::EIL,4YO+:28Q1
MBXDD\SS,;3O5<L "..#C/2O8^$_$%KX.\+Z5+:6[3Z3JR74ICN!AHD=SQD#Y
MCOX'3CDBN]L];TV^NC:6]VC700R-;L"LBJ"!DH<,!R.H[U?H \]F\.^(M.;Q
M=I]C:6]Y8:Z9KF&9[CRV@EDCV,K @Y&0,$?CCJ.AT&'6].LM#TRXLK7[/!8+
M%=31W!8I*BJJA05&0>3GM_/H:* "N)\/:+K'@J2\TVQL4U'1)KA[BU\N98Y;
M;><M&RM@,H.2"#GGD5VU% ')^(+'Q)?)ILD$=O+"MWOO-.$YC62'80%,FWYL
M,0Q& #TY'7G)O!VOGP5XGT5+*Q234=2-U:B*?Y%1G1B#E1@ )@<<^@%>GT4
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
MXJSX8T&YM[7Q':ZM:((-3U&XN%3>&#0R@#:V.AP#D=.>IKJZ* .%TWP/>?\
M" ZEH&IWPDN;B![*&Y R4@3<L&?7 ^8^[$5>T.+Q/?VOV'Q+IUA;PI"T4\UM
M<ES>97;E1M!C'.>N<XQBNLHH XK6O!%K;>#=<TKPY8E;G4[<P'S;IV4'! )+
ML< 9/2J7B+PUKOBCP5:^%WLK6R3$"SWDEQO,0C*DF-0O+';CDC@FO0J* /-_
M%?A7Q'K7_"1V8@M+RVN[1(]-FN+@C[,0F&79M/S,V3NR.#R>,5-XC\+:AK\.
MZ72HX-6AMD&G:G9W>R2UEP<AVX9HP<'@'.6X'!KT*B@#A?[+\5:%XHO[O3+6
MQU6RU4123?:+CR&MYTC6,O\ =;<I"J<#G^LL>C:_HOC2ZU>SAM]2M]4M((;L
M-+Y#131 @.!@C80QR!R/>NUI"0H))  Y)- '-^ =(U'0?!MEIFJ1PI<P&3(A
MD+@AG9AS@<_-[_6NEK*L/$>DZGJ#6-I=[[D0BX"&-EWQ$X$B%@ ZY_B7(YK5
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ KS_ $65]0^-
M/B<WG+:996L-BK?PI(N^1A[E@ 3[ 5Z!6!JOA:*^UJ#7+&\FT[5HHC";B%59
M98LYV2(PPPSR.A'K0 _Q+=V6@:;>>*)K?S)]/LI0NW@LI*MLS[LB_3FLBZU[
M6-%O/#DE]-;W5KK,RVDJI%M,$SH60ISRGRD$'GH<]JVY-!2_LKFVUFX:_6YA
M:"12@C0(PPP51T)]22?3%4['PD+==+CO-1FOH=).;)9D4%6VE%9R/OLJD@'C
MKDY/- '*7'B[Q1#X8U37?M&G$:7K$EF]N+9@+B-9Q%][<2G!SW_I6V-9UZS\
M5ZAHUS=64^=).HVT@MF41,K["A&_+#H<Y!ZT^7P#'-X<U/17U6?R=0OFOI9!
M&N]7:02$+VQN [=,U:U+0A%JUSXDFOV,J:8]D8A& A4G=GUW;O\ #% ',6GB
MWQ3#I'A3Q#?2Z?-IVKRV]M<VD4#*\1FX60.6.?FZKC@''/6M*/Q'XGU:VCU7
M0]/-Q;?;GA^S-Y2J\"2M&S;S(&#_ "ENF.V#U,?@70&OO!/A<:E<R21:?'%,
MEHT01DF5> YZG83P,#H"<XK2M? HL=5NI;/6]0@TJ[G:YGTM=AB:1CEL,5W*
MI/)4$9R>W% &+J7B;Q1';^,[BWN].C7P_)OC4VK'SD$*R[#\_'!(SS]!CFUK
M/C2>SU*.WGN5TB.ZM(I=/N;B#?;SS-DM&\G12/E Z=<\]*TY_!*W%OXDA;4I
M@FO_ /'QB-<QC8(_D_X" .<TZ[\'-?:7<Z7<ZI)+I]U;I;SPO"IX50NY#_"Q
M '/(R 0 : ,KQEXKU;0(M:NX)K;;I\<,MO;)&93*IQO,Q'^K!Y"\C.,\]*LP
M2ZG+\6=1M_[0'V6+2H98X6BRJ[I) 1U'=02>_3BEU/X=6^HKKD*ZO?6]EK")
MY]M&$(#J@0,&*EL85>,]OPK4C\+F+Q&FMIJEW]H^QK:3JRH5G"LS*S848.6/
M"X!XH YW3_&VI2^']--Q]F.IZCK,VF)(L9$:!)) 7VYR?ECX&>I%2ZIXHUG1
MK_Q!I#26\]Q::.VK6-S)"<,BDJR2*I SN P1C@]..;T?P_M!X?72WO[EGAOV
MU&UNE55D@G+E]PXP1EF&".A(JW=>$EOX=4>\OGDOM1LOL$ERL07RX?FRJ+SC
M)9CDD\X[ "@#)TSQ!KJZ[X8BU">TFM=<L9)3%% 4:!TC1\[MQW9W$'@=J[JN
M:C\);+WP]='49"VB0O#"OEKB560(=_OM4=,<_E72T <#K46HS_%BTCTNZ@M;
MAM!F'GS0F4(//CZ*",GIU/Y]*;I?BO6KW2DCO7LK6[M=6ETV_GC4DOL4D&"/
MDLS93CG'S''ITFH^'FNO$%MKEI?26M]#;O:G,:R1O$S!B"IYSE0001^-4)O
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
M(7EB.O*BI;75+"^M-,TZ33;FPOFUF:)])DG7[.9DB+LKO@AH@&#  <G: ..
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
M]A<S&X"21E.&D"D8*ALC&[)Z@5TE>)W5A:V_PJ\:W-LGV>:/5[M%DA8H0HN
M N1U&.QXKJ]5L+31?&'AS28TD72=6N;F:[$TSR+/<B)?+5MQ/!PQV]"0.* /
M0:*\:\117%G%XLT^WFGCTNSU33&LPDK 0O*Z>;&N#]W!4[>@W\"N@7P]IS?$
M_4-(:.4Z=<Z/%=36QG<I)+YSIO;GDX_QZ\T >BT5R7PQN)KKX<Z/)<3/-((W
M3>[;F(61E&3WX %=;0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M?F8V;L@C&>H(Z\5)_P )#IOVM;82RL[3- K+;R,AD4$L@<+MR-K<9Z@CJ,4
M/TS0-'T62>32]+L[)YSF5K>!4+GWP.:C'AG01;"V&BZ<(!-YXB^S)M$G]_&,
M;O?K7/\ _":Z=K'A36;Z6[OM'MK>66 W?V9P\85MNX94C=D'CDCN :V;CQ5H
MVGWBZ=/>R/>BV^TB)('DD>/(&X!5.XY(X'/7C - #!I^L7NOA]1_L]=(LYO.
MLD@WF61MFT>9GY1MW,1C/.WICG>90RE6 ((P0>]<[!X[\-W*V#PZCOCOG$4$
MHADV;R<!&;;A&)&-K$'VJU>>*]&T^YF@N;LJ8)(XIW$3M'"[XV*[@;5)R.I'
M4>HH D_X1G0?LDMI_8NG?9IGWRP_9DV.WJ1C!/O5FYTK3[RQ6RN;*WFM5P5A
M>,%5(Z$#L1V]*R[7Q5;77B_4- 6"Y5[*&)VE:!PA+[S][&  $')(!)P,XJS;
M>)](N]1@L(KIA/<HTEMOA=%G5>IC9@%? (/RD\<]* )I-!T>:Q6RETNSDM5?
MS!"\"LF[KNP1C.>_6G_V+I?VQKS^S;3[4T?E&;R5WE/[N[&<>U/OM2M--2(W
M,A4ROY<2*A=Y&P3A54$DX!/ Z GM6)J_C*QMO".KZSI[M<26$<H,7D2;HYD4
MG;(N-R=LD@#!SF@#=L-.LM+M1;:?9P6EN"2(H(PB@GKP.*LUS?A>.[N(XM5?
M5KZ>"YM8Q):W4&P+-@$NF5! .<8 V^E=)0 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M5-!>!IC;.%60R(P4\=<*?Y=:[=65U#*P92,@@Y!%+0!Y(NGZ@/AG!8_V7?\
MVM=>^T&'[*^X1_;#+NQCILY_3K2^+X=7U2Q\4V@T/4?-^TP26BV=OMBN(E,1
M,KL,&23@C:<X 7C@FO6J* //KBPU&[\6>*(TL;N%-;T>&&VN2GR1.%E!#L#A
M2"Z\=:9X1 O7TF"_\):C::KIB[9;F\#&&)@FTM"Y8AMW0;>QYZ<^B44 <?XJ
MM;Z#Q9X9UZ&WFN;&Q:XBNXH$+N@E0!9 HY;!7!QDX;@=:Q-4TB\FL?B%JD%G
M=%-:LTMK.W$#>9*Z0,F_9C*Y9L<@<+GIBO2Z* ,_0F)T&P#1RQNMO&K)+&49
M2% (((S6A110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M7(Q:KJEY\1M1T.>WM'TN'3XI-K2')#LX)*[<,?EQC( '<YQ775S;Z'J4'CF?
M7K26U:WN;&.VEBEW!PT;.PVD<8._!)Z8Z&@#CO 7B*[T/P7X3MY-+0Z9>W+6
M*W N,2+(TDA4^7MQLXQG<#[>O0ZEX^^R)<W-GIWVVTM;LVLRQ2,9VVOL=DC"
M$,%;/&X$A2?3-&U\$ZQ;>%/#>D>;8-+I&I)>O)YCA9%5V;:/EX)WX_#WXN67
MAKQ-H^JZA!I>IV T._NI+H^=&YN+5I#F01X^4@DDC/0GH>X!U>IZC;Z1I5WJ
M5VQ6VM86FE(&3M49.!Z\5S]GXNN[C7+;37TM<7=N\D,T,S.D;J,^7*=@"9'0
MC/0CZ[FM:5#KFA7VDW#,L-Y \#LO50P(R/<9K&\.6'BZT2*#7-1TZYAM$VQ/
M;(ZR7) P#*6X7CDA0<G!SQ@@'%0"^O\ P3XHU>ZT^REO;&_U"YM[DW3>9#)'
MO4%3Y?\ "H '/( R!6YI-W9Z/9^'YWTVQCUN\TP112"=MIMT5&)=@F<[F7C!
MY/7K5JS\*ZQ;^#?$&BN]B9]4ENY(Y%D?:@G+'GY<G;N_'VHOO"NN_9/#M[I=
MY96^M:- ;;;-N>WN8F55=6P PY12,=,4 6-/\;O?V]K"=+>'5;F]ELTMY'*Q
ML8U+-('*Y,>W!!"\D@8[U2U[Q1XBM["RV:3'97#:[;Z?(99R5FC,BX:-@OW6
M'!)&1SP:L:OX9\0:E!I>J1ZE91^(M.N6N(OW;?92K)L>+&=VTK_%USDX&<"7
M5_#NO:SHMJ;F\L?[5M]0M[Y$57%NOE,#Y8/WN><MUR>@&* .I:<6]D;B[*1"
M./?*0VY4P,GG R!SS@5RI\<20Z=I&LW.FB/1M4ECCCG$^9(A)_JG=-N #D9P
MQQD=>W3S6@O=,DL[W:XGA,4VP%0=PPV.N.IKC[3P9J3>'=,\-:E<6LVF:=/$
MZW"%O-GBB;=&C)C"GA02&.0#P,\ %>.WGU_XC>)=+U;3[.ZTY;&UB,<D['9&
MQE.5&S[S$ GD8VCDX%:WC;5=2T/3=)&DQP?O]3M;1S)(5(1I%&!@'KT)[ ]#
M4^G:+J-IXWUC693:FTOX8(519&WIY6_!/RX.=_3/&.]2^+M#NM>TNUBL9H8[
MJUOH+R/SP=C&-PVTXY .* .8DDU"Q^*.KS:;I5K-?2:';2RQFX\J,L))<Y?8
M23P #MYP,XK6MO'D&HZ=I$UE!&MSJ-E]M$=S*46) 0,%E5B3N.!@=B>.AGAT
M/5X_&%YKCM92+/IL=F$#NIWHS-N^Z< ER,9.,=ZP+#P-XBT.PT"XTB_TY=5T
MRT:PG2<.T%U"6##) W*P(R,9H ['PSKC>(=$COY+&:QE+-');S Y5E.#@D#<
MIZ@XY!KS_7,>%?B8_BN "*P,D%AJBJ,*(Y1\LI_W7"Y/7!KTS38;V&R7^T;B
M.:[8EI&B4K&"?X5!).!TYY/7O6+=^')=7?Q!:ZG';G3]4A6(>7(2Z@*5R05
MSSD<\$4 <A\5';59]-M\[K"PU:R2=.JRS2./E/KMC.2._FCTKJ/$GBN?PU!J
M,J:5']BTZV2;S)Y_)6?.XF.'Y2&8*O3CD@=\UFWW@746\':-HMK=P37-G>07
MMS=7+L#/(C;CT!/)X&3P !S3]>\(:YJU[X@:.\L/(U;3A:1^>KN]H=C*RIC
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
M,MC&>V<]JS]%\->)M!N)=+M-3L&\/-</-$SQO]JA1V+M&O\ "1DG#'D9Z=*
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
M$2!^FW'.: ):*X./4]2\0V_BVXM=2FL9])O);2S2,+M4Q1JV]P0=P9B>#QM
MQ@Y-4M,UW6/$FN>'!_:-S86VJZ"]Y-!"B?)(&C&4+*2,[CUSP>,'F@#TFBO)
M5UCQ!!X*&N/KUU)<:=K'V'88XPEQ$+L0GS/ER6*GJ".@XSDG6D3Q#K7B/Q?I
MUMXFN[)-/,#6?EQ1?*SQ;\,2O*9[=3ZT >B45YGH/BG6/%R:79[A;3S:+'?S
M>7-Y+2.SLFY3L;@;,X_VQG-2K-XJCUOPGI&IZ\JW%W;WJWSV*HRNT6W:REDX
M;#<\8!Z"@#T>BO-;36?$0\,7/E?:]5;3==N+.X\HHMU/:QEL;>@+CY<XP2 <
M<G-6[3Q FIZ7HYL==NIX[B^GCDMS#LO)=H8^1VV%#MW,<<+UYY .]>1(UW.Z
MJN0,L<<DX _,XJL+\'5SI_V6ZR(!/]H\O]R?F*[-W]_C./2O++N_U+5_!^EF
M]O[I9K?Q9'9%E90SHMUM7?@88J /;(SS737FM7^C>-M2@>[GN[&T\.F_6W<)
MDR*[ G(4$DA1USU- '<45YQ+K>KV7A?PMXG34)+F34)K1;VU(7RG2XP,(,94
MH6&,'G'.:SM3U3Q!'H/C?4H_$-VLFAZ@_P!D01Q;658XVVO\G*_,1@8ZDG/8
M ]/MM.L;.:26ULK>"67_ %CQ1*I?ZD#FK-9&O0ZC?^&+M=)NGM-2: O;2(%.
M),94'<",$\&N&M?'#MJWAK59+ZX71+RS$-\K[?+@NBI*ACC.[]W(I'3)4]Z
M/4**XF2;4D;1;:XU.[,]XL]Q+8Q!1<-G!10_ 1(PV"21DXY.<'(L/$GB&X\"
M:!JTL%YJ">9.NI+8[1<LB.Z*ZJ,;L$ L%P3QVR* /3:*Q/#5]%K/A:VNK359
M;R.97V7A0+)]XCE2N PZ$8QD=*X+2=;UZ'P)I/B.[UZ>XN=1DBL3'*D:0Q%[
MC;YN0F0P7(R<C)'&!B@#UBBO/-:U'Q)X0T_6=0N;VV>Q>.$6B2S&:6WD:18W
M<DHN4&\-@YP1CH:T-?N-3\(Z=K&LIJQO+6/3B\5I=*&83J>9-PQ\F&7*@8],
M9H [,G S533+X:GIT%X+:YM1*N[R;J/RY$YZ,O8USEE9>)(]:AE;58O[*N;9
MDD#7 ED\[&5DB_=!>F<KTQR!7-PZ[KK?"KP_XK;4KAY+=DGU-45?](M_,(DX
MV\$#YN,< T >I45Q&M^(+JRTZ^UBTO,VT]Y;V%J69?*CW2*DDV<'NS#G(^0'
M!R:HZ]J?B7P=8ZOJ,]W;26,D,2VD<TYFD@G:58R^=BYC <,02<$8X!H [&;7
MK2#Q);:$Z3_:[F!YXV\OY-J$ _-Z_,.E:E<#-8R67Q9\/;[ZYN@^F7G^O()#
M!HLL, 8SQQT&. *[[I0 45YK8:[J@UWPL5U.:]M]3N;J&XN BK;S@1R.GE*?
MF 4J!NP P[MG-9]WJ_B&#POXCUH>(+MIM'UMX((S'$$DC66-=L@"\C:Q'&/6
M@#U2ZN$M+26XD5V2)2Y$:EF('H!UJOHNK6VNZ+9ZK:!Q;7<0EC$@PVT],BN8
M>_NO$.N^*=.6^GLX=(CCAB6# +2/%O,C9!R.0 .G!SG/$WP_C,WPIT*(2R1%
M].0;XSAE^7J#V- &SJWB*QT?[!Y_FR"^O$LXFA3<HD9MHW'H!G/Y&M:O&;*.
M=_A7X#D-Y,\T^KV+!Y<-L)=N1Z\\\YK9N_$FJ^'+CQ79/J4MXMG-IXMKB[V!
MH?M+;')*J!A?O#(X]Q0!Z;6;J6N66EW%O:RM))>7.?(M8$+R2 =3@= .[' '
MK69HUIX@L_$=Q]MO()-)FM@T4$EP99DF#88J=B_(01D<X.,8!K#T-F;XW>*A
M>']ZFGV@L@W_ #PP2^WV\SK[T =;::]:W6J#3&BN;>^,+3^3/$5^0%5)#<J>
M6'0FM2L+Q9JD>@>'M0UQ8$EN[*SF>%6ZG@$CZ952?I6!>:AJFBS>$[U-2GO8
M=6N([.[CD"D,9(V994P/EVE3P."#T[T =Y17DEWJ_B&'P=KNMKX@NC<Z5K<M
MO"ACBV21K<+'MD 49^4GH5KH3<:MI_C>^T@ZU=SP3Z*]\K2I&3!*LFSY,+C;
M@]"#TH [JBO)K+5?$MMX<\&^*)-=N+LZA/:VUY9/%&(G28[=RX7<'!(.<\^P
MXJ_>:]JEOJ.G7-OJ<UW'/XA%C))&JK;>2S,OD@'EF7 RX_B!&>U 'I5%>6ZK
M?Z^8/'TT7B&\B_L-A+9JD<7:W67:WR<KDD8X/J36O=:[>:/XCT35-2U!UT'5
M;,QO&P41VUUL#J<XSAE#@ GJ/>@#NZ*RO#HO#HT4]_+*\]P6GV2XS"K'*Q\
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
MQ*C.B.""0=Q3.W P&ZG%;>H:WI^EWEC:7=RD<]](8X$+ %B%+$_0!>OJ1ZT
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
MIK-A\&:+%X3?PP\#SZ2RE?)FD+$ G=PW7AN0<Y!K9FN[>W#&:XBC" ,V]P,
MG )S[T3W=M:QB2XN(H8R<!I'"@GZF@##LO!.CVNDW>FSBZU""[C\F4W]R\[&
M/L@+'Y0.V,<\]:=I7@W2=*L9[/-W>Q30FW87]R\^(3QY:[C\J^PZ\9Z"FZQK
M]UIWBKP]IT:6YLM2:<2RL3O7RXF<8[8X')S2>,/$,^B>"M0UW2A:W3VT7F)Y
MC$QL,X/W>OYT &A^"M+\/*RV,VH$!#%")[MY1;(?X8@Q(4=.V>*NZ7X=T[2?
M#RZ#;QN^G+&T0BE;?\C9RN3R1R>OK5^6[M[:)'N9XH0^ #(X4$GL,U/0!D/X
M9TB7PNOAN6T632A MOY+$\H ,<]<\ YZYYJC:>!=%M](N],N!=ZA;W4?DR?;
M[IYF$8Z(I8_* >1C'(!["N@FNK>W>-)IXHVD.U [@%CZ#/6DEN[:"58I;B*.
M1QE5=P"WT% &!:>"-,L[VROC<:G<W-E"\,#S7KL51L9'49^Z.OXYXJYX9T1M
M"T-=/>>:90[LHGF,K(I)(4L>3_\ 7/:IX-<L+O5KW2K:YC>]LT1I4W#Y2^X@
M'WPN2/0BI-,N+DZ7:OJ<UD;QU D:U8^4S^B;N2* ,*U^'F@V:V"P_;@NGS--
M:*;V0B'((**,\+ACQWZ'BII/ ^DS:3J.ER/=M::C<FZNE\[EY"0Q.>HR0#@8
M''UK=^WV?DB;[7!Y1;8'\P;2WIG/7VIT]W;6H4W%Q%"'.%\QPN3Z#- &+=^#
MM,N]7;5/-O(+R6$07,EO<-%]I0=/,"X!(]1@UH:)HMGX?T>WTJP$@M;=-D8D
MD9R!]2?TZ4EWKFGV6JV>F3W,:W=V&:*,L,[5&2Q]N@^IJXUU;K<K;-/$)V&5
MB+C<1Z@=: .=B\!:+!IEGIT)O$M;*Y6ZMT^TLWENI)3&<_*I)PO3GG-69_!^
MD7=QJ\MW')<C5XDBO(Y7RDBH"$P!]TC)P1@]^M;U0Q7=M/-)#%<122Q_?1'!
M*_4=J ,KP_X6L/#B,+6:]N&*A%DO+IYV1!T1=Q^5?8=<#/05)J_AK3]9N[:]
MF$T%_:@B"[MI3'*@/5<CJI_NG(]JT?M=MYB1_:(M[DJB[QEB.H [D5G^(]7_
M +&T.\NXGMOM44$DL,4[[1(54G'J>G:@"6'1;5(9DN6EO3-&8I'NFWED/5<<
M  ]P ,]ZJ:=X4T[3/L8C>YECL0191SREUM@1M^3//"D@%LD D# )JYH-_)JG
MA[3-0F5%ENK2*=U3.T,R!B!GMS5J:[MK<,9KB*(+C=O<+C/3KZX- & _@?29
M-&OM)=[MK.^N3=W"><<O(6WDYZC+ ' XX^M3W^@VR7TVN;KN:_2Q:T7:=VZ,
M\[=H&"2V#G^E;,MS! ,S31QC!;+L!P.IYI)+NVA:)9;B)#*<1AG W_3UH X[
MP)X8%OX1\/QZHEY]IT^)2MI<GY8)@""P&.>IQDD#/&*N'X>:"5* 7RQ"]^W1
M1)>2*D,N[<2@!^7))Z>IQBNG-Q"LPA,T8E/1"PS^54]1N;G[)G3)['SEF19#
M<L=@7< P^7G=C./?% &?)X-TR2+68V>Z*:R,7H\W_6#;LXX^7Y1CC'%9^I:;
M)JKV_A6319WTBV:WE:_N'1D9(R&"*,[BV5"G(Z%CGIGH-:U(:9I=Q.DENMPL
M3-"D[[0[ 9QZG\*JZ!K@U'PAI6M:@\%LUW:13R?-M16=0<#)Z9/K0!M44BL&
M4,I!4C((Z&EH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M-"L1AC,:_=0J,#Z"@#S36=0TK_A-=1L?$NJBPL+W3(5L99?*\F6/Y_-4/(K
M-DJ>""1CK@5W7AJU@L?#>GVMK-=36T4(2&2[/[UD'W2W [8[#C%7Y+.UE2-)
M+:%TC.Y%9 0I]1Z5-0!Y3JT^BW?B;Q7HGBS5WTX7/E_9A((E$ML8E \IG0G<
M) YPISN.0,TW6C/I#7M_:21:Q8PQ6<>I:7J&%O$*HGER1L/XSN!VD8+!L<UZ
MG+;0321R2P1R/&<QLZ E#Z@]J1[.VDN%G>VA:9.5D* L/H>M ' Z>FDI\1_&
MEM>1V:R3P6KI'*JY=?)?>0#U'J?SKF=-BL+GP7\+//6!R;Q8B6QDJ8I=RGVS
M@$5[,T$+L6>)&8KM)*@DCT^E,^Q6N /LT.!T'ECB@#R>ZTK1"_Q1@^QV7DVT
M*R0Q[%VPNUH"S(.BDL!DC!R!Z4EYJNG75D()IK=+]_"<6^>[??YZ.K?)"F0"
MQ8<MS_",'MZU]CM26/V:'YOO?(.?K2BUMU9"((@4!"$(/E!ZX],T >4:?=Z9
M+J'PSO;J6U='TB:)II"I#2B*'"Y/5L[ACKG/>H[%]%UB*ZTS7]9NK7Q!;:Q)
M+]DC\I;AY1*6B:(E"[ IL (. O' %>N"WA"QJ(HPL?W!M&$^GI2&V@-R+DP1
MF<#:)=@W >F>N* &WLR6]A<3NLC)'$SLL?WB "<#WKR+0=1TJ3Q%X"DM;FQ2
MTFL+J%;>-][1JR1E8Y7)^=R>HP.<\=Z]DJ%;2V0 +;Q*%)( 0#!/7\Z /$X+
M32;?X=P:A#%:I=0>)P(IU"[HU%\1A3V&TG@<8)/>MJ[U'3Y5^(UEK\ENNHD2
M"WCN2 7M?)'D^7GJ-VX\?Q'U->H_8K3;M^RPXSG'EBB2SM9G5Y+:%V52JLR
MD*>H'M0!D^"IHI_ N@/#(DB?V? -RG(R(U!'X&N.&D>&[[XC^-(-:M;%X39V
MDK+.%  V2!Y!GH1Q\W49Z\UZ: %4*H  & !VKFK/PS)'XQU?6;P6<\%\D"QQ
M%,M$8@P#9(P2=Q],>] 'G7A[2+>YU#P!9>(+>*>>72+U)([I06DCW)Y2N#UP
MG0'H1ZBM^Q33/MWCC2=?CMX0@40)* H%B(0(_+S_  J0_3HQ]:](:W@>42M#
M&T@Z,5!(_&DEM;>>2.2:"*1XSE&= 2I]B>E 'EKV^H:-X2\&^,=3AD?4]*CC
MBU'*;I6MI0$;(ZEERC>N0WJ:N^-;"&S\$6=S>PPQWLVL6EU*S 921YT+ '_9
M7Y<^BUZ2RJZE64,IZ@C(-,E@BF $L22 = Z@XH \TFU'3WU[QY8^()+=+EH%
M%HET0 ]J8?E$>>HW[B<?Q&L?1M8L+:#P8-6U06>D2^'DA@N3Y;0K<C:)$<NK
M*K;0!SCH1WKV&2TMI71Y+>)VC!"%D!*@]<>E$MI;3P""6WBDA&,1N@*C'3B@
M#&\%V&GZ;X7MK72;JYNM.1G^SS7# ED+$_*0 -G)V\=,8XQ6_0    , =J*
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
M_BP:+ZH:Z/6O%.GZ%J-C87,=W)<WPD\A(+=GWE%W$9'?V]^PYKFO$/@2*Z\
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
M))HI89"C*RC(/'7Z&N.U#Q$MGI?AV3PYX@DOM=NI;=7L/MGVD7"L!YF]23L
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
MS;29V2Q,&5L$@X(]P1^%6*\[M/&NJ'PAX8U*VTW3UDU74?L4D(9D2/+R %<
M_P!SD^^<'I6A;>)]=QXFL9;&RN=3TAH3%Y+F**1)5# MO/&T;B>><<8H [2B
MN%7QK?;/%4<2V5Y)H]E'>03QJ\4<ZLCMC!+=#&>0<'/:G6/B_5DU/P^-5@L$
ML=9L9+A3 7WPLD:R'<3P003P!QZGK0!W%5[6_M+YKA;6YBF-O*89A&P/ER
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
M"M%U>437X4B601B/?R<,5'"DC!(' .:Y_3/!FI:/?SP67B*2/0)KAKC^SS;
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
M003W+3M$9(I-WS,2>=H.,D ]#70OX#\-2Q7T<FF*XOEC6Y+2R%I-F-I)W9W
MC.X<YYSDU-#X-T&":ZFCL66:Z@%O/)Y\A:1!GJV[)/)&[KSUH B\!\_#OPWS
MC_B5VW/_ &S6N N1K,G@[Q5KD?B;58[W1=3O#:#S_P!V4B;A'7&'! Q@\#C
MZY]6T[3K72--AL+&)DMK= D49=FVJ.@!8DX_&N0\*^$R!K1UK3IX_M6L3WL<
M3W.Z*1&?<A9$<J2,#(([#KB@#$\6ZSJ!T?Q'J-EJ%Z+VQLK>;RXI6ABT^38'
M*D _O6;()!4@# )%;6M:I)X5\76.LW]Y='1-0MG@DC:5C';W*KO4A<X^=0RX
M]0/6MS4/!7A[5+N^NKW3A+)?QB*Z_>N%E & 2H8#<!P&QD=C52YTR\O[^'1'
MT6"'0+.6&=+I[@2-,4PX4)C((<#+$\@'UH Q+Z#5;/4_!=I-JNH0R7]S<?;8
MUN"PR87?9DYX4X4?0'KS63=KJ$/AWQWLU[5P=!GD>P;[6Q9,0I* S=9!DD88
MD8KTN^T33]2O[*]NH7>XLF+V[K,Z>6Q&"<*0#D$CGM51O".B/#J<+6LICU0[
MKU3<R_OCC'/S>@ X[<4 <P;_ %'Q-KFH:0ER;>2'3;::'R[R2V8-*K%I1L'S
M@':,'@8Z<U$D>K7'B_0=*OO$%U,LNCSF[>RE,2321O&N\8Y4G)Y'/7&*Z74?
M OAS5C9->Z>9)+*/RH)1/(LBI_=+JP9E]B2*N_\ ".:5_:5MJ"VS1W-K ;>!
MHY701QG'RA00H' [=AZ4 >9,T^I^&/"HO[R\N);?Q4;(3-<NKO&LLJ@L5(RV
M%7YNO'7DU[ BK&BQJ20H &YBQ_$GD_4UA_\ "&:!_9?]F_8G^R_:?M87[1+E
M9L[MZMNW*<DG@CJ:6R\-6ECXINM;MXA"\]LENZI(Q$@7;M)4G:NT+@8'<D]>
M "AXBNKN/Q;HMM*UT-(F@N#*+,OYAE&W:6\OY]@!;D<9(SVKE9U\1V/A+07O
M=7U2"\N=?AA)>0!_L[3%4##'4IM)!_'N*WO&&@W&J^(+2YG\/OJVGPVS1Q_9
M+[[-/%(S L2=R;E(5<8;KG@\59TOP79OIP@U&"[%NETMU:VDFHS2FV=0,'?N
MSG(SC) /3O0!G:E:26%\='MM:U>]EBTV:<0/=LCQ[G.)I)P0Q P45<-T]LUF
MZ??ZIK,WP\\_5[Z-=4TJ=[P0R[/-98HR&X'!RQYZ\\8-=W?^%]&U/4HM1O+,
M2W4<)@#^8XW1DYV. <.N><,"*@L_!>@:>^G/:63Q-IRLEH5N)?W8; 8?>YR
M!SG@ =A0!YU?&>]\)K:WE[>7 T_Q@EE#+)<OYAB%RH 9@06(!X)Y& 1S7INO
M7LF@^$]2OK2-II;&RDEB1V+EBB$C))R>G/.:KGP;H+:==V#63-;7=Q]JF5KB
M0DS;@V\-NRK9 .016S%;Q0VRVZ(!"J[ IY&/QZT >>W%Y?:?IG@S6K'4KNYE
MU.YMK>\229GCG2=,LX0G:A4_,-H  !'2K7@>TO+^\U+4+S6]4G-AK%[;10-<
M?NFC#;5#KCYL=1Z?GGI+#PKHVF-";2U9%@+-!&T\C1P%L@F-"Q5."1\H& 2.
M]6-)T/3]$6Y73X7B%S,T\P:9WW2-RS?,3@GOCK0!S_C:>XT6[T;Q$EU<I86E
MVL6HP+,PC:&3Y!(R@X^1RI]QG/2J.KZM=6=G87<=S(D.NZPD*M)<NJQP%&V!
M6YV;]BG(&?WA'& 1V]_86NJ:?<6%["LUK<1M%+&W1E(P14&J:)IFM:2^E:C9
MQ7%BZA3"PP !TQCD8[$=* ..N[#Q1IMOJ4-GJ"7ADN8)[;36OG\X1\^9$L[_
M #?-L)7/3##I6'JMY::[H.ENCZO#)%XHM(9[2]GD6:V8LF8R=WS#HRMDXW<8
M-=]:^#="L]-2PM[22.%)EG#"YE\SS ,!O,W;S@<=:EG\*Z+=:=+83V9DAEG%
MS(3*_F-*,8?S,[MPVC!SP !TH Q8C=+\3KO25U"\^Q'0HY4C,Q;RW,S)N&<_
M-A1R<GWKE-"O=43PWX UR76M1GNM0O4M;I);@M')&ZRD@IT)!4$,>??& /2%
M\-:5'J1U&."1+LVPM/,2XD&(AT4 -@#//'?GK5>/P9H,5AI]C'9R+;:=*)K2
M,7,N(G&<$?-VR?S/K0!QVH2^(K^WUV&VFU)=<BUE8[(V[.(!;;DQDC]WCRRQ
M;=R#[[:[7Q)J$_A_P;J=_;!KBXL;*22/S.2S*A(+>O3)KB8_!\\]_>/J'A>X
M^WSW,DIU"RUIX(&W,2K;5<,I QGY"21GG->CVELT6FP6MS*;ITA6.620?ZT@
M8)(]_P"M '"W-U>Z5%X+U6QU&[NSJ=U!:WD<L[2).DL98R!2<(5*[OE &,CI
M4GAV:X\3^'[+Q"^N7-E>)J+M<(LA,01963[.8L[1E=HSC=G![UT^G>%]'TIX
M&L[5D%ON^SH\SND&[KY:LQ"<$CY0."1TJ&'P7X>M]=DUJ'342^DD\UV$C[#)
M_?\ +SLW?[6,T <]I<UQXHTW4M3;7+G3KRQU::,^7(?+@CADQY;1Y"MN09)8
M$Y?/8"JM[?WL5O\ $V-;^[4:=");,_:'S WV02?*<Y W<XZ?A75OX+\//K[:
MV=-3[>[*[N)'".R]&9 =K,.Q(S1J'@W0=4OKN\O+$R37D/D7.)I%69<%1N4,
M%) /#8R.Q&* .1CBU#7/%>F:=+KNJVUM=>&EN9!:W'EMYOF1C<#C@\]?PZ$@
MSG5+W3/%D5OK?]H+;7.I;+#4[:Y9[:0$E5MY8P<(V?ESCEAG/6NMM/"VCV.H
M6U_;6KQW-M;_ &6)A/)A8NNS;NQC(!Z=13D\-:4EUYX@D+?:3=!'GD:,3$DE
MPA;:#DD].O/6@#6HJEIVDV.E&[-E#Y1O+AKJ?YV;=(V-S<DXZ#@<5=H ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *A-W;+=K:-<1"Y=2
MZPEQO91U(7KCWJ:N#U\7,7Q5T233K>"2[DTJ[ ,S;%X>+EB 20/0#\NH .\H
MK#\):]+XBT%;VXMTM[E)Y;>>-'W*'C=D.TD#(.W/XUN4 %-,B!BI==P&XC/(
M'K3JY6_\+:G=SZ^8M?,-OJ:1F&(VJL;>10H)))^="%&4/'+>M '0OJ-C&VU[
MRW4X!PTJC@\CO4D-U;W(8P3Q2[>OEN&Q^5><^(X9;;XB^!EO(#JUTMC>),8X
MHU,S!(\MM8A1SDXSQGBNDLFF\C6;[2M 2SU)&6!;>X*Q^>$0.N2A8#)D8 \]
ML^P!T]%<GX9\7S>(;%M1>U2VLK:#_33)N#PW"Y\R+!'(3 RWOQWQ+IVNZOJB
M:/?1Z1')I.JH7)63]Y;1LFZ-G!X;<, @?=)ZF@#H;:[MKV(RVMQ%/&&*%HG#
M ,.",CN*FKR?PYKU_P"&O#T]S%I]L^E#Q#<6TQ,I611)=% 44+C"EAU///3J
M>E\2^,[SPZ;ZXELK=+6TFAC2.67$MVCE [QXZ!2^.0<E3TH [.BN0O?$NM_\
M)/JFAZ=IED\EI91W<<T]RP5PQ<8("Y!RG3IWSVI+#QLVKP^&$M+98;C7;62Y
M!F)9(515+#C&XY8 =.,GV(!V%1S3PVZ!YY8XE+!078*"3P!SW-<78^/;FXTL
M37.FQ0W4FI2:9#'%*\P:2/?YC$",':!&Q &[/3BG>4WCNPU;0]>T@PI;3)Y=
MS);2+',K*2)(@X!5U^8=]IP><XH [))X9)9(HY8VDBP)$5@2F1D9':I*R;/P
M]967B*_UJ&*..YO41)#&FW=M[L<_,??L!]:S+[Q#JX\8S>';#3[-G&G"]BGG
MN&"G]YLPP"Y'0],Y]10!U-%>?V?C[5+C2-"UF72+:*PU"]2PF7[26E21I#%N
M4;<%0X[G)'I5S5/&M["-1ETG2I=033[G[/)!'#*TDY&-^QE4J"N3P>N#TXR
M=I17$^(?&UYH4=W=R6,,=K;RP+'%/)MFND<IN=!_"%WXP0<E3TJQ>^)=;_X2
M?5-#T[3+)Y+2RCNXYI[E@KABXP0%R#E.G3OGM0!UU%</'\0H+BP\.SL;;3_[
M:M&GCEO7/E"0;?W.X8^8[C@GLO0YQ776LMW-I,,TL,<5Z\"L\1;*I(5R5R.H
M!XS0!)<W=M9HKW5Q% KL$5I7"@L3@ 9[D]JFKQZ[U'4]9^%FEZKJBP3W+ZU
MT;1YW9^VD$#/W1P .>E=>?&MQIEUX@M]<LH(GTNVBO$-I*T@E23< OS*/FW+
MCT.1TH [*HC<P+.(&FC$QZ1EQN/X5SNF>(M3N/$::;=Z5)]FEMS,EY%!,D<;
M@\QN74<XY##&<=!5+XA^'U\0IH5K%.UG>_V@3;7D8&^%UMYG4@^FY%R.^* .
MOGNK>VV^?/%%NZ>8X7/YU*"" 0<@]"*\YM?$;Z]I]OI>MVT=OXATO5+1+VW(
MR"?,7;+'ZHPY![9Q]=/7_&=YH,MQ-/96\=M#>0VZ0R2XFN8W9%,R =%#/C!'
M.T\B@#LZBN;JWL[=[BZGB@@09>25PJJ/<G@5S+>+7F\47>B6OV-;JTN(8VM;
MARDTT+A"TT?8A0S<#/W#R.*Y[QWK-QK_ ,//%DME;6SZ?9B:U+3$[Y&3AW7L
MNTY ZYVGIQ0!Z6K!E#*001D$=Z6N,UWQ3?:!IUS.EI;+;66GK<H]S+M^V,%8
MM%'CD$!<DD'[PXQS6BOB.74=1@T[2HHOM#V*7TKW!.V)')"+@<EB0W<8 SSP
M* .BJO-?6=M/'!/=012R_P"KC>0*S_0'K65X1UZ?Q'H7V^XMDMI1<30-%'(7
M4&.1DR"0,YVYZ5QFLW=QX/\ $>MWGB'0SJOAO575VOXHA*]JH0+Y<J'GRQ@D
M$<<GJ3B@#T]65U#*P93R"#D&EKSU]2N+&X\!Z;X:NK6;1[E)$21F;]ZL=NVT
M$CMC!]<@=,5IW/BV]DL-<U+2K*"XM-&FDAECDD*R3F( R["!A<<@9SD@].M
M'7U";NV%VMH;B(7+(76$N-Y4<$A>N.1S[US,/BZ?7%N/^$:MX;DP6,-X3<,5
M\PRJ7CB '0E1RQX&1P><86IZQ!I_Q%T#5-1MOL-S<Z),IMV*M(9FDA"Q9'#-
MDXZ_D* /2:BBN8)W9(IXY&3[P1P2OUJ'37U"2QC?4XH(;EAEHH'+JGMN.,_E
M7FFN,?#'Q)F\71_+9&YAT[5 .@BDC39(?]U\9/HU 'J4T\-NF^:5(DSC<[!1
MG\:>K*ZAE8,K#((.017E?Q*8ZKJ^AG.;+3]>L;<K_#),[!FR.^U-H_[:,.U=
M%XK\97OAJ+4[IK*W6UL4C>-9I</>@\OY>.FT$<D')]!S0!V=0P7=M=-*MO<1
M3&%_+E$;AMC8!VG'0X(X/K7+:GXEUU?%DN@:3I5E/(-/6^CEN+ID5@9-A! 0
MX/!QU^HZ5A^&=4^P^(/%>DZ7%;R:G-K;2);,VQ4B$4(>1L= ,\<<GCU( /2Z
M*Y'5O%E[;7&I6FF60N[O38D:9!#,PFD9=_EJ44[3M(Y/=AQWJK:>(-:U#X@:
M=;+"MK83:+]M:UN RRHS21A@XQ]]>0![GGF@#LYKF"V ,\\<0;H7<+G\Z='+
M'-&)(I$=#T96R#^-<1\8T5_A5K.]0V/)(R.G[Y*[A$6.-410JJ,  8 % $,5
M]:3R>7#=02/_ '4D!/Z58)P,GI7!^!X8D\<>/&2-%8ZA#D@8/^I4_P R3^-)
MXXN9+[QCX1\+2,1I^I33SWB@X$RPIN$9]5)ZCN!0!V=OJ5A=EQ;7MM,4(5O+
ME5MI)P <'CFK59>H>'].U#[$7MHDDLIXYK=T0 QE&!P/0$#!'O6I0 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 5S][H5Y<>--/UZ.> 16EI+;>2RG<_F%23N[8V#
MC%=!10!R>B>'=:T/2Q:6VHV>Y]4>\F<P,0T,DC.\8&>&YP&_2NLHHH ****
M."\2*\GCG2]6BNC$VDQS1")M-N91)YJJ"=Z#'&!TS4LNNW\PNW_M)HI6A$5L
M(M'NML1)^9VRIW-C&WH!SUS7<44 ><6=OINF>(+JXL);F+2+^V6*]L6TRZ8R
M2 $>:&V<,5X/][J>>:9X8DN]!@M]+GUNXN='LN+51HUREPR#[B2/MQM7CHN3
M@=L@^E44 >4-IRMX4N=%^WR;YM5_M'SO[)NL#]^)MFW;ZC&<].U-UC37U.+Q
M%;IJ\B0:O+%.&DT6Z>6)DV8CW8 \L%.!C/)KUFB@#SZ&Y$7BB_UI[N21KK3X
M[/8-)NEPR%CN^Z>"7/'ICDUR5]J%IH&F>%]%?6[6UDTN"0I<:AIMS&DK<*NP
MC:ZL 6S@XP>>U>W5'-!%<)LFB21<YVNH(_6@#R:*[7Q!X=MX(KR"SN--NDO-
M+U'2=+N6MV;Y@P9"ISU8-R<[L]017=>%;Z\O%F.I7QN;TA=RQ6$UM#&HSC:)
M.23DY.?3@8KH@ H    X %+0 5SS:%>CQR_B%)X#$=.^PK RG=G?OW%OKQC'
MXUT-% '!0^!=2A\(Z3H8O[4OI^I+?^=Y38?;,90NW/'+8SGM5I/"NO:;KVH3
MZ+K=O;Z7J<WVBYMYK8R20RD .T+;@,MC/S @'G!KLZ* //\ 5_ .JZA#XBM(
M=9MUMM6EBF5Y[=I)HRFS"%]W*#9QQGYC]:V8?#VIQ>*+_6GN[61KK3X[/8(V
M7#(6.[J>"7/'ICDUT]% '$6'@V^L_"^G:!<OINI6%O:&VF@N8F"RG/RR#KM(
M&>.^>HQ72>'M(_L'P[I^D_:'N/LD"P^:_5L#K[#T'85IT4 < G@+5(O"5OX?
M75+1H;74$NH)#;L#L6<S!6^;DDG&1@ #H:NZGX)DUK5M=GOKF,6FK:?'9&.(
M'?$4+,'#'@G+=,=A7944 <[X>TSQ+:%!K^M6U\D"[(OL]N8FE/3?*2QR<=@
M.<\\8NZMI]Y>7^E3VTD")97)G99 27S%)'M&.G$F<\]*U:* .;U[P=9ZUKVD
M:VK&#4-.F5O,7_EM$#DQMZC."/0CWK$U7P'J]_!K]K'K%J(-3OHKY'EM6>5&
M1HV$9;<,H/+X&,\UW]% '':SX/N]?D1-1FLI/*NHKFVO4B*7%L$*EE3D_>*M
MSG@-T;%9]WX!U8:7XBT33]5M$TC6'EF59X&:2W>3EU4A@"N>1D9&>]>@T4 <
M)?\ @C6+R;5\:S:F+5-*73Y2]HQ:+",O[OY_E5MV2#GD5)#X0US3M4T[5=.U
M>R6[2PCL+Y)K5FBF1"2KJ X(89(ZX/M7;TC*&4JP!4C!![T <9\+6#>#Y )1
M(1J5Z"PQS_I#\\?G6H-/U^UFOQ;WEA<6]U,TD4=S$X-N" ",@_.,Y.,+U/-;
M<-M!; B"&.('DA%"Y_*I: .(@\ R:78>%[?2=0CCDT*25@]Q 7642JRO\H88
MY<D#.!TJ9/"%]9?V_9Z=?0)IVM2R3R"6,F2VDD7$A3!PP/4 XP?7I78T4 <0
M/!6HZ+K,=]X4U*VLX7LX;*YMKRW:9&6(;8W7:RG<%XZX-/UGP(=<U:WFO[B.
MZLH].DL9$E!\R0NRMYFX<*P9 1@<=L5VE% &3X<L]6T[1H+/6+^*_N85"?:D
M0H9 .A8$GYO4]ZHW/AI]47Q!:ZFT$ECJR!-B*=T>$"9R>">,@\8-=)10!P]]
MX$N9/#6@:/9W\8.F7D-]+<7",[7$J,68GGC<Q)SDXJ+7/ NK:NWB6--6M8[?
M6X(U/F6[/)"44#8K;@-F1GIW/<YKO:* .9M/#^I1>,TUZXO+61?[-6Q>-(F4
MDAR^\<G')QCGCO6)/\/K]KR^U.WU&VM]6?4_[0L[I8F/D JB/$PS\Z,J8(XZ
M^U>@T4 <;<>&?$-OXDGUK1-7LK5]0CC34+>XMFEC+H-HDCPRD';Q@G''-76\
M-7D?BS3]:M]14B&P-C<K<1%WE7>K[@00 Q*\\$<]*Z6B@#G?''AVY\5^%+O1
M+:YBMOM.S=-(A?:%=6X (S]W'6I?LGB2>:V6XO\ 3H[=)%>86]NX>0#G:"7(
M ) SP>,BMVB@#CM+\-Z_I.N:YJ5O?::PU6X6<QR0.?+*J% R&&> .PJ34O"%
MWK%C8W%UJBQZ_8W375M?0P_NXV/&SRRW*%,*1G)QG.:ZVB@#)M(=<F,8U*XL
MHT0AF%FKYD(]V/RCU'.?6K.G1:C$;O\ M&Y@G#W#-;>5$4\N'C:K<G+#G)J[
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
MZM&C/EVJ_/AEPN26P<X)^[3]/\9Z#JE[9VEG>L\M[#YUL3!(J3* &.URH4L
M<E<Y'<5ST]O=+XK\;3_8;PPW6EP0P.MNY$KJLH95..3EU_R*I6-G>QP_#-6T
M^]5M.B*7G^C/^X/V4Q_-QQ\YQ^O3F@#T/4-0M-+L)KZ^G6"VA7=)(W11_GM6
M</%>C^5J+O<R1?V<BR7:2V\B/$C D,5*Y((!Y /0^E1>-'OH_"-^VFZ>M_=
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
MD5L(AG>OELQ#9Z'.\\?K70T4 <-%X&O+?0-2\+Q7D']A7LTCJQ!\Z"*1MSQ
M=&Y+88D8ST.*OS>$WN/%=Q?R-!_9D^D?V4;=<APFXMNST_BQC\<]JZJB@#CO
M#OA[Q1I-K%IE[KMK<:;9IY=J\=NR7$B@802-NQA>.@R<#)ZYDTOPE-#XGMM?
MNQ90WT=H]O<R60*_;F8K\\@(&,;3@?,?FZ\5LW>OVEEX@T[194G^TZ@LC0L$
M^3]VNYLMZXQ^=:E '/>)=#U#5;S1[O3[N"-M/N3,T%U&7BERA4$@$?,N<K[U
M@GP%JAT+4;(ZI:-/-K(U:W?[.P4-YHE*N-W()&..GO7?T4 0>5.]B8I9P)VC
M*M+$NW#$=5!)Q[<FN&TOP/KMC)X:DDU/3G.B&9?EMG!N%D0J78EOOGJ3ZDGG
MI7H%% ' ?\(/JG_")#1?M=GY@U7^T?-PV,>?YVS'UXSFI-;@TGQ9XLTFWL[Y
M'O\ 3)Y%U%+=]VV#;EHI/9G$8P>N&]#7=TQ(8HW=TC16D.7*J 6/J?6@!]<+
M/X)U-M!\4Z/'J%I]GUFXGFB9HF#1&8@MN.><<XQC.:[JB@#EQX?U'_A*-)UA
MI+7;8V$EF\0+9<N4)8''&-@X]ZR)? ^J2^#M1T/[79B2\U,WXFPV$!G$VW'?
MD8SGOFN_HH XS_A&?$6G^(;^]T/5K*WLM4=9KNWN;=I3#+M"L\1!7)(4<-QD
M?A753V45SIDEA.7DAEA,+EFRS*1@Y/KBK-0W=Q]DLI[GR99O)C:3RH5W.^!G
M"CN3T H X*+P/XB31M$T9]7T][71;Z&>VG:W<R/'%G:K@,!D# XZ^W>;5O!&
MKW<?BJRL]1LXK#7OWC&2%C+'(8U0@'.-IV@YQGJ/>NXMI_M-I#/Y4D7FHK^7
M*NUTR,X8=B.XJ6@#E[/P[J5OXPM]:FN;62./2QI[HB,K,0^_>.3CGC&3ZY[5
M0O/!NI7=OXQA^TVB_P#"0@!#\W[@>4(N>/FX&>W-=O66FO6DGB>70 DXO([4
M799DPA0MMX/<YS^5 &-+H5]#K>B:U-+;B'2+&:"6- S-)O"99>.WEC YSFN)
MT"]NXK:TU&QO_"FI%I7NH;3=(ER9)"2RK&'9$EPQ4X7CG/&37L=8D^IZ7IWB
MBRTS[&4O]225TF2 !6" %MS^O(]>M %_5;$:IH]]IYD\L75O) 7 SMW*5SC\
M:Y6'PGK*Q>$Q/>6,C:$^6V(ZB5?*,0 Y.#@EL^O&*[:B@#@;OP%J%XNL2+J4
M5K>7&J1ZK8SQ*6^SRHBH P/W@0#GI]X\5T^AVVMQQO-KU[:3W+ *L=E$T<2
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
MR9XMMS'L9MIQN [J<9![B@#"\3>&K^^OM+U;0+Z"QU/30\<:SQ%X98G W1N
M00/E4@CIBKT.A)?6*+XDAL=4NMYD.^V!BC) &(U?<0, =\DY/?%;5!.!F@#D
M=4\,7\WBO1-6TQK"WMM(@FABMF1@&$BJ/X<!0-HP!FHI?!=[J&OW^O:AJB1W
M\NFOIUI]CB*+:JV27R3EGR<CH!Z=ZZC3+[^TM.@O/LMS:^:N[R;J/RY4YZ,O
M8U;H X32_!FMV>H:#=RZCIR_V98RV3)!;,H96V?,"6^\2F2??H:'^'_]J7S7
M>JBTAN)M.FL;V:P!0WOF #>X(P"N"0/FY/7C%=?JNI0Z/I5UJ-RLK06T32R"
M)-S;5&3@?2I-/O8M2TVUOH0PBN84F0.,$*P!&??F@#F-(\.>(O[/.D^(=9M;
MW3HX&MT-O T<TZE2F926(X4] .3@YXYS(O!/B-=)T+29=7T][;1+Z&>WG-NY
MDDCC#!5<;@,@$#CKUX[]IJ6JP::;:-U>6XNI#%;P18WRL%+$#) X56.20.*J
M:%XBCUXSB/3=3LQ#C<;VV,09LL"JG/S$%3G''(Y.: +NJZ9:ZUI-UIE]'YEK
M=1-%*O3((QQZ&L31=+\2Z-I\.E&^T^\MK=!%#>3(ZS!!PH=!PY XR&7..E=/
M10!R]QX:O+;Q3;^(=,NDDN?L?V*[BNR0)T#;E?<H.U@2>Q!!QQ6?)X&N8TTY
MK>YMS/%K3:S=NZE1+*P8%% SM&& !.?NCKFNXHH Y!_"^HM>^+9Q/:XUV%(H
MP2W[G;$8\GCYL@Y[=,>]8:65_I'CCP=IL;VDMU9Z%/ P9F5954PKD'!*DXST
M/0CWKT W^-773_LMT=T!F^T"/]R,,!L+?WN<X] :>]E:-<"Y>UA:=>1*8P7&
M/?K0!QMWX!NVLQ>6&II;>(%U-]46Y\K=%YCKL,97.=FS"]<\9[XJQJ_AOQ!K
MOAS[)J&HV)OI+F"=C%$Z01K%('"JI)))*\L3WZ<"M[0]>M/$%O=36B3(MM=2
M6D@F3:V]#AN/3-:E ')W7A[67\4W^MVEW:027&GQ6D:L&?8R2,^X],@[B"..
M.]95Y\/)Y[?7'L);32IM3%ONMK8,UNS1.69G'RYW@[6  X'?)KT&N9/CG2D0
M7$L5XFGO!)<17YAW02*AP<%22">P8#=VS0!GCP9J=Q>>(I;S4;,1ZWIJ6<B0
M6[#RF5'0%<MT ?\ '':G_P#"+:Q)'X5\^\L7?1)1(^Q&42 1&( <G'!)SZ]J
MUK/Q.+O7CI#:-J]O.H+-+-;CR5&,@^8K%>>0 #G(.<5NT <6G@Z_L[77]*L;
MRW&E:S++*3(I\VU,HQ*%'1P>2,XP3WJU9^%[C3?%<6IV9MQ90:2FF0V[,P8!
M&W*Q./PQ^.>U=510!@^#=#N?#7A:TTBZFBFDMBX$L0(#!G+=#T^]C\*WJ**
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
MQ'EF*'S[MY?L\9_AC#$A!P.GH/2@#BK#7=?O_"7@&Y&M3Q7.JW9@NY!%&WF
MI*V<%>"-HQV]0>E61JFLZ/=^*-"N?$,C1VHM)K/4;F%7F19G*M%A5 9SM(7C
MJ15K7?"B:?!X1TG2+:_:PT[4A.S1,6:"/RY!G=U/S,..>_&*Z2[\':3?Z?>6
MEVLTS7DJ337)E*S-(F-C!EQMVX& , >G)H Y1]2OYK3XAZ7<M<BVL]-62WBN
MF5Y(Q)!(6!8$Y&5R,DXS^%=GX4_Y$[0_^P?!_P"BUJD/ ^CK)J,F;TR:E;+;
M7;M=R,94 (R<D_-@D9Z@'C%;>G6,.F:=;V%N7,%O&L4>]MQ"@8 SWP* .-\7
MV;3_ !!\%XO+F'?-=+B-@-N+=SD9!Y/3Z5!?ZKJ\.H^/X8]5N%73M-AN;([(
MSY#&.5CCY<$$J.N3[UUNH^'[/4]5L-2GDN%N=/+-;&.3:$++M8XZ'(..<U7G
M\):;<W6KW$C7/F:M"+>\Q,0'C ("@?PX#,,CGDT <SI=_J]KKW@UKC6+FZBU
MJPD:ZAE5 BLD*.K)@ @Y)SDG.:@T_7-4&N^%2NISWMOJ=Q=17%SM5;>X C=T
M,2'E0I4 -@!AW;.:ZU?">FK/I$VZY+:3&T5IF4D*C+M((_BRH YST]>:I6OP
M\T"S%@L(O0NGS-+:*;V4B'((*J-W"X8\=^^10!QUWJWB"#POXBUK_A(+QIM(
MUQX((RD822-9D3;( O(VL1QCUZUTRW.I>)]0\3VEEJTFFW.F7"6UIL4$(WEJ
M_F.I^^&+$8/&%]>:T)/ VD2Z3J&ER-=M::A<F[N4\\Y>0L&)SU&2 <# XHOO
M VC:AK']JR&\CNI(UBN6M[IXA=*O $H4@/\ X<=* *::G?)\2(;.34Q)8/H+
MW93:HB$@EC7S 1SC!/4GK61HVMZH/$?A2,ZA<7EMJD%R;BX=0L-RRH'5XD^\
MBCD#@9!!YZUV,OAO3IM;&K.LAN!:&RV[\1^22"4V],$@'UK.LO &AV$FF/#]
MN+:86^R;[V1O*5A@H,G[N,<>W.: *WP\_P"/7Q'_ -C#?_\ HRK?BW6;C3[O
M0=.MY# =5OQ;23@#*($9R%SP&;:%'U/?%:>C:%9Z$EVEF9MMU</=2^9(6S*Y
MRS#/3)[=*?K.B6.O62VM_$S(DBS1.C%'BD4Y5U8<AAZT <Q'=:A#XMUKPQ+>
MW,MF=-2_MIR098,LR-&6Q\P)7(SDXR,^G(363C]G*SD^VW6#:6S;-R[1F1!C
MIT[UZE!H-K"EX?-N'N;Q!'/=.^964 @#., #)P !U)ZDFJ+^"M)D\*IX:8W7
M]E(%58O/((52& W?>P" >M %*^N+_3O'WAG34U*YEL[JWO&FBE"'>R!"I)"@
M_P 9[XX%5/#UWJ?B;0M*\20ZT;1I;MGN+=E#0F .R&#;QAN!\W7=GL<5TDWA
MZTN-7T_59I;E[NP1T@<R8 #XW9 X.0!U]*HV7@;1-/UB74;5+J/S)C<-:"Y?
M[-YQY\SRL[=V>>G!Y'(H YZQOO$WB+38==TR^M;;9?R>9'/<D1"!)61HV3RS
MAMJYW;LYYR!P+?A]=8U3Q5KPG\07OV;2]45(H%2,+(AA1BC_ "],MQC!]2>V
MK%X#T.#79M5A2ZB>>;[1-;1W3K;R2]?,:(':6SSR.O/6KMIX=LM.EU6XMVN3
M)J3&2YS,?F?;MRO]TX '&.@H V**R?#6D/H.@V^G//+-Y1?:9)3(RJ6)"[CR
MV 0,^W;I6M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5
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
M.W 5FY'('K7;6LQN;2&<QO$9(U<QN,,N1G!]Q3Y(XY5VR(KKD'##(R#D&G4
M<WXXT*\U[0$CTYT6_M+J&]MUD.$=XG#!6/8'!'UQ5*YTN_U?Q':Z]-ILUI]@
MT^>"*V>2,R2RR[<\JQ7: O<C);MCGL:RQXCT8V-_?+J5LUKI[,EU,KY6)E )
M!([@$4 4? FGWND>"-)TS4+<P75I;K#(F]6!([@J2,5T5-C=)8UD1@R, RL.
MA![TZ@#C-.T;4VU[QE)<63V]OJ_EBVE:1&&%@$1R Q(Y&?I6-IFB^)A'X&BG
MT181H),5RS7<9W@0-%O7!/RG(/K[#K7IE% 'F%UX:UZ?P/XETQ-*?[7J&LO>
M0*9HL&-IUD!)W<'"GCUQ6K%:^)M!\6ZO=:?H\>HZ=K+QW +W21-:3"-48/G.
MY2%!RN<8Z&NZHH Y*+3-7M/B$VJFV2ZM;C2H;66=9%39)&[L?E//(;C'XD=:
MYVW\):\OANP=;,1ZEIFO2ZI';23)MN(WD<E P) ;;(>3W'IS7H<&JV%UJ-SI
M]O>0RW=JJM/"C M&&SC=Z9P:=<:E9VM[:6<]S''<WA86\;'F0J-S8^@YH XC
MQ#X<U/79M?U:/3Y(;BZT%](M;622/>S.68NQ#%0 2H')/#>U6UTG56\2>#[P
MZ=(L&G6,T%TQEC^1G2-1@!N1E#G'J*[:B@ KC[BS>Q^+5KJCC_1M0TEK%6["
M:.3S OXJ7(_W#785E:WJ>C6%J1K%Q#%%CS#YF?E (^?C[H!Q\W&#CF@#E+[P
MS?S^*$U?3;"?2]36_3SKR"X06]Y:AN1+'NR6V9 ^7.<<@=,[6?#7B.31?&NA
MVFE+.NKW;7=M=FY14(=8P4*D[@P*'J ,=^Q]/1TDC62-E=& *LIR"#T(-.H
MX2.U\4:%XNU/4++1HM1LM96&1U^V+&;29$"$,2/F0@ Y4$C'2KD&G:M#\0WU
M>>R::W_L:.S::-XQOF61G.%+9 .[ SW_ #KKZ* .9^'VEWVB>!]-TS4K?R+N
MV5D=-ZL.6)!!4GC!K:U=;]]&OETMT34#;N+9I!\JR[3M)]LXIUGJ5GJ#W26E
MS',UK,8)PASY<@ )4^^"*M4 >;:7H?B&+Q)I6L/HBQ2+I4UK=O/>K+(TQ*-N
M<C.X$J<8/?\ A%7O"WAF[T?Q%'=6%E<Z1I<ULYO=->X62#[02I5H55CM_CS]
MT8V\>G=T4 %<!XK\,W^JZO<W^F6$]EK,)C6PU>UN$163"Y6=2V64'=QM/'3W
M[^B@#S'Q7X?\4:W;^(K233$O6DGBDTR=KI5C2)2A**AZ295LL<9!^]@ 5K7N
M@:EJ_B_5)[BS:WLK_P /C33.LJ-LD+2,>,Y( ?&<=1^-=Q10!POA.T\16T-K
M8ZGX;TZTDL8]CZC'*CBYVK@%% W*3P3NQCGUXK^'O#FHZ-K4>H:;ID^EVTEK
M*U_I9ND:WDN."OD@,VSG=D\#&..M>A4C*KJ58!E(P01D$4 9?AW5+G6=#@O;
MVP^PW+,Z2V_FB4(RN5.&'##C.:U:155$5$4*JC  & !2T %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 5P_C#Q9JWAZ/5[F);)8K&W2>"%T
M:62Y'/F%MC Q*/NAB,9[]J[BN,UGP%)JMQXAV:W-;VNN0HD\(@5RC*FP%6/.
MW'5?R(S0!>_MV\U3Q'=:-I3V\#65I%<7$T\1D^:7=L0*&7LI).>X ]:XOPCK
M>K:3X(\&6UG'9'^T;ZXM9O-#'8=\SY4@]/E[_I76_P#"'7=MKL6LZ?K;P7CV
MJ6M]YELKI<JOW6V@C:PR0#SQU![U;#X?RV&G:#9KK+2KH]X]Y&TEL,R,V_*G
M!&!^\;]/I0!1F\3^*XK/Q4@?1S<^'B96E^SR;+E/)$H4)YF4."1NW-].]:R^
M);V?Q-X<MHX+9;35=.ENLLI,D;*L9QG.,?..W:GR^#II3XHSJ2#_ (2! DG^
MC_ZD>5Y7R_-S\H[]^?:GP>$IX-3T&]_M)&;1[-[1$^SX$JL%!)^;@_(OZ_@
M<ZOC7Q(NAG6YH]+^RVVL'3[B%(I-\B?:/)W*Q;"D9!P0V?;I6W<^(]4MO$WB
M*QBL8+K[!I27MK'$I$LSDR80G//*<8'>H6\!2OX9N=%.K+LGU'^T#+]EY#><
M)MN-_3</R_.K\_A:ZEUS5-535O)FO]/6R'EP8,.W<5=26Z@N3S[4 8$_B^\U
M7P1XCU/2-:L)39Z<TR-';,DT$JJY='C9R5/ P3WS][%2G6O$ME)X4TBTDTR6
M35+*5O.FAD'EM'$K*2 YS][GUQVK5F\$Q7\VKW-_<QM=:GIITZ:2U@\D%"#E
MB"S;GYZD\  8H@\(7D=_X>O)M9$TFC1R1J#:A1*'4(<X;CA1CKSGKT !D^)/
M%^O^&].U"ZNAIIEL(()/(B1Y#<Y \UN&S$F254L.HZG.*O076L2_%74K/[="
M;.'3(98X6@/R[WD!Y#=<J,G!XP,#K3-9^'TFK'Q%$NN3P6FN!&FA$"N4=5"@
MACSMPH^7\B*U(_#,\/B@:ZFK2&5[)+2XC:%2)MC,RMG^'ECD#MW% &'IOC:]
ME\/::\L%HNI:CJ\VG1"-&$2;)) 7(SD_*A.,C)(Z5)J7B[5]'N_$&ESI9S7M
MCI3:M9SB-ECEB7(977<2&##&0>0>U31_#Y%\/1::^I/]HM=1;4K2[2$*T,Q=
MGY4DAERS#'<'\:NWGA%]1CU::\OHVU'4; Z<;B.WVI#"=V0B%B<DN3DL><>F
M* *&F^)=<.N^'+?45L&M=<LI)D6WC=7@=$1^6+$,"&/88]^I[:N8C\)S)J'A
MNZ.HH?[$@>!5%OCS@R!"3\W!PHZ=\_2KGAB#5[?3IDUB_>^D^T.8)Y(%A<Q$
M#&Y!P.=V.^,9P>* *C:WJ&I^(]7T;2)+6!]+BA,LES$T@>64%E7 9<*% R><
M[NV.<"W\=ZSJ\?A<Z;:V5O)J\MU;7"7(=_(FA1R<$$97<F?4CC(SD=)-X:EA
M\37.NZ5?K:7%Y D-W'+!YL<NS.Q\!E(8 D9R1CM52/P/%:3>'FL;TQ1Z+)+*
MJR1;VG>56$C,01R=['@=3Z<4 =%8B^&FP"_>W-]Y8\YH%/E[\<E03G&?4UYY
MH+ZE#H_CB]F?3[QK35;J98YK5L&6-(RI^^< !0 .HXYKTTYQQUKEK/PC<6FE
M^(+(ZFCC69YIW?[-CRFE4*P W\@ <9[]S0!F1^*-=N+CPA;6D>G1_P!MZ:]S
M(TD;D1.L:-P PROS_=SGCJ*DT_Q5K-UX?DEF73H[NTU>33KRY8E(51'(,JH6
MR2?E 7=G+=^E7;7P=-:W?AJ?^TU;^PK1[6-?L^/-5E523\W!PB].^?H*?_"
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
M5$0AR)/,4*V3NXX Q_6@#D)_&GBBV\+ZUJSKI+-H-]);7*B&3_2U1ER4^?\
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
M^7[O3GIG& #T"BBO))M*.HZ9X]N)=8U6&;2[^:2RD6_D MRL$;@_>Y&>,'(
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
MWVD:I;_8IM8BL[MP%9=F6W@L?ND;>?3GI6[8>*-"U2RN+RQU:TGM[9MLTB2
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
M3>'-(:_DO381>?*ZR2$9"R.OW79?NLPP,,1D8%5Y/&?AJ(9?7+$ 3_9RPF!
MDXRI/3^(?G5NSU_2=1U&?3[/4;>>[MQNEAC<%E&<9]QGCV/% #XM&T^'5I=4
MCME6^E4))."=S*.@//('8=JO5FV^OZ3=7ZV,%_"]RRETC#?ZP#J5[,!WQG%<
MYXP\6?8/[,BTK4H5GDU:WM)E\L.'5I KH&/&X G('(]J -^?PQHES/?3RZ9;
MM+?H$NGVX,RX PWJ,  ^N!FGIX?TI+FRN%LU\ZR0QVK[F)A4\%5YX!&!CT %
M:=9D?B'2);\6,=_"URP9DC!_U@7[VWLV.^,XH AM/"7A^PUJ76;31[2'49<E
M[A(P&)/4^Q/<CK6S63!XFT2YA66#4[>6-KC[*&1L@S8SL_WO;K4E_K^DZ7*(
M[Z_A@;*@[VP$W'"[CT7)Z9QF@!-1\/:3JMU%=7EE&]U$-L=PI*2J/0.I#8]L
MXJ8:1IPTZ33S90M:2@B6%T#+)GKNS][/J:9J.NZ7I)(O[V*#"[VW'[BYQN;^
MZN>YP*5=:TUKF>W6\B:>WB$TL8.65#T;'H<=: ([?P_I=K;S016@"31B*0L[
M,S1CHFXG.T9/&<<FF#PQHRQ642V$8CL#NM%#-B ^J<_+Z<52O/&^B6ESHT2W
M:3)JS/Y$L1W)L5&8OD<8RH'X^QJ2'6[&WO-;N;GQ#:S6=JT>^(!0+'Y>0[CK
MD@GGI0!E^,_"*W_A;6K31;"/^T=5""5VDVAR&!RY)YP!@=3VZ5T-EHVGP1NZ
MV(1YHA%(LS>80G_//))^7D_*.*E&K6#)9N+I"EZ<6S#I*<;OE]> 3] 342Z_
MI+ZBFGK?P_:I"RQQ[OOLOW@IZ,1W Y'>@"K:^#?#=DUL]MHUI$]KN\AT3#1[
MNN#U'0?3'%/'A/0EL8K%=-B%I#-Y\<()V))G.\#/!SSGU.:V&8*I9B  ,DGM
M6?9Z]I5_="VM;Z&28Q^:J X+I_?7/WE]QD4 9UO9:MJ&OK<:O:V4-EI\TC6'
ME2F1Y25**[9 VD(S#&3DM[#.N=+L3JRZJ;6,WZP&W%QCYA&6W;<^F>:XM/%<
MVM:AJ[V.MQV$6E7B1K&T"R)<1!$:0MD;@27(&TC&!UJKIWB*_P!:T72M>/B^
MVTJ&\V>?:2VT;A79P5CC)P<D94YW=<C% 'I!&00>]8L?A'08I)I(]-C1YW,D
MS*S R,>K,<\GW-6M0U[2]*8K?WT,!50S[SPBDX#,?X5SQDX%+J&NZ7I2;[Z]
MBA79YA).=J?WCCHO^T>* "UT/3+*2U>ULXX6M8VB@V9 C1CE@![G!/K@>E0)
MX6T..PO+$:9;FTO6+W,++N65CR68'J<\YZ\"FW_BSP]IC,M[K-E"RP_:"K3#
M(C) #?0EACUS5C^WM+^TI;_;8C([K&N,E2Y&0H;INP<XSG'- $-CX6T+3='F
MTBSTFTBT^;/FVXC!63/!W9Z\>OI2Z;X8T/1]-GT[3]+M8+.X!$T2ID2 C!#9
MZC''/:M;I6;:Z_I-[=I:V]_#),ZEXU#?ZQ1U9#T<#N1F@"O8^$?#^FS6LUII
M%K%+:AA ^S+1[L9P3SV ^@Q0?"/A\VDUK_9-J+>>;SY8U3"N^<AB!Z'D>AYK
M M?$%YXFU[5;/2-9CLCIUW%'%&8%D2X38KR%\C</O$#:1C&>:Z#Q%XEL?#-M
M:2WK'-U=16L:@'DNX7)]  2?PQU- &C/8VUU%%'<0K*L,B2QB3YMKJ<JV3W!
M'6JFM>'M(\1VJ6VL:?!>Q(V]!*N=I]0>H_"N<?Q<NG>.-0@U/58(M&73(+N#
M>H7#.[@\]6X3/Y\5T\NM:;#907C7D1MYU#PNAW^:N,Y4#)88YX[4 6+.SMM/
MLXK2S@C@MH5"1Q1J%51Z "IZKV5]:ZE917EE<17%M*-T<L3!E8>Q%6* "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *X:UG;1/B#XE;6(Y!
M9ZE%;R64_E,Z.J(5>+@'Y@Q)"]3N.*[FB@#R2+3;S1?!/@33[V*?S[?6H[AX
M@C.8(2TI&[&<!5=0<]*Z:ZF7_A;NFR@.81H\T1E"$H':6-E4MC&2%)QFNUHH
M \AEBOVT'Q-<6-E<7!M_%2ZBUJL9#75NC1,=@(^8':2,==M;'B"XA\4>%]7U
M#PUI%Q)=-';M),]N]O)<B.57,*[@&;Y0XR.,L "><>C44 >77TVA:YH&OZMI
M>F:L;YM$N+-YKQ;@.I896 +(3O;=S\N<8Z\UHWME9W'@SPPHN;O2KF,0_9[Z
MVAYM95A8?O%(QLP60AL#YL<5Z!10!SO@JXU.X\/DZM%"MPES,@FAC,:7*ASB
M8*>F_D^_4<$5E)/)HGQ,UBZU19!8:E96XL[G861#%OWQ$@<$E]P'?MS7;T4
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
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !45Q;Q75O);SH'BD&UU
M/1AZ5+10!6L-/M-+LX[.QMTM[:,82*,851Z =A5FBB@ JDFD:;'JTNJI86RZ
MA*@C>Z$0\QE'0%NN.!^0J[10 4444 %%%% !1UHHH I:9I&FZ+:FVTNPMK.
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
MRXMU"%[>9F &[YN0<@@KG.127>AZU#XGTGQ-&(;J[BM9;.^MD?8#&[!QY9.
M2K #YL;AZ&LO4/!VJRI->P00M>WNNV^IS1>=A8HH2H"9QRQ"^F,D\X&2 =%%
MXGEN);>P;1[J'59TED^QRRH#'$C;?,9U) !) &,DD^@)'-^!M9;3_#]UFRNY
M)[KQ#=VT,!.YHSO8X=LD *%.3D].,UL:MI&LVWCFT\3Z5;Q7:/8FPN[26;RV
M5=^]75L$$@D@CTZ5B6WAKQ9:Z>T?V>R>*37KB^N;-+QE%Q!(6(4MLZ!BIV_Q
M 8/I0!MS?$"TM] NM4DTZ\(M-0_LZYBCV,8Y=ZIG.?F7++R,GGI5A/&UI#=Z
MM;ZK97.F-IUJMXWGE&\R!BP##83SE2-O7.*Y:3P=X@'AS7-+CLK!/MFMQZA
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
MA3Q+;:!XK\.6=K:W5GJLEQ<6ET]SY;1^=RR.NTY().".N><4 >BV'_(.M?\
MKBG\A67XPN[*Q\(:K<:E93WEBENYN(8&"LT>/FYW+CCT.:T]/2>+3K:.Y6-9
MTB576-RR@@=B0,_D*S/&6FW>L^#M6TNQ17N;RU>"/>VU06&,D^E %.?Q7'8Z
MEI^C6VCWMQ/=6)N;<1LFTJNT;=S-P1N&2<>V3Q6EX<UZ'Q'HR:A#!+;GS)(I
M(9<;HY$8HRG!(."#R*Q4T?51XMT+5&M%%O9:9+:S#S1NWN4/ [@;.O'6K?@G
M2;_1M(N[;4(DCDDO[BY79('!621G'XC.#0!T<C%(V949R 2$7&6]AD@?G7#P
M_$ZUDL=.U.31-3@TB\G^SF^D$>R&0N4 8!BV,CE@,#.,FNZKR?PMI-[XF^%.
MG:&ULL5G+=L\MT9 1Y2732$*O7>2NWI@9SGM0!U\7C,W&O7NEP:'J#FQN4@N
MYR8PD*NF\2'Y^5P0>,D=P.,PP_$/2YK_ $R!8V,&J,4M)DEC8LV,J&0'*;AT
MS^.TT_2-#ODU_P 637T"QV>KR1F%DE!8*L*Q'(['C(ZU6\)6/B[2K6ST+4;;
M3C96"K$FI13$O/$G"+Y17Y6P "2WKCGF@"%_B?;1Z<NJRZ%JD>DI=-:W5XPC
MVVS"0QY8!B2,CDKD#/4GBM35_&D&D&_EET^Y>RT^:&&YN.%P9-N"@/WP-ZY(
M_#.*X_0=+OO$GP^U30$MECM[S5;M'NS(,)%]I8O\O7?P0!C'0Y[5;\3>$_$F
ML0^(K3[-8W2W$D3Z;<S7)!@B783$J;3M.5;+9YW<YP!0!TEQXQ=/$5YHEMH6
MHW5S:"!Y&C,87RY&(W@EN@QTZ^V 36;'XMTK1-%\4:U!HU^BV6I.E[%O5G>7
M;'EQER N"HP#[XK0TG2]5A\=:KJ]W:Q1VU[9V\*F.;<5>/>3Q@<'?P?;H*P-
M0\)Z[=^%_&>FI:PB?6=0:XMBTXVA"(Q\Y[']V>F>HH ZBS\51S^(9]'N]/NK
M&5+0WL4DY0K+"&"LWRDE2"1P<'!JG'X\@E&BS)I=Y);:TQ6QD1H\M@%OG#,N
MW*@L.2<#L>*9?6EU;^-5\2W<$4.EVVBS6UP\LHRA+K(20.J@(0?Y5S'AZ#5M
M)L="N-1\-1S6-H0UM)!JBNEN9>-T<10$\/@*68@' H ]7KF/$WB&_P!(UWP]
M86=B9TU"Y=)&#J#A8G;: >^0#GT'OQT]<SXITC4KW5/#VHZ;%!,^FWCRR132
MF,,CQ/&2&P>FX'I0!S%OKK^&?$WCV[73;V^M[6:WGF$4BGR8_LRLYR[#/5CM
M&?PXKJM1\8V-FRQVX2YG:U6\\MITB_=MG;RY&6;#8'L<D<9Q+KPYK,P\> 6L
M6==A$=H?.& 1;B'+^@SSQGCWIB:)XHT/5+'5=*LK.]\W38+&_L9[GRBKQ9VR
M(^T@CYF!&/\ ZP!V&@ZW9^(]"L]8L&8VMU'O3>,,.<$$>H((_"H?%&M?\([X
M6U/6/+$AL[=Y50]&8#@'VSBK]BMTEE$+UHVN2,R>4/D!)SA?4#ID\G&:BUC2
M[;6]&O=+NP3;W<+0R8Z@,,9'O0!S_AG08K[PU87^L22WFJ7ENEQ-<M*RLC.
MV(\$>6!G "XZ9ZU:M;PZ$MCX=1YM3U,PR2J7D 8Q*V-\CGO\RCN2<]@2*OAV
M/Q-H6DVVBWFGP7WV2,007T5R$62-1A3(I&Y6P!G&ZDO-$U:U\8Z?XFMA'>R"
MQ>PO;<,(R4+^8K1YXR&XP2,COF@!)/B#8)I<5Z+"]9CJ2Z7<0!4WVTY8+AQN
MY'((*YSD>M.'C:=KW4M/3PYJ)U&Q1)C;^9%\\3 X??OV_P )&,YSZC)&1>^#
M=4:RDF@AA>]O/$$.K3Q^;A8HXV7" XY;:@[8R3SC%;$6E:G%XVUK5_LBFVN]
M/AMH1YJ[BZ%R<CL#O]>U ##\0+65=#^PZ5J%XVM6KW-H(Q&,[5!*G+#:1N&2
M>/>GZ?X\MM0TUI4TR^COX[\:=-8.HWQ3'^\02 F.=W3'OQ7)V&GZGX<U7X<:
M;<6BRW=G9WT,L<4H^8!(^5)P#VX..]:]WX7UY%O-1LUA-QJ.KQW=[8^>8Q);
M(FP1;P.O"LW8\KR.H!I7/C^UM- U75)M.NR=+O/L5U#&48J^5 8'(ROSKTYY
MZ<5:A\6O)JU_I;Z+?17MO:"]AA9HR;F+<5^7#$ Y&,,1U%<G=>#/$#>'?%6F
M0V&GQ_VI?Q75LL5QA$ \K*GY1@#RR,XY)Z 5U']GWR_$/^WYH$BTX:3]D=WE
M7<K^9YA)'3;CC.>OMS0!/8>+H-3T+2-4M;.9UU24110[E#H?F)W<X^4(Q([8
M-1&V@\)2^(_$=S<7!LI56=X6F:0*4#;F4-PN[(&T<?*.?2AX7T-;;Q=K=S;7
M*RZ3%.7M(5Y6*>95:?![CA2,=-[CUKJ-8CN)M(NHK2W@N)G3:L-Q_JY,]5;@
M\$9'0T ,TW4IKZ::*6R:$)''(DJR+)'*K[L;6'7&WGZCMS6C7(>$/#$GA_5-
M1DM(9;#1[A(S%IKS>8(I@6WNF"0JD%> >QX' KKZ //M2W^(/B)?Z#J6F27&
MFQZ5&R)YJC8SRN#*O.0V$4 CD8[9IVE^*-'\/>$);VRTC4DM(]4>SEC>02RB
M8RB-G8ER3ES_  D_2M>#3-2C^(U[K36J_8)M.BM$82C?N1W;)7T._'7/'2N=
MD\)Z\_A"^TP6D/VFXUTZBO[\;1$;@38)Q][ QC'7O0!TD/C.(7.L6U]I=]9S
MZ9:B\:)@DC2PG=AE",><H1CUQ1%XP7[;=65SI=U%=PZ>-16%61B\1)&.2 '!
M'(/'H367K&A^(KKQ%KFI:5Y=G)=Z,EE:SO(-T<RL[9(&<#Y\9&<$9Q52U\-:
M[#KS:FFD6%M'-HKV,D279=_-+;MS,5&\GN2??)/% &OIGCR'49]"#:3>VUKK
M<>ZTN92FTOL\S:0&W#@'!(P2..,&K1\7QN;>>WTV\N=.GO?L2W<*A@'W%"^T
M<^6&!&[\<8YK"L_#.M6^F^!+=K6(OH3#[61,,$"%HOD]?O9YQ4_AC2?%7AU6
M\/K#92:1'</);ZD9SYB0LY?88MO+C)&<X[\XP0"U#X@TK3]1\6W::5?)=6+P
M?;0O[QKAC&/+V*&('RE?3KS5LZY'JK:[HES:RVUY9VJR2*)<ADD5MI5EP<_*
M01Q^-8E_X?\ $QN?&=SIACMI]4>V:SD\_:2L:*CJ2!E"P#8(SC/8T_3/#VL6
M7B'6-072K"VM;_38H5@@N,LDB>9P?E ).\$M_.@#6^'+,_PW\.LS%F-A$22<
MD_**Z>L+P7IEWHO@W2=+OD5+FSMD@DV-N4E1C(/I6[0 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !117"Z[XIN=,\42:=>WDNDQ2-"-.N9
M( UK<YQO1Y,':^<@#*]CS0!W61G&>:*X#3Y]4C\:>.95U(2&SB@^SQW6U85S
M"SJ&8#*J&)R1ZDG-)IGB#5;KQ =(.HR2Q7&AM>K=?9U39,KJI,65&Z,[\C<#
MT')% 'H (/0T5YCX6US4+7P7X/M1<7%U>:RA)DQ&715C9VV[L L2!RV>I/.,
M5:U'6O&.D:=%]J\B)GUJWM89IHT9YK>5POS!&VJPR02.HZ 4 >B45P27GB>7
MQ)KN@C6X%^S6L-Y#=?8EWKOWC9MS@C*9R<G''O3-*\8ZCKMCX<@CCECO-2TM
MK^X>U$>Y=I1<()3M +.3SG &,<Y !Z!02 ,DX%>>W&M>,K&#P];WQL[:[O-5
M:RE)B#^9'L=DDPKX4X494'KW K(\2ZQKC>$O&.G7&J%I]+O;>%;J&%8VEAE$
M1*,.0.'(R,9_.@#UFBN$\4^([WP[?):WM_<65C):#R-6-LKP_:2S#;/A3L7&
MS&,9RW/%=Q$V^%'#*^Y0=RG(/N* 'T5SFOWU_#JUI:6]\MM#+!*VV",2W,D@
M*A<(5($8R=S''.T9&:YFR\7>(-4TSP+<0SVD#ZWYB70-N6&Y8G;</FX&5SC]
M<4 >DT5YT-9\52>'/$Z6EY'<:KH=\T<<GV=1]IB"))M*] V&(!'<"NCTG6CK
MVIVD^FWADTL6"3RDJO[QY.8QG'!"ABP]U]\@'145R>O:GK$/C70](L;R""UU
M"WN6<M!O=6C"$$$GG[W3\\]*YB?Q1XHM?".L:N^I6SR:%J4EHZ_9 /MB)*JY
M;GY"5;^'N/?@ ]3HKB]3UK6]0U77=-T,3)<:6D:QE%A99)GC\P>9YC [,%1\
MN#][GM5'7_$7B"QTN^N9)X+2\M-'6\%E:J)R)@KM)YI((6+Y0%(()^;!)&*
M/0J*\_U[QC=6'V&:[GFTK3[S3DEAU!+<2P)<MGY)B02JXV8/&<MSQ6K:ZM?S
M^.KK13>*UH=(BO(W1%)5VD="5.,%<*",YZT =717F&F^*_$NKV'@@Q7UI!+K
M<=R+ES:[MK)&[!@-V.PX]1UQQ6G)JWB6[?5=+T^9YM2TB**(SQ0PK'<7#1"3
M,BNV50[@,+R.>3T !WE%>>ZWXMU32YX(M8D?0Q<6,3078B6:U%V=V^.5\':
M=N#QD9.:Z3QI-<0^!M;N;*Z>VGBL9I8YHL$@JA/&<^G7\J +UUK>GV>K6&ES
MSE;O4"XMD\MB'VJ6;Y@,# !/)K0KS"X@O!>_#1([P-<,)BDLL8.P&S;L,9P.
MGZU?L?$6M-I6I07.HVHGL-<_L^2\>+:\D.$;Y$ (:4A]H &">U 'H!( R3@4
M5Y-K^OZO?_#[Q>CWL\,NFZ@MJDOE*DDL+>4=KC& <2$' '&.!S7J2)-!9[6F
M\^55/[R0!=Q]\# _*@">BO/M)\2ZQ)X@T"REO8[I=4L[AYI%@'D)-&$(,#84
MNGS$9).1C#=:IZ;XI\1Q^"F\57]_:S1JTML+1+4*&D-SY,;EMW '=>X[YYH
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
M_H\26^]@O&"3@ 9SUR<XQ3/$?B_Q!H4/B;3X[B&6ZTR.VNK6ZE@&9(97V%7
MPH8'/(&".U 'IU%9^E6^IVT<XU/4(KQWF+Q&.W\H1H0,)C)S@YYZ\UH4 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 5SVJ^$X=8%_!=WUR
M]A?NCSVA"%/E"C"G;N7.P9Y^F#S70T4 <S?^";#4+_6KB6[O5BUFV%O=VZ.H
M1L(4#CY=P(4^N.Y!IMAX*BL]7L]3FUC4KNYMK-K(F9HP)8B5(#!4'0J#D8)[
MDUU%% '&GX<:?_PC5GHPU/4Q_9\HEL+M9%6:U(S@*0H!&"0<@DYY/ Q9N/!,
M5YIMO;7>L:E//%=Q7C73M&9)'C.4!^3:%!'W5 []R<]310!A+X8C37M0UA=1
MO!<7ULELZXCVJJ[MI4;,Y^9NI/6LEOAQ8KI&C6=KJFI6MUHX9+*_B=!,J'@H
MWR[64X'!':NSK$\4^(&\-:2E^+,W2FXA@9?,V;?,=4!Z'."PXH K3^#8+A=*
M,FIZ@TNG77VP3,R,\\NTKND)7^Z2,#  QCH*@O/ =C?1>(([B_OF76VCDGP8
MQY;1A0A3"\8V+USTKJZ* .>N_"S7L<\4VLWSQW5F+.Y218F$JY<E\;,*YWD<
M<8QQP*6ST2YL?$L4UK>7::3#8"V%F[J805(V%!][=@'))].O;H** ,+4?#$5
M_P"(;;6X]0O;.ZBMVM9!;LNV:(L&VMN4D<CJN#[UFZ?\/K/3;?0H(=4U%DT2
M1Y+4.8SG<I4AODZ;6(XQUSUKKZ* .6-M;^"SJ.IA=7U(ZI>K)+#;VZS,CE0N
M0J*"%PH'.:M>#]!A\/Z%Y$=L+9[F>2ZDA!SY;2,2$S_LKM7CCY:WZ* ,>^\/
M17_B/3=;:\N8YM/25(HDV>6PDP&W94G^$=".E9,W@"SGT'6-'DU343;ZK=M=
MW##RMX=F#$*=F ,@=C6SKFOVNA16_FI)/<W<H@M;6$ R3R'G R0  ,DDD  <
MU!-K.I6+6IOM&Q%<3QP>9;7(E$1=@H,@*K@9/\.[G\Z *.H>"([O7!K-IK.I
MZ;>R1+#=O:.BBZ5>F\%2-PZ @#%,O/A_87-QJ+1:AJ%K;ZC8K97=M#(NV1%4
MHIRRE@0&/0\]\\YU_$WB"U\+^';S6;Q7>&V3=L3[SG. !^)K1MKF&\M8;JWD
M$D,R+)&XZ,I&0?RH YX^#Q]A-D-8OVMWL%L)DD$;B1%W?-RG#X<C(XP!QQ3G
M\&VJ:M97]C?7E@;:R73VC@9<2P*<JI+*2"#GYE(/)YJSJ7BC3]+\2Z3H5PQ%
MSJ8D\HCHI49 ;TW8('K@TWQ;XD_X131&U5[-KJ%)$C=$D"L"[!5QD8/+#/-
M&;IOP^M-+CT!(=5U$C0S(;8,8B&\P$,&^3)&"0/2I]3\%0WOB%];LM6U+2KN
M>-8KK[%(H6X5?N[@RGY@. PY J:S\61OXF'AW4;&:PU&2 W$ 9E>.= <':P/
M4=P0*T-<UF'1+&.XE4N\UQ%;0Q@XWR2.$49[#)R3V /6@#/OO"4%[;7=G]NN
MH]/N[9;6:T 1DV %<J64D,0<$Y/0=QFM6\TNUO=%GTB166TFMVMF53@A"NW
M/T-4-+U/7;K59K74/#ZV5M$&Q=I>K*LA!7;M7:&P03R0,%<<]:W* .8A\%Q1
M2Z#*^KZC+)HN[[.S^5\^Y/+(;"=-G'&/7D\U6F^'MI*9Y%U;4H[B35!JJ3*8
MLQ3A=GRC9@J5XP0:["B@#D9/A]I\UAKMG-J&HR1:RZRS[I$RD@"C>N%ZDHIY
MR!C  %=%_9RR:2^GW4\UTLD312RRD!Y P().T #KV  [5<JI=SWD5U9I;60G
MAED*W$IF">0NTD-@CYN0!@>N: .;L? $%E-HLHUS599-'C>&U+M%Q$RA=A 0
M9 "CGJ<<DCBK5GX(TVV\(W/ABXFN;W3K@R%A.5WC>Q<X*J/XB2/2NEK$TOQ
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
MY.!A0.<]*+_P-%=:E;:G::SJ>G:A%;K:RW%JZ W$0Z!U*E21S@@#&?I75T4
M<Q/X(LY-36^@U#4+4FR^PSQQ2*1<19+?,64MNRS'<""<]:;8>"ETW3(+"VUG
M4#!'9"Q991$X>,9QD%, @$@8X]0:ZD\ X&?:L3PSK[>(;:_E>S^RO:7TUDR>
M9OR8S@MG ZF@"F?!%G!=:5<:;?7NGMIUG]@7R"A\VW^4[&WJ>Z@[A@]>:K6W
MP]L[73=)L8M5U(0Z7>M?6^3$3YC%R024)*_O']^>M=A6)J7B!M/\4:)HQLRZ
M:IYP%QYF/+,:%R-N.<\=Q0!4UCP9#J6O)K5GJNHZ5?\ E"":2R=0)XP<@,K*
M02,G!QD9J:[\*QW$<T$6H7<-K/9BRF@^2170%OFRZD[SO;+9.>X-2^+?$#>%
M_#5UK"V9NQ;[2T0DV9!8+G.#ZCM6W0!G3Z)93^')-",9%@]H;/8#R(]FS&?I
M6&/#<FM^!5\+:O-<V[0QQV\T]N%'G+'C:ZE@1\VT$CJ.176T4 8?_"-I_P )
M-_;W]HWGVO[%]BVXCV;-V[.-F=V[GKCVK&'PVL8M)TNTM=5U*WNM*DDDL[]&
MC$T8D)+J?DVLIST(KM:@N+RWM'@2>54:XD\J('J[X)P/P!/X4 8=[X.M[_3;
M*SEU*_W6MY'?&XW(9)ID.07)4C&0.  ,  8 IFH>#(;[5=0OH]4OK4:E:K;7
MD,)3;,%#*K$E2RD!C]TC/%=-10!R2^ K6W.CS6.JZA:WNE6HLHKM#&7D@X_=
MN"FU@, CC(/-,'P\M/[+ET\ZMJ1CDU/^U"V8MWF^9YG]SIN .*["B@#G_P#A
M%8O[8U74QJ-Z)M2MDMI5 CVJJ!@I7Y.OS-USUKDM<T0:-_8&CBZ\10Z9IUHZ
M0W]E:BZ)8[5"2(L;=%'#;._7KGTVB@#A$TOQ#J&@2P0Z[JX87$<EE=2P1VTW
M .1*NT?NLXX*AC@C&,5V5_:?;]/N+0S20B>,QF2/&Y01@XR",_A5FB@#E_\
MA![(:!I.EB]O ^D,CV%YE/.A*#:.B[6&."".12:GX&L]7T[4K:[OKPSZD8A<
MW4?EK(5C.4105(50<GIGD\\UU-% #8U9(E5I&D8#!=@ 6]SC IU%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %>;ZB#XD\4^*-$N]5M[
M&6UCB^QF5&WQ1M$&\Z(B10"'+9.#T )QQ7I%96J>&-"UNZ@N=4TBSO)X/]5)
M/"K%><XR>V>U '!^*X;O3[71];TR^N;^^ALB-0,<>1<6I0*]QY9.!(.J]SDC
MD XV+]](EE\*Z?ITKW<-Q'+-:6S3?N+F,1C+S,02VW<"!R2QR>F1UQTRQ-S<
M7'V6+SKF,132;>9$&<*3W R?S-43X1\.M:6UJ=$L#;VKF2"(P+MB8]2HQQGO
MZT >:6EQ<77@?PIOU"Y+KXF^REXKEQNB^T2J%//(PH SG&.*TQH=I)K_ (WT
MII+S[!;6MO<PP?:Y-L<KQR;G'S9SE >O7FNZ_P"$5T#8$&CV047!N@!"H F/
M_+3_ 'O?K4QT#23<75P=.M_.NUV7,FP;IE]&/<>QH \VTQ'U_4O L>HWM[(E
M_P"'9)+I%NI$$S!8>3@CGDY(P3WXXJI<I<VG@/7M-DN)KBRL/$MO;V4DSEV$
M0GA.S<>2%8LN?;':NPO/!ZOXPT2XMM-MH]'TZUF@"(^PHTA0@HH' &TC@CK7
M23:!I%SIT>GS:;:R6<;;D@:,% V<YQTSGG/KS0!Q.I ^(_%GB?0[O5+>R>VA
MA^Q^:C;XXVB#&:(B1<,'+9.#]T G'%=KHMQ'_9ME:OJ:7UTMK&[2G"O,N,>8
M4SD!CS4>I^%]!UF:WFU/2+.\EM@!$\\(<J/3)[>U'_"/V9\3KKWDPK=);FW#
MHF'920?F;N!C@>YZ\8 ,KQ/);W'B/1--<O/<2)<2K9.X2WD554%Y3@D[<_*
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
MQR\F(HQN8]R>IJC?^+_%%MH7B?5UGTW9H.I/#Y0MF_TB-1&=N=_R'#'GG)]
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
M7J+P-);6T=UI@CA*F='RH!RQRPDPG;J/6@#J'U.S35H]+:<"]EA:=(L')12
M3GIU(IFI:QI^D"W-_=)!]IF6"$-G+R,<*H ]R*P/[<U2Q\:6>D:A-:/:MI$M
MY,\4+*WF(Z*<98_+\QP,9]S7,:]J>H^(/"?AK77FACM+W6K&5;01<I&9QL^?
M/+=,]N2 !C- 'JE07M[;:=937EY,D-O"I>21S@*!WKC+WQ'XDOUU2;PY8"X;
M3[TVL<#JFV<H0) SF0%3R<8'& 3G. S5-9U#Q!I'BY+&2*T@TR*2U*21[VEE
M$.]PQSPHW!1CN"<D<4 =O9W<%_907EK()+>XC66)P"-RL,@\^QJ:L+P5_P B
M'X>_[!EM_P"BEIOB#6YK'4]%T>T*+>:K.Z))(NY8TC0N[8SR<  #U.>V" 67
M\2Z,BZHQOXR-*7=>[03Y(P6YP.> 3@9K3BE2>%)HFW1R*&5O4'D5Y?\ ;M5T
M+4/B9J,4]M->V4-M.CR0G:X6W) *AAS@8R#COCM6UJ&N>(Y==T32]-N-/A_M
M+3);DRS6[.8Y$$?. PR#OZ<8Z\]" =S17!W'B'Q1>PZG_8=HES=:9<"U\L1H
M([F550R9+2 H"6(&,XP"2<X%L:WKNN'6TT06MK<Z6Z0)!<KO\V;RUD978'A?
MG"@CN"<XXH [!F5$+L0JJ,DGH!532]5L=:L5O=.N5N+9F9%D4'!*L5;KZ$$5
MRMK/J\OQ7FMIKU%MX]'AG^S"/<J%I&# -D<Y0?,1Z<5@:-J>JZ'\+?[5TSR6
MCM-3NY+R-XB[&W^U2>84P1AE7+<YZ&@#U6BL>PU*;4=<N1;30R:9!!%\RIDO
M*XW\-GH$*'I_&.:IW.LW5YXPE\.V$R6S6]BMW-.T>\Y9BJ*H) _A))^@&.M
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
M'2BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
MDY)^I/)/>N%U/P;=7^OW]UJ'ASPYK4=S*&AN;N1HI88PH 0@1ON QU!&<]J
M*4_AV*X\=:3HFHW-Y-"_A^;[2HO9L2.)8@3DMD<DGCV]*SO$-S"EOJ%_IMQ(
MTEIX@MK;[7<3?OD=7B1H8@.?+ SG)YRW!SFO0](\+:7I<5FWV.VDO+5#''<^
M5\Z*23L4G+!!G &3@ 5)<>%?#]U/=37&B:?++=X^T.]NA,N""-QQSR ?P% '
M#7FF6VJ>*/'L=Q-<RP1:?:S1(+J3:KF.8[AANQ (["H-&C@U#Q/X$U#4 LMS
M/X;>66:0\NX$!!)]<DG\37HW_"/Z/YMS+_9=GYET@CG;R5S*HZ*W'(]C2#P]
MHH%D!I-EBP.ZT'D+^X/^QQ\O0=/04 >=:-_Q4>G0:K<:_;V&KV>J/]H*PL;E
M7$K+]G/[SE6&%"[<$8XS5/6I8/$'PZ\>7VI8;4[2ZNH &;#6R1G$:+Z*5P3C
MAMQSG->GCPWH@UK^V1I-E_:?_/WY*^9TQG=C.<<9J.\\*^']0O);R\T6QGN9
MDV2RR0*S.O3!..>.* +EC=VS1P6JW$1N!;I(8@XW[,8W8ZXSWKE_&FHFW\0>
M'-.N+BWM].OGG65KE"T3RJJ^6CC<N0<O@$X) XK;B\-:=!X@AU>&TMH)8;8V
MT?DPA#L)!P2.PQP.@R>O&+NIZ5I^LV36>IV4%Y;,03%/&'7(Z'![T < ;2UT
MJ*QT5M8DU,W&M.;:T0^7 /W1<P.Q+_NESNQR<[1BL*::63P%J\0OI$-IXI$$
M/V:=@L<9N(QM7G[HW-@'(%>IR>&="FTN#3)-'L7L+=@\-NT"F.-AW"XP#R?S
M-(_A;P_)'-&^B:>R32"653;(0[CHQ&.2/6@#CM6\.V&G^-_"FG6KWL=I=O?O
M/%]MF8.?+![L<<D]/4UC1ZG)HVB3V/VOR-*C\6R6$DDY9T@MRI948[@=F\J#
MR!@X/%>IS:/IMQ=VUW-86TES:C$$KQ@O$/\ 9/4?A42^'M%2TN[5=)LA;WC%
MKF(0+MF8]2PQ\Q]S0!YWK6?"\$R6^N(^G:CJMC'=Q6JF**PA<D2%&WML#[1G
M!&,Y&,UL6-II^E?&"^^S+%;0GP_'*ZJ0J+B=\G'11@ G\^]=7;>'-$L](DTB
MWTFSCTZ3/F6JPKY;YZY7&#^-5X_"/A^VBD6UT73HW>W:VS]G4YC(.5/<J<G(
MSS0!L0S17$*302I+$X#(Z,&5@>A!'45Y6\S:MX#\7:Q=S20Z[IUW>&.97(DM
M6B.8D7T4J%XZ-N.<YKTC1=)M]#TF#3K556&'=@*NU02Q8X'89)P.PXILN@Z3
M/?F^ETZV>Z8J6E,8RQ7[I/J1V)Z=J .#@TL>(/'YMM:-V/-\/VMU/;)=21JL
M_FMD@*PQ@KT''M7<>)-&77_#U[IIE>&2:)A%,C%6B?'RL".>#5D:3IRZH=36
MQMQ?E-AN1&/,*^F[KCVJY0!YWH&K7.NZ -4CM-M_HNGRV[P;?^7Y00R8_P!G
M8,?]=?:JOAN&VU*V\.^(K?Q+;QS-"1.L$),MVS1_.LN9#N92"V<<8/05Z3!;
M06PD$$*1B1S(^Q<;F/4GW-9]GX9T+3[^XO[/2+*WN[@$3310*K.#UR0._?UH
M X/0EEMKZ+1=>TZ*2XN=+G6WU.TDWP:G&-A9I%/(DQM.3G.YL'FLW1;R#3?
M_@"U\^VM+'4 %O)9E+1L_E-Y:R ,O#,#WP2HSQFO5+'1-+TQ@UC86]N53RU\
MM -J]=J^@R!P.*A_X1G01I4NEC1K :?,Q>2V%NHC9CW*XQGWH \_O1_PCL^G
MZ5_;0N-)U'7%2Y$2E([56C+"W5MS85F"G;G@''1JV_#%G:V'Q0\7P6B+%&;6
MP;RT/RJ<2YP.P[X'K[UTX\.:(-%_L8:39C3,8^R>2OE]<_=QC.><^M+I_A_1
MM*G,^GZ79VTQ0(9(H55BH[9QG% '+>+K"#4_B+X1M+KS#!);:@'5)&0L-L/&
M5(./QY^E8%F4TU+W0I+J]FTY/$<=KI<33_+,?+#M [MD^4K;L]3\N.3Q7IVH
M:3I^JB+[?9PW!A;=$TB M&?53U!^E17.@Z1>Z:FFW.F6<UE&P9+=X5**1T(&
M, \G\Z /.M+%_=Z-XDTRQOK*.XA\0[;6VE=C;NH6)VM^.0A.X8''.,<XJ)_$
M(BCL[*>T_L&-]<-MJL%R?-@B<V^Z- 5908G.P]0/48X/HQ\,:#MF7^Q[$"9D
M>3%NHW,@PA/'5>WIVJ630M)FTV73I=.MI+.8[I89(PRR'U;/4\#D\\4 >=:M
MGPO:"UBUP3:;J&N6L5TL"F..QADR716W-M5BJY&1M#]MPK7TVVT_2?BYJ_D"
M*V@_L."5U#!43$LF3CHHP 3]2>]=9#X>T:#1FT>+2K---8$-:B%?+;/)RN,&
MJR^$= @@E2VT73HVDMS;$FV4YC.<J>Y7DY&>: -B*:.>%)H9$DB=0R.C JP/
M0@CJ*\FU?S$\.?%%5N;H?9Y]T3?:'W(?L\;8!SG&2>.E>G:/I<&BZ3;Z=:@"
M&!<* -HY))P!T&2<#MTJ%O#>B.EVCZ18LMX=URI@4B8^K\?-^- ')V5HFE?$
MG15M9)P-0T>=[H/,SB5D:+:Q!.,C<PX[''2M+XAVTJ:#%K=LKM<:-.E\8T)'
MFQ(<RH?4%,GZJ*WUT/2DNX+M=.M1<6Z>7#*(EW1K_=4]0/85=DC26)XY%#HX
M*LK#((/4&@#RJ"];_A)]2M($;[#XL@#Z5(,G8%(25EST!0B8#@?C6C<Z'8:A
M\2=7L+B-S:IH%LHB25D'$DP&<$$X]_KUQ7?K96JM;LMO$#;*5@(4?NP1C"^G
M Q5=]$TM[V:\;3K4W4R>7+,8AO=/[I/4CVH \U\,:M<ZH/ .GZO(TUE>:3+*
MWFG(N;A H"OG[V$W-@]3SU JMKYN;?P3\0M,\R233+&\A2R9V+; WE.\8)_A
M5FP!VSCM7IY\.Z*=.BT_^RK,6<+^9%"L*A8V_O*!]T^XI\NAZ3/IO]FS:;:2
M6.=QMWA5HR<YR5(P3GG/K0!QFL2+K/CG5M U&]M+:-=/A>RCNHV;<&W^9)&0
MZX<$*,\D8&,<YZ_PY&T/ARQB;46U,QQ!/MCK@S@<!NISD=\G/7O2:EX9T/6$
MMTU+2+*[6W_U(GA5_+]AD<#VK45510JJ%51@ #  H \@-U<WWPDG\4+))'XI
MM[IW,JD^8DXN-H@(_NXPFSI@CC/-;FGZ-;ZO\2O$J7[W;+;)IUS%$+N0*DF)
M&R &Z9'3IR>*[,:#I(U!K\:=;"Z9Q(THC&2XX#'_ &O?K4L.DZ=;ZA-J$-C;
MQWLXQ+<)&!)(/]INIH YGXJ;E^'>IRI++%)&8F5HY&0_ZU0<X/(P3P>*IWVF
M6^J?%J>RO'N)+230A(]O]H<(6\\KG /' ' XXSUKM-0TVQU6U-KJ-G!=V[$$
MQ3QAU)'3@\5%_8>E?;/MG]G6OVKRO)\[RAO\O^[NZ[?:@#"^&5S/=?#K2)+B
M9YI CQ[Y&W,0LC*,GOP!7655T_3;'2K46NGV<%I;@DB*",(H)Z\#BK5 !111
M0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %8FH>,?#FE27$=]K5
ME!);%1,C2C<A;. 0.<G:3CT&:VZ\^CN]/M/BMXE-^HVR:7:*"8B^X9ERG .2
M>/EZG'0XH ["?7M+@M[:=KV-X[I#) 8LR&5 ,EE"Y) !!)' S4,WBG0;>WM)
MY=7LDBO%+V[F88E4 L2OJ, \UY[X=M;SPW;>%M+OM/NK;_1+HK>0VK3S1;Y@
MZVV0&"?*022/X< CK5/0HY$\.?#NWN+"\1['4Y#<++:N/* 64!CQP-S+STSW
MXH ] LO'6B:GKUOI5C="X,UI]J69 =A!8*H!QR3\WTQ72UQ<P:P^+44[6EQ]
MFGT46\4D4#,F\3EBI*C"X!SSBNAT'7K/Q%I@O[)9TCWLC1W$1CD1AV*GD=C]
M"* $;Q'HZ6MY<O?PK#8OLNG)(\AL9P_]W@@\U#?>+O#VF,Z7FLV<+QQ"9D:4
M;@A( ..O.>/6O/\ 77EM+?XE:8UE>O=:@AFM%BMG=94-LJY# ;>"I!YSGCDX
M%:%I?6=M\3-,GO$>$'PPJ@S0LI1O.Y!!&5/4<X].] '=+KFER:9!J4=]!)9W
M&!#+&VX2D] N.6/7@<\5"_BC0XM*EU.75+:.SB<Q22N^W8XZH0>0W^R>?:O-
M]+T?4/#UQX>U=[.X318]7U"9K98F+6L,^5A<H!D #.>/E#\]Z/%>FW%SI?Q
MU*SMYY+35([2*VCCA8FXE0#>ZKC)&"!G'.T]A0!Z98Z_I.IW]Q8V6H6\]U;
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
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH *Q;3P^+3Q3?ZZ+R1Y+V&.%X2@"JL>[;@]<_,<UM44 %%%
M%  >14-K:PV</E0J0I8LQ))+,3DDD]34U% !6+_PCX_X3#_A(OMDGF_8_L?D
M;!L\O=OSGKG/?T[5M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5+6-._M?1KS33,
MT*7<+PO(H!(5@0<9XS@U=HH IZ38?V5I%IIXF:9;6%85D8 %E48&<<9P*N44
M4 %%%% !6)K7AYM4OK34+;5;W3KVU1XTEM]C*R.5+*R.K*?NKSC/'6MNB@"A
MINF&Q+RS7D][=2!5DN)PH8J,X " * ,GH._.:OT44 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%8M_X@%CXHTC1&LY&_M))F6XW@*GEJ&(QU)Y'I0!M4444 %%
M%5-5U*WT?2;O4KIB(+6)I7QU( S@>YZ"@"W15+1]4MM;T:SU2S;=;W<*S1GO
MAAG!]QTJ[0 45AW'BO2[8:F9+B,#3I(XI@9%!#N0%!!/RC+*-QP,Y],U5N_&
MME8>*=*T*Y@D4ZHFZUNT96A8X)"YSG)QQQS0!TU%8?BWQ38^#O#\VL7Z2R11
MD*L4(!>1CV&2!P,D^P-:MG.]U9PSO"86D0-Y98$KGL2.* )Z*AENH()H(995
M62X<I$IZNP4L0/P4G\*FH ***J:=<W=U [WEBUG(LKHL;2J^Y Q"OE>FX8..
MHS0!;HK%\5^(!X6\-7FLM9R7:VJ[FB1PI(SC.3VY]_I6U0 45B>*_$<7A/09
MM8N+6:XMX"HD6$KN&Y@H(!(SRP[U)%J]X;^VMKC1;J".X+*)_,C=$(4MAMK$
MC.#SC&: ->BJFF7-W=V$<U]8M8W#%@UNTJR%<,0/F7@Y !_&K= !1110 445
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
MG+!@ 2"!OS@]*J7(F_X5_P",;/[/?M/)X@$T8EM75Y4,T+;@-HR<*S$ <8Y
MH ]HK)OO$^A:;/-!>ZM9P30())8WE&Y%/0D=>:U$=9$5T8,K#((Z$5Q;&%/C
M%/<RIB)-!2+SF0[0PF=BN[IG:0<=<4 =2VL:<MA!??;83:W 4PRJVX2Y&1MQ
M]XD=A4!\2:(M@E\VJVBVKR^2LC2@ R9QL_WL\8ZUYAX7%WI>G^ M1NH)UTVR
MCO+:[!B8&UDD/[MW7&0,#&2, -Z&G>)-.DDL?%U]##(^GZGJFG-:Q+$3YIC:
M/SI%7'*G!Y[[">E 'J&GZ_I&K272:?J5M<M:D"<12!O+STS[<'GIP:6RUS2]
M1N6MK.^@FG6,2[%;DH3@./5<_P 0XKSGQA97FJ>(_$T&D(S37/AN.*(H"%E=
M978QANA8H<8ST:M:74;7QIHE\^A:7<0:U_94UL)[BU>!K5F7B'<P&3NQ]W(&
M,Y'&0#K[;7])N[Q;2WU"WDG=69$#_P"L ^\5_O =\9Q55_&/AM"N[7+##3_9
MP1.I'F<97/X@?4XKC<?V_HW@>UL+>6WU+3+VVDNHFB*-:)%&5E5\C@'[H'\6
M1C(K)U&$2_#OXA0I;2-/=:O.\*"$EI@6C*LHQEAPQ!'H: /3[?Q)HEU<W=M!
MJMG)-:+ON%$H_=KTR?;/&>U0VWB_PY>7]O8VVMV$MU<KOAB2=2T@]O7U^E8$
MK1'XIZ7- G^C_P!AS0^8B'8"9(V5"<8!P"0*X_0K2VUOX5^#]-TZ-3JD5[;S
MKLCPUOLEW/*W' V \]\@#- ';Z?KMZ]YXR@U'5K>UATV=8K>Z>-52W#0JX8Y
M.#@MW/.*VDURPL-*L9+[589GEMA*)PN//4*"TH09PO()[#(KC,Y_X6=E),7
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
MMHY&*ONWY0'=T&,Y/':M>@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "N9NM'U.3XAV6N1I:FP@L)+1@TS"0EW1MP7;C V8Z]ZZ:DW#=MR
M-V,X[T >>:AX-UV\\/\ C33U%@LFNW1FMV-P^$4HB?/\G7Y,\9ZUJ:AH.N7?
MBJWU6W:TMA'I$]D'$S,\<LA5@X&S! *]R,UV%% 'G>D^%/$=IJOAO4)[?25D
MTZVG@NRES([W#.$S*6* EF*<@],YR>E-MO!NO0>#O#^D%=/-SINK)?2L+A]C
M(LS284^7G/S8Y':O1J* .'T_0O%.AZOJMMILFG/H^I7DEXL\SL)K1I#F0! N
M'YR5R1UYI^I>&]?N/$/B'4+"YMK0W^E)96DXE8R1R(7(8C;P,OU!)&,UVM%
M'":+X:URQ\46&KR6>DVT4>EO93003NQW[U??N*#<6*\YY&<Y;OL>!M&O_#_A
M:'3-1%OY\4LS[H)"ZD/*SCJH/&['X5T=(S!5+,0% R2>@H YL:-J(^([:[MM
MO[/.F"R_UK>;N$A?=MVXQSCK69I>B>+-"U"^TZPFTZ30[JZEN8KF5F$]J)&+
MNH3&U_F)VDD=><]*[BB@#S?2HM3N]5\?V-C!;$7-_P"4)I92/+9K>,$E0#D
M$'@\GCCK6CIWA"\\+:Y;WNB"*ZM#ID.GW$$\IC;,(Q'(IP0>"01QZCTKJK/2
M-.TZ>>>SL;>WEN&W3/%&%,A]6(ZGZU=H \_'@G4[2/13:FSDF@UJ75[XO*R
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
M]/GFN=-M9[F V\\L*/)"3GRV(!*_@>*X/5/!NNWVE^-;2,6"MKLRO;LUP^$
M1$._Y.OR9XSUKT,L 0"0"3@9[TM '&ZGX8U#5_$\=Y<I;)82:-/ILX2=C(#*
M5)*C9@@;<=1UJ3PI8>+=-M+/2]6?36L]/01)<V[N9+I5&U RE<)Q@DY.2/?-
M=:S!5+,0% R2>@K.EURQAU^WT1WD%]/"\\:^4VTHN 3NQCN.,YH XQO!FN'P
MO?VG^@B^.NG6+91,QC<>>)=C-L!4XXR :74O!.L^(KKQ&VI&RM8=8TV&V7R)
MFD:"2-G8=5&X989/R^F.]>B4C,%&6( ]30!PZ:3XLO\ 7O#.I:G;:7&VE>>M
MR8KIV\[?&$W*/+&/7!_.J5UX,U^?PEXATH+IXN-2U@W\3&X?:J&5),,?+SN^
M3' QS7HU5--U&'5+3[3 DZ)YCQXFB:-LJQ4\, <9'!H Y+7K2[T[7]3\4WPL
M(],30FM'$LC.=X8ORNT J2=O7)K+\/6NKZ'+H3:CHVG7$42)96UQ!JSS/$K[
M03'&R $< G!R%!P<#%>E21I-$T<J*\;@JRL,A@>H(K-TWPWH6C3O/IFC:?92
MN,-);VR1L1Z9 Z4 1>*[#4]4\,7UEH]VMK?RH!%*S%0/F!(R.1D C(Y&<UR\
M?A375U/5KN.STBUAO]'6R6VAG?$4@,G&?+&1\^2V!Z8/6O0:* .%M_#&LP'P
M.76QVZ!"8[H_:&^?]QY64^3GUYQZ4MCIEGJ/Q'N-6TR_CGT_[/%/=1PL'C:Z
M 9(VW#C/EELCV0^E=OE7#+PV.&'7\#5?3],L-)M1:Z=96]G;@EA%;Q"-<GJ<
M#B@"PY<1L8U#.!\H)P"?KVK@;3P3JX^&-MX?DN;6VU:RG%S:W$3M)&)$F,J$
MY4''8\5VNI:C#I=I]IG2=T\Q(\0Q-(V68*.%!.,GDU;H XC4M"\3^*_"E_I^
MLR:=I]S(B?9ULW:5/-1U<.Q8 @;D VC. 3DGC%(2:W+\1_"3:[;V-O<BSOAL
MM)FD4X$66RRC&?[N#CU/;L_[<L?^$B70=\GV\VS704Q,%\L,JDAB,'EAP#4E
MQI>FS7\.HW%G;O=P#$5PZ#?&#V#=1F@#@(?!OB:#0M+T5$TPP:5K*7T4[7#Y
MGC$S2X(V?(<-C^+)]*T[KPQK4]QXW=4L0NNVR0VV;AOD(A,1+_)QUSQFNYHH
M XO4_#.M3^&?#WV":TM]=T1HY(@[,T$I6,QNA. <,K'G&146M:!XG\0:59WD
M\FGVNL:??17MI:QNSP90,"KOM#'<'.2!Q@>Y/6ZGJEII&FW6H7CLMO:QF68I
M&SE5 R3A03TJ:SNHKZRM[N DQ3QK*A(P=K#(_0T <QI.E:[_ ,)Q=:]J%M8V
M\%SIT5J8H;EI'1D=VZE%!'S>WXU9\8:-J.LIHXT];8FRU."]D\^5DRL9)P,*
MW)S7244 <?K>C^(;?Q9%XB\/&QF:6T6SO+.\D:-656+(ZNH.""S#D=#4>O\
MAF^\06:6NKV&G:DOD%EE$K0R6UP6)S&P4D* 5&<Y^4<')KM** .,M/#6MV'B
M+0M2^UV]Z;?2/[-O9IW979MR,95&#N)*'@D=<YK(LO!_BB.709KH:5+>:;J$
MD]S=F>0R7BLDB[V^3@@.,)DCC *@5Z510!Y[+X)UJ72->T]+JTMVFU9M6TZZ
M5F9EE,JRJ'7:  "N#@G.<\8YN:CIGB_Q#X0U;3]2CTFVNKJT>UBB@F=HRS#!
MD9BF1[* >IR3VZO3=1AU6Q6[@2=(V9E"SQ-&V58J?E8 ]1^56Z .2?0M7D\3
M^&M2,=F(=,LYX)U\]BQ:0(,K\G(&SOCK6*?!7B%=.N)K:>P@U6'7IM8LB9&>
M)Q)N!CD^4$95B,C->CTR6188GE8,50$D(I8_@!R?H* .+U[1O%/B7P=>65VF
MF07US) 4@2=S%$L<BN27V99FQC&,#CWR_5O#&JZKXEU&]/V2*UO-!?3 ?.9G
M61F9MV-N"OS8ZYKI=&UBSU_2+?5-/=I+2X4M$S*5) )&<'D=*OT 9'ABTU"P
M\-V%EJ:6R7-M D)%O(SJ0JA<Y(!YQGIQG'/6M>BB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "O/VNI[#XD^)+V6_O)+:QT>"Y^S#9M(S
M,2H^7('RYX.<]21@5Z!6/+X:LI?$C:YYMPL\ENMM-"K_ +J9%+%=RXYQN/?'
M/.: .3E\2:U9>%O#GBIKW[1%J$ML+NR\I/+5)R /+(&[<A9>I.<'/MU'C#77
M\-^%+_5HT1I($4('^Z&9@H+>P+ GV%5[#P5I^GPVEHEQ=RZ=9S^?:V4KJT<+
M@DK@[=Q"DD@,Q X]!C9U/3;36-,N=.OX1-:W,9CEC/=3_+ZT <YK%YK'A2TU
M/6;C4EU'3;?37E$$T:K+]H7D;2B@;".H.2*IWFL:SHK^%[R34#>V^KW$=G<Q
M-$@$;RH662/: 0 5((8MP?7FM?2?!ECIEG+:W%YJ&J0R0-;!=1G\T)">"@
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
MJ6X\%6#ZS+J=G=WNG2W$"V]U'9NJQW"*,*&!4X(' *X('>@"+X:_\DT\.?\
M7A%_Z#67H=G<GXH>+RNIW(*V]D0"D9!W+-@'Y,X7M@@^I-=7H&BVWAW0[72;
M22:2WM4$<9F?<V![X%5[7PW#::]J6L17UX+G4$1)E)C* ("$VC9QC<?KWS0!
MQ-KXG\17/@KPAJ"ZE&MYJ.K"TNG:W4AT,D@Z<8P$'3'UJ^FM:W9GQAITNM6[
M2Z8UNUM?WT2H$6502&"+AB.=OR\D@'-:\/@+3X-'TK2X[_4!;Z7=_;+<[XRW
MF DC)V<C+-Q[_2EU#P'INIR:R]S=WQ.K&%IMLBKY;0D&-D(7(*X'KGOF@#GK
MGQ-K=O%XVAAO+@'2]-BOK*6[MXQ("R2$@J !@F,8W#(R<BK=OK>LZ;X@T#[?
MJ1O;35=,GN)8/(1!$\21ME"!DY#$$$GVQTK4F\ :?/)J4DNI:H\FIV:V=V[3
MJ?,0!AG&W .'8<# SP >:N+X4M1J&CWK7MX\FDPO!;ABFUD8 -N&SG(5?3I0
M!FZ!=Z[K>F:!XABU6%;>]437=G)&OEK&X^58V"[MZG:,EL'GV%4+3Q!K$FD^
M(C/JUO%+::]]BBGDA *P_NLJBJIW2$,P4$'+$5L:+X$TW0;K=9WFHFR20RP:
M=)<9MH&))RJXSU)(!) /(&>:9-X TV:UO(&OM0#76HKJ?G+(@>*X&,.A"X'"
M@8((H P+G6-0OO#?Q&TV]DFD33[218&N$19=DEKOPVSCJ3CC.#SS7;^'/^17
MTC_KRA_] %97_""Z?C6\WVI,=:A$-X6G#;@$V$C*X!*C'MVQ6_IUDNFZ;;6,
M<DDD=O&L2/)C<5 P,X '3VH XK2O$M[<>*$T?5KV[TW4C//MM9H$\FZA ?8T
M$FT[B!L)!.>&R*SO"]WJ5IX%CN?[==9)]9FBDDN45Y"OVF0,(@J$M*V. 01U
MP !78P>%+6*>QDFO+R[2PF:>UBG9"(G8,N00H8@!F !) S[#%!_AYI9M/L\=
M[J4*QWYU"V,<XS;2DL3LRI&"7;A@>M '(:_K.KW_ ,/O&<-Q>W<4FG:@MO&Y
M6-)7A;RCL?:-O_+0CC!(QGOGJ+S4M6N->OO#]A=WOFV5E%,;F,6_F.\C28+!
MP%VKL'W5YSR?6T_P_P!)DLM;M);C4)(M897N ]QDJX"C>O'!^13SGIQ@<4NH
M^!++4+RSOQJFK6NI6T1@-];7(26:,G)63@@C))Q@8[8H QX=1\5R^(M!TC4-
M0@LIKO3+B2\6UB20++&R+N1F!Y.[H00/0UEMXB\36_@ZZUJ36O,ETG5VL7C%
MK&%NT6Y$1,G&02I_@VXQWKMT\*6<6L6&I17-W'+8V[V\2[U92KD%RQ92S,2
M22<Y^IJF_@+3Y-!O=&>_U VMY>&]E.Z/<9#()#@[.!O ./Z4 4-0U;7]8U#Q
M!9:%)+!<:6Z00;1"4>0Q+)F7?EMI+;?EQP"<D]&"]\2:CXR_L9M633T?1(KQ
MQ;P)(8IBY5MC,"",CN#Q^8U-0\#6-]KAUB+4=4L;R6-8KIK*Y\H72KP/, '4
M#C*X-78_#%K#KYUB"YN89_L2V*QIL\M(E)*@ J>03GK^G% '!6.JZKXCE^'%
M[<ZG<0379NO/%NJ!6=(9!OVLI&3S[#)P!6XOB:\A\8_V3JMW=:9-)?%;-9($
M-K>P=E23:2).Y!(.>!UXT;?P!IEKIVCV<-YJ"#2)7DM95E42*'!#J2%Y!#'W
M]"*NMX4M99HS<7EY<6\=]]OCMI60HDVXN"#MW8#'(&Z@#,^*C3Q_#36Y+>ZF
MMW6'EHB 64D J<@\$'G&#[U1UNSNV^)'ANVAU*9)CIM\#=O&C28W1=!M"9^J
MD>QKK];T>T\0:)=Z3?!S;749CDV-A@/4'U!YJBOA6$:OI^J/J6H2W5C!)!&T
MCHVX.06+?+R25'3 &.,4 <UI?B'5[KPY9BYU6)+F/6)[">=81Y]RD;2 ") I
M7>=JYXP &/%8^HZOJ^K>%E6YU"ZAEM/%<5@658U>2,3IM\S *EAD=."1R#77
M+\/M.2& 1:AJ4<UO?27\-PDB"1)),^8!\F-K;CD$?3%*?A]I/]GWUF+K40EW
M?+J&_P"T;GBG#!@R$@]U!YS0!U"1NEN(_.9Y N/-<#)..I  'Y 5YY8^)O$#
M^!+7576ZOI%U.XAO7LH$,ZVZ22J&C0C!(*ID8)QGOS7H44/E6RPB20[5V^8S
M;F/N2>IK L?!UOING6UG9ZGJ,0M[M[N.0/&6WOOW Y3!4^8QP1Z8Z"@"SX3U
M6'6= CO8-4&I1O))MG,81L;CA64 891@'@=,]ZY>]U+Q%<:IXVMH-<-K'I$,
M4UIY=K&Q!,+/M.X'*Y'/?I@COVFD:/;:-;S16V]FGG>XFD?&Z21SEF. !^0
MXK.;PE:M=ZY<_;;T/K,:QW(!3 "KL&WY./E)'?\ /F@#GM/UW7#JG@N[N-1$
MMOX@@8SV8@14B/V<RJ4.-V<C!R2#GH*C/B36+?5M$8ZB+N*]UB6RN!!$OV4)
MB0JJ,5#EU"+D@E<[AGH*Z*/P;9Q_V!MOK[&AKMM,M'TV>7\WR<_(<?\ U^:I
M1?#C2H8+.W2_U46]E>F\M(A<X6!CNRJX&=IWMUR1G@B@#G=-U>^T#1_&&J/?
MW-W+'KS6D:W'EE06,,:N<*/NAAQD+@=!UK3U>[\7Z38Z_>"Z9;&'2I+FVENU
MA::.XC!)4+& I0C'7D&MM_ ^D2QZU!/]IFM-8=I+FU>7]V'8+EE &03M4YR<
M$<8J&W\"6D6C7FFSZOK%XEU;M:F6[N1))'"PPR(2N!D8R<9.!SP* ,35-0\2
MZ3X-@UMM>$TMU-88C^R1J(ED=$=0>^=^<GD8XJ3QKX@U?28O$%S8ZD-VG6D<
M\%M;1*^S@EC<%UP W  5@<9('>NCU#PI:ZEX<M=#GO+S[-;F(JZL@=O+(9,G
M;C@J.@&<53U+P#IFJ7&KRS7FHHFKPK%>0Q3A4D*KL5\;<A@,=]IQR#0!4,AE
M^+NER$8+^'IVQ]9X:=\2OM T/3?L][<6V[5[)'\G;\X:91SD'IU]..<CBM:W
M\+6UMK=GJRWMZ]Q:VALU$CJP:,D,=WRYR2H/4=.,#BK6O:%:^(M,^PW;S1J)
M8YDE@8*\;HP96!((R".X- &)!J%_K'BC6=!M]4GM%TBVMP9UCC:2:656;<VY
M2N  . !DD^U7/ ^NW7B+PM!>WT:)>+)+;S^6,(SQNR%E]CMS[=*DE\*VW]JI
MJEK?7MI?_9Q;33Q.K&= <C>'5@2#G!P#SCIQ6GIFFVNCZ=#864?EV\(PJY)/
M)R22>I)))/<F@#S?9=-IGQ1:?4KJX6+[1&L<NS;C[(I'101C.  0/8GFK>EZ
MKJNAWGA.*?4#=:?J&DR.]KY**(3#"CJ4(&XY!(.XG\.E=+<>"[">76W%W?1)
MK*%;J*.4;,E A905."5 '?VP:>GA&T6[T2Y-Y>,^CPM#;!C'AE90K!_DYRH
M[=* ,/1=3\4:M%X?UJW;-C>JDE[!,T(B6.1<CRBOS[E) PQYYZ&M3X@ZIJ.B
M^#;O4=+N%@NH7B 9HPX(:14(Y]FI-%\!:;H-YOL[W4C9)(98=.DN=UM"Q.<J
MF,\$Y )(!YQG!J'XG6T]]X!O[.UMKFXGF>$)';1,[G$J,3\H., $Y]J *$VH
M>)-&\9QZ3=:NE[:ZG83SV\GV5$-K+%M)  ZH0PQNR<]_7/TSQ#XB3PEH&M7N
MK?:9=<-M:I EM$@AD<DEU8XRQ48 /&XCC'%=G%X?@EG>_FO;R>[DMC;QSS*B
MO#&Q!8*H0 $D#.1G@>E53X&TF3P;%X7G>YFL(540NT@$L6TY4JR@8*GH?SS0
M!F3Q^-QI^OQP7ACD6(3:3+,L+S%PIW1NJKM*DXP0 >>:O:%K<OB9-,N]/O9$
MMCIXGN 40YE?A5;Y>JE9,@8Y ]:U-#T"/1(G!O[_ %"=P US?S>9(5&<+P
M!D]!WYS3M'\/V&@VMW;Z<C0K=7$MRY&#AW.3CC  [#VH XK1_&&JW/AKPQ%<
MW0.H:SJ5S:R78B4;$CDEY5<;=VU%49!ZY.:B\2^)]=T#_A*=-34'DFL=,35+
M&[:*/>%+%&C<;=I^9>" #C\ZZ6+P%I<7AZWT83WC1VET;NUN"ZB:"4N7W*P7
M'5FX((Y(Z5;E\):?=V>J07[SWDFIP"WN9Y2H=HP"%4;0 H&YB,#J2>: *%SJ
M^IQ>.[#3HK@/;7.DSW)@=5"^:C1A3NQD#YCGFJ?@_P 2W&J:J+#4KR\M]5AM
M";S2[VW2-A)E?WD3*HW1_>'4]5K0@\"V<=];7L^IZI=W4%K):"2>=?FC?&00
M% _A'0#WS5VU\,0P7=O=RW]Y=75K;/;6\TYC+1(VW<1A!N)VKRV>GN<@' :#
MJ.I:'\*/"FLVMX\>G6K@:E"L:-FW:1@7!()&TD$X[9KM1KYM9-3U6XEN[C2T
MG6UMHK6U,Q+*,.X"*6(WY7G(&P^M4I["/POX:MO"FG:5J6K074,T$3.J-%$"
M.DS_ "X4[CS@G /L*Z71M*M]#T6RTNU'[FTA6)2>IP,9/N>I^M #M+U.'5[!
M+RWCN(XW) 6X@>%^#CE7 (_*KE%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %5-]_P#VQY?DV_\ 9WV?<)?,/F^;NZ;<8V[><YSGM5NN
M#NUAA^+5\YE:#=X:+R2(>5Q,1N ]0 /R% '=@@]"#0"#T(/TKRC34ETT7.CZ
MNMG;/)H5P;7Q#IG"RVX" R2+U#KE6SD@Y.#4%Y'<0:!XMT?5=%L8M3306FCO
M-. \BYC0.$?;C*."3_3@"@#U^DR,D9&1VKRZXU"V;Q3X+ET^XMI+QM&NPNUU
M)=O*B,8/KSG ^M0^$AH^LV_AK5X]<B76X,+-!#&JW,TI7$L<W.YAG+$D=LT
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
MRQJ+Q"LI,(B).2I38H &#DCJ:V=%\/Z3J7Q%\7M=VJS-9WMG- &<_NG-NIW
M9ZDDT =SITE^]JS:E%;PSB1P%@D+KL#':<D#G;C-9GC+7[CPUX4O-9M;:*Z:
MW"DI)(4!!8#.0#GKTX^M<!I%QI]OX(TRTN@S+-XDN(K>-I0D+.)I2HE)!RF!
MG'4D+5"[N81\,_B%:)=6SK#JS&-+?"HJ'R#\BY.%W%N^,DT >VTA('4@4M>1
M:EHVF7?_  M(W%K'*;91-!OY\J3[(&WKGHV[G(YH ]<R,XSSZ54L)+]TN#J$
M5O$RSN(O)D+ Q _*6R!AB.H_6O/;.SMK3Q5X O8$"7>IV,XO9\DO<C[.KC>W
M5L-R,].U5M+LGN?"^L65A>VMK./%5T+9+I2\$S)*66)QUVD+C\!0!ZMN&,Y&
M/7-5;O4K2RGLX)YE66\E\F!,\NP4L<?0*37FL(N]5T];:QL=/TK6K+5I3+I=
MT?,L[N00C<$(' *N''&00<CBJLCZ3J \$7%UH]OI\<>KWEO<6]SL=(F"S;T#
M8P4W@X[<#TH ]>R,XR,^E58=2M+C4KK3XIE>YM4C>9!SL#[MH/O\I./3'K7D
MFOWVF2?:M0L9H(Y(/$\"--<2!KDNLD:.$QC9$%R .<@GH#6E+Y%IXI^(=WI<
M-K_:W]GP3:>R(OF-(;>4[D[DDC)QUH ]3!!) (R.M&1G&1FO-/#=IX<UB\T3
M5;#6K>2:2TDBEM+5%5IT9/F%P 2QVD=3_$?]JN<TK2['_A OAWJ(BVWTVI0V
M[W2N1*T;^8&3>#G:?3.* /;@0>AS0"#G!!QQQ7D6I$^'&^(L&B1?9;:W2PG\
MBU7 C5Q^^95'0E 2<8Z9JQ?Z?X?GTK7]3TG6;6X\_0)]]KIZ(D)"J625PIX<
M'@$X.,CL< 'JH(/0CUJKI^I6FJ0//9S++$DKPEUY!9&*MCZ$$?A7F^FZ;8V'
MB+X?36T"1RZCID\=V_4W"B"-@')^\ >F>G;BM?X5PZ?;^'KJ.VBM8[E=0NUE
M6-5#A1<2!0V.< =,T =C>O?I+:"RAMY(VF N3+(5*1X/*X!RV<<'%8^IZ]J!
MU>\TC1+2WN+ZSM$NW6XD**^]F"Q@CH3L;D\#CU.,WQU'&-<\&3$8D_MI4!SV
M,4I(_,"H-+T[3O\ A<.O2"SM?-33[256$2[E=GEW,#C@GC)ZT =C=:A#IVDR
MZCJ#+;0P0F6<LV1& ,GGO_6LF\\13VWBW0])6UC:UU.&>7SS(=ZF-5.-N,<[
MASGUXJG\3X(Y_AGX@$D22;+-W4,H.U@,@CW'K6'J%EI%[XN\#6<,-K)8/:WV
M88<>6WR1D@A>"">H[]Z /2,@C((QZT @C(((/<5XQ;WT>CZ;%92S1VOA^'Q7
M>6DI=-\,,>',2,,X$>\CKP.*[_P;I^G:?)JHTO5%O;::X$K1P!?L\#E?F6/;
MD#/#$9XR#WH Z@D 9)P/4TN1ZUPGC/4(;?Q?H-IJES;VVDW,%PH>ZC#PM<@I
ML#[B #MWXSW)KGK_ $32K:Q\*6EKJ#ZA9'Q+Y:2;L(L;1RLT494X,888QST(
M[4 >M[EQG(Q]:,@$#(R>@KS$^#O#S?$PZ&=.C_LT: '%KO;;G[2>>N>/TX]!
M55A!JO@WQQ<ZH FN6%Y=%)3Q-;E!FW\L]0,!-N.N3UR: /6"0.I I:\MM]#M
MM>^($-MXBM%FGF\,V\UW S$ S>:=QP#U!%>G3017,#P3QK)%(I5T<9# ]010
M!)17B-Q;3Z?HSZ=!8K+=>"=0:\9WCR9K3.]%SW+1NQ[\Q>I!K?U^[AM--TW7
M9C';:=K.K))?3O#E1;F-E@\P''RDB-B#P"QS0!Z<&!7<",>M!90"21@=3FO'
M_$^E:3:>"?$<NG:JEW#+>64Q2V*K;VTAE16\O:< L.6&>X/>M76K31_#WC#3
M=*E%IIVC7T-Q,/M,?F02WA9,[MYP&V XSZGN: /3**Y[P786FF>'EM+#49-0
MLXYI!#,Q!4+G.U".J*<@?3':NAH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ JJVFV#W373V5LURR[&F,2ERN,8)QG&*M5DZIXETO1_/\
MMDT@^SQ":X\J%Y/)C.?F?:#M'!Z^A]#0!9@T?2[:.6.WTVSB29=DJQP*H=?0
M@#D<GCWI]KIEA8QNEG8VUNC\.L,2H&^N!S56Y\0Z;;^6!,\[20?:%2UB>9C%
MV?" \'L>_;-59_&GA^WM=.N6U /#J.?LCQ1O()2 3@;0>>#QUSQC/% &A:Z+
MI5EY7V33+*#R2QB\J!5V;L;MN!QG SCK@4Z'2M.MKZ6^@T^UBO)N);B.%5D?
M_>8#)_&L%_B+X915+7EP&:W%R(_L4V_RRVW=MV9ZY^F#6C=>*M'L[F.&>Y=%
M><6PF\ES")3P$,F-H.>.O7CKQ0!9DT'1Y;F6YDTFQ>XEQYDK6Z%GP01DXR<$
M _@*T,8&!6+J'BO1M+>47=TR)#*D,\PB=HH7;&U7<#:I.Y>IXW#.,BJ]AXNM
M+[Q'K.E&&>!=,""2:6%U0DJ68EB,*H&,$D9Y(R,4 :JZ-I:>=LTVS7SAB7$"
MCS!_M<<_C2#1=*7R<:99CR/]5B!?W?\ N\<?A5:T\3:7>:FFG1S2I=20F>))
MH'B\V,=60L & R,X]:YGQ%XJ6;5/"PTF_NEAN]62%RD!$-S%M?.'*\C(7&#@
MCU% '7-H>DM%-$VEV1CG.9D-NF)#G/S#'//K2OHNE2+(LFF63B0*'#0*=VT8
M7/'.!P/2J?BR^L]/\,WMQ?ZE<Z;;A,-=VR%I(N>HPK?3IWI+[Q7H^FZE_9EQ
M<3M?"W^T"".VDD=T! RH53N.3T&3U[ T :":7I\=REREC;+<(NQ95A4,J],
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
M)K6WN+5K6:"*2W9=C1.@*%?0@\8J6B@"@-$TE;!+$:79"S0Y6W%NGEJ?4+C
MJ2[TO3[^S%G>6-M<6JXQ#-"KH,=/E(QQ5NB@!D44<$2111K'&@"JB# 4#H .
MPI]%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %<"TNI>
M'_&VO_:-!OM5T[6O)DMY;2-9 K+&(VBDW$!1P"">.37?44 </:P7^@^/+S4K
MRQEDL-2T^WC#6<+3"VEAW9CVJ"P4[R0<8]<5A6GA[4-)C\+"2QN6V:[<ZA-%
M'$7%K%()=JDKD<;UR!W)],UZK10!R @N/^%MM>_9+C[(=&%L+CR6\OS/.+[=
MV/[O.>G;K7.Z3ITUJ]UX<UCPE=7\POI9K>^90]I*CRF19'8M\K+NY&">.,FO
M4:* /.]*?5=%U'7="O/#MWJ"7NHS7EG=+&KVSI*VX"5B?EV'KQG X!XRS4M#
MU6]U7Q]IT5I.G]M6D0M+O $)(M]A!;/'S#&.N#GI7H]% 'F]E;2^)-.DA_X1
M.[TC68[*>!KR]7"P2/&4/DON)8$D'(&,#GG%44;5KK0?!.GMX<U2*[T?4;9;
MQ/) 15CB="RN3M93P<@X]><9]6HH Y7XD6ESJ'P]UFRLK:6YNKB#RXHHD+,S
M$CT_G5;;.WQ/M-2^QW?V(:&\!F-N^!(94<*>.NU3_+K79T4 <G\.+6YL?!L-
MK>6L]M.ES<L8YHRA :9W4\^JL#7.ZE8:G'8?$;3QI5[(^I[Y+22./<DN^W1
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
MJR8NZ^3=(%<;6(S@$\'&1[&KM%% !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 %
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 %
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 %
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 %9NL^(-(\/6R7&L:C;643MM1IG"[CZ =3^%:5
M4KFTL$GDU*[CBW1P%&EEQB.,9+=>@/?UP,]* );&^M-3LHKRQN8KFVE&Z.6)
MPRL/8BK%<C\/-&.CZ'>L(3;V]_J,][;6Q7;Y$+D;%V_P\ -CMNQ774 %%%%
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 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !7,>*-,\2ZG=6HTB[TJ*RB^>
M2&]ADD\UP>,[67@<''KUZ"NGHH R="@UZ*&=M?O+*XG9QY:V4+1QHH'^T222
M<YYQTK6HHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
'"BBB@#__V0$!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>17
<FILENAME>cgnx-20231231xexhibit97003.jpg
<TEXT>
begin 644 cgnx-20231231xexhibit97003.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
MU>T6[:6Q_P!(U))QGSU!W QXR1@#Y^F6'K0!O:KJ"Z5I5UJ#V\]PEO&96C@
M+E0,G ) )QVS63#XQLI[S0K=+6[QK4!GM)2(]F H<ACOSG:0< 'VZ&NA(!!!
M&0>H->8GP!K-OHCI:S0_;M'O_,T#>?EC@$A<JY_VE<H1Z(M '1:SK^F31:<;
MZSU-8VUF.T@>)@H,ZR;0S%7YCW @@]<'BHSXANM4U_Q-H3V%S!;V%M&%N(YE
M4@NDC;LJP89PH&,G@YQFCQ-H%X^D>'K'3+9[H6&I6MS*Q=%)2)LLQW$98]?<
MYI%TO5[/Q?XEO8[ 3V>J6D CD69597C1U*%3W)8<],9Y[4 9_@3Q:B>'/"6F
MWMMJ'F:A9JD5]*H,<LJQ[F7);=G )R5P<<$UW\TGE0O)L=]H)VH,LWL*\[L?
M#NMV^B^ K5]-?S=%F5KS$T> !$\>5^;GE@?I7HLC,D3.L;2,!D(I&6]AD@?F
M: .4TSX@Z=JFG+J2:?J<.GR0B2*ZFA"I(QD$8C4[C\Y8C Z>]2-X\TN"?4+:
M]BN+2ZLHXYFAE,9,B2-L5E96*X+$+R1@]>.:P+3PCK3_  BL=",,5MK.GO'-
M$DSJ\3O'+YB@E2?E.,5I+;ZOJ>AW8O\ P;86P=$BDT\SQR&Y4NN_YAA5 4-M
MR<DXZ8Y -+5/&-MHNF7E]J.FZA!':RQQN-B,3YA 5@58@KE@,YZ]J;9^.-.G
MU>[TR\M;[3)[>V-X#?1"-98!UD4@G@=P<$>G6N'\1:%?>'_A[XCA0W:Z4US8
MG3K*\G$KP8GCWJ&!;"$XP,G&#ZUTVN^%KKQ?JDMQ<P2:="FDW-A'YC(SM).
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
M<3W,UW,$.51I'+[0?0 @9[XS6_0 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !117+?VSJ6L:_KFEZ3/;VK:2L2;YHC)YLSIO (R,(!M'')
M)/(QR ;<^BZ5<S--/IEE+*W+/) K,?J2*C_X1[1/^@/I_P#X#)_A7+:!XXN?
M%8T>UM(TL;J[LIKNZ9UW^5Y4HA*H,C.7R<GH!TR>+J:UKL5UHNA:@+*'5[X7
M#RSP@M&(HB,,JD_>;<G!) YZ]* -S_A'M$_Z ^G_ /@,G^%'_"/:)_T!]/\
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
M5IH(I[>.,@V_GCY&5L_-M) .1SG(QTH [JBO,KWQ?XHM_#GB365FTS&AZG)
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
MC#AE(VE6  VX    X&*T=*\0?VGX@UO26LW@;2VA!D9PWF^8I8$ =.!ZUM4
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
MM>W0F#Z<^G2V_E822)R&;OD$D?E^=0>'/!]QH#0PR>(;^_T^T&+.TG5 (1C
MW.!N? .!DX'IP,=310!@^+/#?_"4Z7'I[WKVL2SQSEHXPS%D8,O7C&1SQ4%Y
MX1_MC4=.NM:U*>\CT^<7,%LL:QQ>:/NNP RQ&3CG'M72T4 <JW@M(WUF&SU&
M6VT_67:2\MA&&(=QB1HV_@W#KD'GD8J*]\!03W>H-::G<V5IJ&GI87%K$B%2
MB*RIM+ E<!B,#K77T4 <OIG@]]-UC3-1_M66=[#3SIX62%1YD9*L2<8P<JN,
M=AWZU4O/ /FMKT5CK-S96&N+(;NU6)'42NNUG0D97/<=^V*[.B@"G8:>MCI%
MOISRO<I#"(2\H7+J!CG  Z>U<_X?\$OH#1VL>N7UQH]NY>UTZ54VQ<Y +XW,
MH)X!/''7%=910!R-MX#M[;2SH8O9'T 7 G2Q:,94;_,\O?\ \\]W.,9QQG%3
MR^$6DNO$D_\ :)']NQ+#*ODC]T%0QC;SUVD]<\\^U=!)=P1W<=JT@^T2QO)'
M%GEE7 8CZ%E_.LSPUK__  D5C=7!M&M6MKR:T:-G#'=&VTG(XZB@#&E\!.DF
MDW>FZY<Z?J6GV:V!NHH483P+T5T;()&,Y]2>/31G\*"34M"O$U"4-I#RR+YB
MAS.\BE79SQU#$\8P3Z<5T5% '$ZE\/%O[?7+)=:NX-/U>?[3+;I&AV2G;N(8
MC.#L!QZ^HXJ])X/DC\0S:SI^LW5I/=PI#?KY4;BYV#"O@C"N!QD#'M4GBKQC
M:^$'T]]0MI6L[RX6W-S&1B$G^)P?X?<5KZOJEOHND76I71;R;:,R,%&6;'10
M.Y)P /4T <E'\-DM='T2WL-=OK74='5DMK]40ML;[R,F-K+P.#SQUK;7P_>0
MK;-'K,LLR)*MRUU"LBW1?;DLHV@8V  +@ <<U8\,ZZOB7P_::Q';/;PW:>9$
MDC MM]3C@5HW-W!9Q+)<2K&C2)$"W=G8*H_%B!^- ',V?AJ[T*;P_8Z-J%Q'
MIUD)!<VY1/+E5LMDG&0=QX"],^@YU?$?A^V\2::EK/)+#)#,ES;W$6-\,J'*
MN,\<>A[$UKT4 <U=^$CJ*:C+?7_F7][8G3S<)"%6*$YW!%R>23DDD\@<8&*V
M-(L&TO1[/3S,9A;0K"LA7:6"C )'K@4ZVN+N6]O(I['R((F403^:&\\%02=H
MY7!R.>N,T^_NFLM/N+I86F,,;/Y:D M@9QD\4 9FG^'VL/$VK:S]L,AU)8ED
MA,8 01@A<'.>A.<]?:LO1? S:%=>3:Z[?'1$F,\.E,J;(VW;L!\;]@;D+GZY
MYSN^']6&O>'=.U=83"M[;I.(BV[9N .,]^M,\2:VOAS0+O6)+9[B&TC,DJ1L
M VT=2,\&@#G$^'(CM;2T37[Y;:RU(ZA:((XR8V+.Q4DKEN7;D^O>M2;PF;VZ
MM6O[\W-O::@=0MU:$"2-]Q8+OS]P%NF,X &<<5/;:[>S?8)'T.X2VNRH\Y9D
M81AER"P!SCH.,\FM*PN+NX6X-Y8_9"D[QQ#S1)YD8/RR<=,]<'D4 <Y%X#MX
M=-N=%2]D_L"XN#.UB8QE<OO:-7[1ELY&,\D9JTWA5_[5UV_34"K:O;I;R)Y(
M(B5%95*\]<.W7OCZ5TE% ''6?@(V,^ERV^M74366FC2WV1I^^@4Y7J#M;CDC
MK[4EEX!&FZ=H$-KJ]P;G0RXM9I8D92KKM*LHQD8]"#GO7944 <IJ7@B#4M"U
M/3WOI%GU2=)[R[V NY0KM"CHJ@(H YX!ZDDU5\4167BJYA\*3VUW+=0SP7,U
MPMN\<4:#YF82=/F7<F 2?G]CCJK:XNY;Z\BGL?(MXF403^:&\\%<L=HY7!XY
MZ]:??7+6=A/<K"TS11EQ&I +8&<9/% %@    8 Z 45F>'M777_#FG:NL)@6
M]MTG$1;<4W#.,]ZTZ "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MK<%S=1WUIXJE\EDG=44->JK H#M((8@Y!ZUZU>:-INH7MK>7=C!-<VI)@E=
M6CSC.#VZ#\A50^%-"-C+9'3(3:RR^?)"<['DSG>1GDYYSZT <?=)/XJUGQ7I
MLNM1Z;=6$R+;L0_F6T7E(RS)B11RQ8DX[8)Q@5Z!I[.VFVK27 N',*%I@FSS
M#@?-M[9ZX[5G:CX1\/:O?6]]J.CVEU=6X CEFC#, .@)/4?7-;5 '+^,-*MM
M<ETO2KQ=UO=O/$X[@&WDY'N.H^E<IX?O[_7=#;0-45S<^'%E3478'$TD8(MR
M">H(_>9]47UKTBYTNSO+NWNIX \]N287+$&,D8)'/&0<?2EETVSFCNHWMTVW
M9S<8&/-^4+\Q'7Y0!]!B@#S3PW/"?A[X!L&FF:>Z'[NS1]B7.V-R1(W9!]X]
M<D 8-9<JF_\ #5I#>RM+]C\:K;1#SV81Q_: -H;.2 "0">0.F*]/?PCX?DTZ
MWT]])M6L[:3S((2F5B;U4=NIZ>M*?"7AXVEU:?V-9"WNY1-/&(0 [@Y#'W!H
M Y&ZC?Q#XF\1>'CJL=D;*W@6RW>87CC:+/G(1(N6#D@GG[H!/-0C2SK'C>QT
MR^UJ_N[:7PV))98+F2!9W$J*)0JM\N>#QU]Z[+4_"'AS69+634=%LKEK50D!
MDB!V*.B_[OMTJX=&TXZJNJ?9(_MR1^4L_.X)_='^S[=* //KF\6PE^($5SJF
MHP6T5S9Q1213-)*GF1Q_)&7/R[F;'4 ;LY&*MZ3+<0>)?&6G2!8+=-.MYDM(
MYS(D3LDH;&0,$A5)P.W?K77R^&-$G6_6;38)%U#'VL.NX3XZ%L]2,#![=J;#
MX4T"V=Y(-)M8G>#[.SI& S1\_*2.<')SZ]Z */P[_P"2;^&_^P=!_P"@"HOB
M9_R3/Q%_UXR?RKHK"PM=+LH[.Q@6"VB&(XD^Z@] .P]J;J.F66KV;V>H6Z7%
ML_WXGY5O8CN/K0!C>'-+OH8M.NYM7N+JV_L\1^1(B*%9MA!!11GA2.<_SK@K
MJ6Z'@K6674;]9(/%I@CE%TY<1_:D3:23\PVG&&R*];M;2"RM8[6WC\N&-=J(
M"<*.P'H*S#X3T$VTEL=,A,$L_P!IDC.=K2YSO(SRV><]: .+O9H?#?B'Q=;?
MVI?VFG?V)%=M+YSSO#*S2H73>3\QPOX@4_31/!XVN],)EM+6;P\LY@CO&9MX
MD*B0L,;9"#R5)^IKMI?#FCSW%Q<3V$,LMS#]GG>0%C)'_<;/5?8U!;^#_#MJ
M\;V^CVD3QPM CI'A@AZC/7F@#SS01-;:/\-]8%]?27M],MO<O+<NZRQM#(Q4
MJ3MZJ#G&<C/7FMC07@\2Z+)JU_JMS9ZK9ZO*)VBE(:+9,56WV]-K)M&W'S$Y
MY)KKU\+Z(D%G FG1+%9/OM4&0(&]4&?E/TI/^$5T#^WO[<_LBT_M3K]I\L;\
MXQGZX[]: .*NKY;"X^(_VK5M0M;6%K98YHI#))#YD*\1[C\I+-QR ,]JL:;)
M<6OC+Q'IS*+:V.C0SBT2X,JHY,H)YZ,0!G'7 Y/6NP?PUHTOV_S-.@D_M 8O
M-Z[O/ Z;L]<=O3M4<'A+P_;2>9!I%I')Y!MMZ1X;RSDE<]><G\Z */PX_P"2
M;>'/^P?#_P"@BNGJM8:?::791V=C D%M$,1Q)]U!Z =A[59H **** "BBB@
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
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !117!Q7+>*OB7K.D7;,=*T*" &UR0D\TH+;G'\051@*>,\^E '
M>45ST^G:;X;NIM?\XV>GVME*)[=6/D@95MZIT!PI' YR*8OBSR-0TNVU'3I;
M1-5!^QR&16RX7=Y;_P!QR,XY(X(S0!TE%<._Q'6/2YM5;0;Y;"VOVL;J4R1[
MH6$@CSM!);YB,X]>IYQHQ>+W&JZAIMWHUW;W-M9_;HH_,C<SP[BIQAL*P(Z$
M]^M '3T5Q%G\1DN#H4]SH=]::9K1CCMKV1T*^:XRJ,H.X ] 2.3[<U>D\:+#
M>V:3Z;/#:WFHMIL,LC;7,@W#=Y9'W"5(#9]#CF@#J:*XJ^^(+6D>NRIH%]+%
MHDVR\;S(QM38'+#YN>&S@>G..!6O!XF27Q6FAM:.GG6?VRWN6<;)DR 0HZ[@
M2,CT.: -ZBJ&CZD=6T\7GD&%&=UCRV[>JL0''LV,CV(KE]*\:W M/$VHZU:B
MWL],OY+=/*<.WRK&%0# RS,WYMB@#MZ*P8O$AC\0VNBZG8M9W-["\MHPD$B2
M[,%TR ,. 0<<C'0FCQ!XG&@WVEVG]FW5W)J,K0Q>04QO",V#DCKMZ]!W(H W
MJ*X:7XDQ6NC:W=7NB7L%]HLD:WECO1F57^XX8'#*?;)]JTI?%YM66&_TXZ?=
M3S.EK'>7,:++&JJ3(6!.T?,!CDY(X] #IZJV=A!8--]FW)'*YD,0/RJY.6('
M;).2.F<GJ3GDH_B59R:?:W$>EWDLDVIG2GCB9&V3@$\-NPRD#(8<>I%36_CT
M,-7M[S1+^VU33?*+6*[97E60[49"I((R>?[O.: .P(R" 2#ZCM5>RL8+")TA
M!W2.9)78Y:1SU9CZ]/H  ,  5SLGC9+:#Q']HTZ4W.@Q+/<Q6\JN'1D+@JQV
M]E;((!XXS38_&X^SP37FER6*WAC%BUU<1JMQNC+DDY^0*!SN&>1@9.* .MHK
M"\,^*+?Q)'?+'$8KBQN#!.@<2*3C(9''#*0>#QWX%9D6M7^J>+O$FA7-D@T^
MSM8,,)>?W@E)8\9YVJ,=L>] '845YIX \3OI_A/P;I]UIMPMMJ$(MXKTNNTR
MA&;!7.[!"MSZCTYK9N?B+IMO/;N%26QFO/L?G1W"F17W%-YBZ^7N&,YSWQCF
M@#LJ*P/&T"3^"=:#Y!6SE='4X9&"$A@>Q'K6%X+U^33?#FJZ5K<SR7_AIV@G
M<\O-"!NAD [EDP!W)% '>45Y;X-O+K2]5\=:EK(N+R[M)(I6BB!E9-T(=HHA
MZ G:/7 S75#Q;,+S4].?30NI6=@M\L(N 4=&W  MC*L"O(Q],T =117%Z-XT
M<^$=!OM52"._U2%6B5YUC1SY8=F+'[JC\3R.N:C7XEVC644R:7=2RG5%TN2.
M%T<+*W1@V?F4CH1^.* .XHKC_P"V8KGQ1X;CU7P[<VFJ3K=_9GDF1A %&''R
M,<[E"GIT-3CQHJWVG1SZ;/!;:C>R6-O)(VV0R)N^9HR,A#L.#D]L@9H ZFBN
M+\%QK#XI\:QH,(-3C(&<XS;QD_J36=XX^RP_$;P:;F*9[>X6]%Q'#$\AEVQ*
M4RB EL$YZ'% 'HO2BO/-4G\.V/@O6-8_L>]N=+FD6&XLFW1<QRE-^UR&3YL9
MP,\#CK6_?^*IK;Q-)H%IHMU=WBV7VQ")(T1UW[<9)XY]?R/6@#>>UAEN8KAU
MW219\O).%)&"0.F<$C/7!([U-7,6/C%=6TG1KS3].N)'U02;5D^5(/+!W^8X
M!V\@@<')JH/B%;/H6D:I%IEW*FHW_P!@$:,A,<H=D()SR,H<$<'C.* .RJAK
M.DV^N:3/IUTTR0S 9:&0HZD$,"".A! -8</CB!$UA=2T^XLKK3)88GM]ZR-*
M9L>4$(."6)QCL>I[U-<Z]+Y6L6FI:%= 6MGY[>4P>.XC8$%5<[1N&#E?R)H
MMZ?H$MM+')?:WJ.J"([HENO*"H>QQ&B[C_O9]>M;5<KIFNQ1:#X=ATC2)!%>
MV G@C=RL5O$L:D*\F#@X90/7GTK!US6;7Q-I?@;7+:*2-9]=@ 5S\R\2!E.#
M@_,OZ"@#TBBLKQ-$DOA?50Z@@6DK#U!"$@CT(]:\GTFX-WHO@F#PS<71\2XM
MKB_*.^S[,1^]:;/RL">G4YZ4 >VT5SVM^++;2KR6RC$$UY%;BX>.6Y6$;"2%
M +=6.UL#IQR1D9IVGCVTU6*U.DVK7$]Q8?;UMY9!%(R;BNU0<[G#*P(X XYY
M% '6T5R:>(]3E^(,>BBQ5;+^S!>%C(-Q+2!<D8_AP1COFG6GC07&HZ3:S:9/
M;KJXF-GYC 2?NP6/F(0"F0"1R??% '545P^A^-IY-!O]4UJVCMUCU&6SA5)E
M(+"7RU3)QW'+' ZG@4EU\2[2RL];DEL'FGTF))Y$M)TECEC;HROQT/!&,CT-
M '<T5RK^,+E->_L<Z!=_:9[9KFS_ 'L>)E5@&W'/R8W \]CZ\4EKX[L;C0K6
M_EA-M<7%W)9"VGE5=DT98.&?IM&QCGTQ@9(% '5T5PY^)=FMG/*=.GEFMM0B
ML)TMY$D0&0@(ZOD;E.>PSD8(%3W/C:YBM?$<?]C20:EH]H+M8)YE*RQLK%6W
M+G'W&R/;K0!V-%9/AF]N]1\-:=>7T82XFMHW8A@=Q* [N.F<]*UJ "HKFWCN
M[66WE!,<J&-P&(.",'D<BI:* .;T_P (FQ@CLY->U6\TZ)0B65PT6S:.BEEC
M#L.V"V".#FNDHHH *Q]:\/QZY/;-/J%_#;Q!EEM8)0D5RK8RL@QDCCL1U/K6
MQ10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% &/I_AZ.QU>ZU*2
M_O[R:9G,2W4H9+96(+)& !@<#KD\#FMBBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "N0O/#
MVI:9XSG\3:$MO/\ ;H$AU"RGD,?F;/N2(^#A@.,$8([BNOHH YS6-'OO%7A[
M4=,U )80W=LT*I&_FL&/1V. .".@Z^OI070M8U?_ (1U-:AMHCHTZW,DD,Q?
M[1*D;(NT8&U3N+'// '/6NRHH \XG\'Z]+X'UK1A%9"ZOM6>^C)N&V!&N!-@
MG9G.!CI6MJ6D:D?%UWKKQ0+9'0WLR/.)D#[B^<;<8[=:[&HKBWBN[>2WGC$D
M4@VNAZ,/0T ><^%M(OO$/@+P5;W$$4%G9"UO6E$NXR"-<QJHQP2<;L],$#.<
MTDOA'Q3.;1YXM,N+RTUL7QO9+A]]S"&<JI&SY JL %!(^7CU/H=A86FF6<=I
M8V\=O;1C"11C"J/0#L*LT <!=^%=;N--\<6PCLP^O$_9CYYPH,*Q?/\ +Q]W
M/&:7Q1IIOM/T"TMK^*S\1V<\447DR!W177;,,==OE[FY'\ KOJIII&G1:K+J
MB6%LNH2H(Y+H1#S&4= 6ZXX'Y"@">VMXK2UBMH$$<,*".-!T50, ?E7 W?@;
M5+_2O%>D236L,&I7YU"SNE=F=9,QLJLFW  :/DY.0>E>AT4 <LNCZEK'B#1-
M6U>W@M&TF.8B.&;S/,FD4(2#@80#=C/))' QS1\=/.GB/P6UO$LLHU1\(S[0
M1Y$F><'G&<>]=O5*\TC3]0N;>XO+2*::V;= [C)C/JOH?>@#B=?\&:KK&F^*
M9XDMH]1UM;>&.*24A(8HN068*<L26. ,<@9XS6MXFTC7;F_T;7M$%K_:6GB1
M)+2YD(CGBD"[UW@<$%%(.*ZVB@#SOQ@VLBS\*S7\5K]O?Q%;NMM%(3'&/+D^
M3>5R3P3G'4],"I]:\+Z[J4^L:S9216FHW4-M:P0&8KF".0NZO(H^5GW,.,X
M'/)QV%_I&GZHT#7UI%<-;N)(3(,^6XZ,OH?>KM 'G#^$-=/_  EHALM*MHM;
MTR.UAABG8"!PDB8/R#(^?.<#IC'>M'5/#NNOHWAR[TQK2/6]$Q^YF<F&93'Y
M<B;@,C(Y!QQ7;44 9NC'5Y+9I]9CMH+AR-MM;.9$B4>KD L3WX Z#W.,NBZO
M9^--;U2WCM)K/4[2!/GF971XA(,8VD$'>.<\8/!KJZ* /.[+PCKEKX=\%:>T
M=F9=#NDFN6$YPZJCI\GR\GY\\XZ5;\/:/XL\/N^AQ'3I=$6X>2WOFD;SXHF<
ML8S'MPS#) ;('?!Z5W-% &5XFL[O4?#6HV-BD3W%S;O"GFN44%E(R2 ?7TK%
MO_!S:AXVT_Q#YHMXQ!Y=_:J<BX*,'ASQ_"V3GV Z9KKZ* //3X8\3K)XUFLY
MK6SN-:,;V4R3L6B*H$PWRC:2!U&<9]JET[PMJZ>)I=0>QTRQL[G1_L,D-O.S
MM&X=VS]P;\[N3Q^/6N]HH \X@\*>*;+P[X8DM/[.76/#ZF!8&F9H;J$H$<%M
MH*L=H(X.,=3VTM9TCQ-K=EI$MQ#8)=6VJP7TENEPVR*./^$/LR[').< =NV3
MVM% '-:OH^HWOC7P[JL$<'V33EN!/OE(<^:JJ-HQ@XQW(KF%\(^*7_LN2YBT
MN>]L=9^V2WKW#[[J/]X!GY/DVAP N2..,=_3** .:\.:/J&F^(/$=Y=I (-2
MNTG@\N4LP"QJF&&!@_+G@GK4&NZ)JM]XZ\-:Q:Q6QL]*%R)M\Q5W\U HVC:1
MQCN:ZRB@#F_'.B7FO^#K_2=-2 7-UM ,SE$&'#$D@$]O2H_[*U3_ (6#_;WV
M>W^R?V3]CV>>=_F>9OZ;<;>V<_A7444 >;:9X3\3:=H_ARQ>+3[J"QEN3>V;
MW+"*;S&+1OG8=VS)^4CKSV!"6O@WQ#;Z'I.GM'I[-8Z^=2+).P#Q>:[\#;PW
MSX Z<=>:]*HH \[UGP3K&KW_ (HGCEMK5KYK*?3YO,+%);;D;UV\ GT)XK=C
MC\4:GHE^FJVNGVMQ):O!%;V]PTBN[#&]G*C:/0 '@G)/&.GHH X"V\-^(K6T
M\*6S0V%W:Z;8_9;NSEN&6,RA4"S#Y#OQM. 0,9]>14L?!WB&U\,>&M,DCL&E
MTG5_MDC+.P#Q!I#Q\OWCYG3IQUYX]*HH S]<M[B\T*^M;1$>>>W>)!(^U<LI
M')P>.?2N,A\$ZO;>%_#LEFUI;>)M"A2&*7S&,-Q&  \;G;G8PYZ9!&17H=%
M'$WNF>*K/Q./$.CVVGS&]M8[:_L+BY90K(6*.D@0YX<@@K_]9GB7PM?>(;<0
M:C86=Y*MMFVO8IC!+:719B2C8R(QE.Y/R\@YKN:* ..A\/:Y:>++#5%N+:Z
MT9-.NKB5RKB17W&0+@ALY/&16-IGA+Q/#?>&;V\@TQKO3)YC>W/VEWDN]\;)
MYI)3.1GA?PRHKTJB@#SH^"]?_P"$?U#3X9[*"YAUA]5TVXWLX=S,9%$B[1M&
M"5.">N>W-S6]+\6^)_!6JZ=?6VFVEW=P>1%!%<,Z D\NSE,]N% ]<DYX[FB@
M#E9M(U67QOI6M>1;BVM=/FMI5\\[][LAX&W! V>HZUS\?@WQ):Z7%<V;V,6L
M6.LW.I6R/*S131S%]T;':"IVN1G!Y'Y>E44 <1K>D^*/$&A6RW,&GP7:W]M<
M_9DN&*1I%('/S[,LS8] !Q[DNO?#.J7^O>);DK;16VJZ0MA$WFDLC@2<L-O3
M]YV/:NUHH YO18?$6GZ1H5C-::>/)18+PK<,VR-(\!D.T9)8=#T![]:Z2BB@
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 **** "H[BXAM+:6XN)%CAB
M4N[L<!5 R2:DKF_&.F:_JEI9)H-SI\3Q7 EF2^5VCD"CY00O)PV&^H% &;X%
M\:77BW6_$T,MK]FMM-ND@@C=<28PVXO[DKT[=*[:O$OAY<ZYX;U?XA:OK5NL
MT$$[S7"6D#[YI@S',6[^#&[KZBO7M$U6/7-$L]4B@G@CNHEE6*==KJ#V(H O
MT444 %%%% !7GOQ*\9ZUX1U#P_%IGV)H]3NOLSBXA9BG*C<"''][I7H5>.?'
M%!<:AX0C57E$-^9)Q$"3&F4^8[>0.O/M0!Z#8W6N+KK)<WFGW>E)%(LTD-J\
M3Q3*4(!)=@059OH15JV\6>'KV,/:ZU83H91 &BG5@9",A.#][ /'6L/0-1T/
M1+Z/0='G:YCNKB>Z9P6=;="I=BTAX^_P 3G!]JX73KBV\,_&#^TK6%G\.Z\\
MFUER5M[A3M:4J/N!B6 )_A<GI0!ZW>^(]&TV\6TO=4M;>X8J!')* 06SMSZ9
MP<9ZXXI]]KNDZ;<K;WNHVUO,P#!)) " 3M!/H"> 3WXKR.Q%A!XX\9^'O&NG
M7%Q#JUZEW9$0R.+A5)V*I09R!M'X$&HK^VB7XE>,-(\43ZI:V&O0P?99+: 2
M"=$7'E@['((ST&.0?:@#UF^\5^']-NIK6^UJQM[B%/,DADG575?7;G/<5F^)
M?'^A^'?"@U\WD-U!,,6@AD#?:'[ $=O4]OTK@7N+#1/CU;/J$CQV\'AU4\VY
M&YEQQER!@'&03TR<=ZY&70M73]GV;-C<^6^M_:X(?+.Y+<C .WJ!G)_'/>@#
MV>;Q3+=>,M#L]*U31)=+NXI6F1I\W$A .#$ >0"IS]&]*W&\1:,FH_V>VIVH
MN_,$7E&09\PC(3_>(YV]:\YU^YCOOC=X'O[<2-:K;3AI3&RA=RN%SD<9.,9Z
MY'K7$S:5JR_#G5?#,D<K^*)O$WFI%@^9)D*1,/\ 8X)W]/>@#W:^\6^'M-N9
M[:^UNPMY[=/,EBEG571>.2,Y[C\ZTK.]MM1LXKRRN([BVF7='+$P96'J"*\<
MU:'_ (O)K\UPF]!X9DB$I3Y3+M&0#_>QGCKC-=9\%EDB^%.D03*R31-.KHX(
M93YSD @]."#]"* -6R\?:)J'C*[\-V]W$;BU1=SEP \I)S&O]X@#)QZ_6M:V
M\1:->7WV*VU.UEN2641I*"6*_> ]2.X'3O7F6GVU]!\4_B%;1QSP7>I62"PE
M\MMK-Y1 8-C  ..<]?>N;TFPO[CP[\.-%LH98]8TW5I9;V+:0]JBRDLT@_A!
M![_>SQF@#V[Q-XALO"OAV\UJ_+>1;)N*K]YV)PJCW)(%87AJ^\6^(M!@UR6?
M3; 7D8FMK$VSR!8SRN]]X))&#P!C/0TOQ3\,W?BWP!?Z;8<W@*30H3CS&4YV
M_B,X]\55\#^,=,C\':78:C*UCJEE;);3V,\;+/O10ORQXW-G&1M!ZT =!9Z[
M]DT2RN/$<EO87TY*-#NZN"?E0=6X&>.W-6)_$FAVNEPZI/J]E'I\QQ'=-.HC
M<^S9QV-<'XB%U%\7?"'B&^22VT5;.:(O/@+;3,C_ 'SG"E@5')ZC%>>:AI>J
M0_ K55GMIP+[7#<6-N4.\Q$CD+U ."?U[T >[?\ ":>&,W8_M_3O]# -Q_I"
M_NQTYY]>/K4TGBG0(=,MM3EUFQCL;HX@N'G41R'T#$X)X/'L:\O:.V'QJN+H
M1(+-?#92.4)^[#;1P#TSM[>E<7>QO#^SAI%O<1NDD>M8>)U(9<F0X(/J#G\:
M /HG3?$&CZS/<0:;J=K=RVY F2&4,4STR!V]Z+7Q!I%]<206NI6TTL:L[*D@
M)VJ<,1Z@'@D=#Q7D^IVMYXA^*.N7OA</Y2>&Y+1YT4HIN&5MB9./F'R<=MOM
M4OPPBTO4+;PY-=7.KQ:UH$,UO):/"(XK=6!#%SL&5( (RQ.?H: /1X_&_A:6
M2WCB\0Z8[W$GE1!+E#O?^Z,'KR/SJY=^(-'L+S['=:E;0W "DQO( 1N.%SZ9
M/ SU[5\W+:2K\(/*6UD%W_PE0FV"(^9Y8C^]C&=OOTKM_&T-[IOCB\UWPU>_
M:+BYEMK:_P!%G7*WRE$V/%_> !&2.5()SB@#UC4?$FBZ3*8M0U2UMG&W<)9
M-F[A=W]W/;.,UE:[X^T30/$6EZ+=7<*W%Z69V9PJP1A&8,QZ<D  =\UY1\19
M#=7?C^PL-)OK:5XK5YG6"67[<4=3NS@I&BKZ8+'OU%:URTD'CSX9ZO+;W7V)
M-+:%Y?(<XD\EAM(QG))&/7- 'H.C:]>WWC#7K.:^T>73;18S!';S9N(SCYO-
M&>.<^E:^G^(='U65HK#4K:XD">9MCD!)3.-P]5SQD<5XQJ.GZCJ7B[XIV^EI
M(;B[LHEM]H(\[:J[U4]S@%<#UJYH<-QJ/BWX;OI8;9I.C;=3<# @_=[3')Z,
M6!^4\]Z /3CXX\*@H/\ A(M,R\ODKBY3[_\ =Z\'D?G6[(',;"-@KD<,1D _
M2OF*^M)'^&7C&-+5VN9_$8DB41'?)'G(8<9(^]S]:^EX)XO[/BN&E7RO*#F0
MMQC'7- 'EGASQ]XLU[PUXGU42:/%)HDDJK$UI)MF"*6.3YORDX]Z['PAXUMO
M$?@2U\37JQZ=$ZMYWFR81"K%20Q[$CCZXKQ#0?">I>(O!WB^#3KJ\MM174&N
M(K3S'1+V+G*E,X8'L<=<#H:Z'Q!K-QK_ ,)M!N]-TJ:S;1]1@DU'3K>#88U3
M/S*A'*9P1P1SST- 'M4.M:9<6$U]'?VYM8"PFE,@"Q%?O!\_=([YJ.RU_2-1
MAN9K34K:6.U_X^") /)XS\V?N\<\UY!XQTB/4O .NZSX4N-5U/[?=6UW>>?%
MM658\Y"($4G'R%N"/E]0:O\ BN+3O&/P[\1ZMX/L+G^T]1BMWOB(9%:41L,Q
M_-P6"@Y"]<<]1D ].M?$FBWT,\MMJEK(D$8EE(D'R1D9#G_9(Z'H:2#Q-H=S
MIXOX-7LI;,RB$3I,K(9"<!<CC)) Q[UYOHL4NK_%O0=1TK,FF6?AU(+V5!\@
M8[\1'_:!*G;U&*L>!?#>HZ#XRUWPXT)'AVTNTU.S8]"9 0L8]0I&?9HQZT >
MBS:[I-OJ*Z?-J-LEVS*@B:0!MS9VJ?0G!P#R<<55NO%WARR>[2ZURPA>S(%P
MCSJ&B).!N&<C->0Z=I\-QXB\7>&/%%QK-M<7FK?;K1;2$$W0W9C*.4;&,+W
M ],&MK1](L-5^.WC$ZE8PW5K):PI$+B(/&Y"1AL9&"1@CVYH ]*MO$FB7M]-
M96NJV<]W"I>6&.96=%'<@<@<C\ZN6EY;ZC9)=6-Q%/!(,QRQG<K>X(ZUYEXS
MT;4]%^)>A>(?#T(#:JC:3=A1A5RI*2'_ '0N?^V0'>O3[:W@L+**VA C@@C"
M(,\*JC _04 >;>&_&/BKQ%XA\7Z5'/I$#:',8H7>TD(E^:0#=^]&/N#IZUM_
M#OQXOC+P8^NWT$5@UO*\5P2^(QM 8L">BX8=>G->5Z9X;O/$VO\ Q+M;&_NK
M"[NKHR6,D<SQ)= /+E3@@.I! SSC.?K9N;R^UWX#7>AV.CR6&K:6\:WEA% 8
MS,BN"SJN/FR>6QW!]L@'N-CK.FZE%-+9WL$R0X\TJX^3(R-WID<C/4<U7MO%
M&A7D\4-MJ]G++,0(D649DSG!4?Q#Y6Y&1P?2O*];LX?$?@?Q-KOA>ZUB\U/4
M-/ABN4EB"*%1E+1@*BY<)O'&>/J,TH]2L=1\>?"H6+$B"Q:)QL*[&$0!3D=0
M0<CM^- 'K[>+/#RPW<S:W8".R<1W3&X7$#$D /S\I)!'/I69>^(KH^--!L-/
MU'1FTZ\A>6:.2;_2)1M)1HAGYAQG//&:\=UY9;2/XL:;+;7/VR_NK>:VB2!V
M\Q/-+%@0,8P1S[UT*Y/Q!^%TH5C'!I.R9\'$;&$J Q['/&#WH ]1;QCX:3?N
MU[3@4G%NP^T+E93G"$9X;@\>QJW+KNDP:BNGRZC;)=LRH(FD&[<P)53Z$@'
MZG'%>8?#G1M.U'QMX\FU'3X+G?JOFVQN80P*AW.]-P]=O(]O:L;2M/AN-?\
M%7ACQ1<:S;W5SK!O[1+2$'[4-V49'*-C&%[@ 'M@T >N7GC+PU827,=WKVGP
MR6S!9XWN%#1D] 1G(J6'Q3H%QJ4&G0ZS8R7EQ&)(H4G4LZD;@0 >>.?IS7D&
MHPAO&_Q6F:(D3:.8K=RG^L;R54JI[G=@8'>J%E"8H/A $A9&MIIC<X0@Q9=!
ME_[N2#U]Z /=9]=TFUU!;"?4;:.Z8JHB:0 @MG:#Z%L' /7'%5;WQ?X<TZ>Y
M@O=<T^">V ,T4DZAXP<8RN<]Q^=>0VUA#<>*?&?AGQ3<:Q;/J.I"\LQ:0@FZ
M0-F/8Y1B"N$[@#GT-3ZS"#\4?'\SQ%D?PU)#%(R9#2>4@*J>[=1@<T >C^(_
MB!H7AVUTN:2\AF_M.>*.VV2 JR,P!D+= J@DY_"NFM[B&ZMX[BWE26&50Z2(
M<JRGH0?2OGY[>YC^'?PPNGMY_*T_5E:[(C8F "7/S #(X'\J^@HI5FA250P5
MU# ,I4X/J#R/H: 'T444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110!
MRO\ PAA_X6-_PF U#][]E^R?9O)^79G/WMW7/?'X5U5%% !1110 4444 %%%
M% !1110 4444 %<OX[\&KXXT:#3)+YK..*X6X+K%O)*@@#DC Y-=110 V,.(
MU$C*SX^8J, GV&3C\Z=110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% &%8>'9K37KS4;C5[R\AFF,\%K.<I;,5VG8?3&0!P!N/4\UNT44 %%%%
M !7*ZWX,.L^,]%\1'4/)?2=WE0"'<'W##;CN].F/UKJJ* "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
MBB@ HHHH **** "BBB@ HHK/U/5&TYK9(]/N[Z6X<JL=L$R, DLQ=E '&.O4
MB@#0HKD['QW%J"W,D&A:OY-K>FQN9"("(I0P5L@2DD L,D C%:GA_P 01>((
M]0:.UGMC97LEE(DQ7<63&3\I(QSZT ;%%%% !16'%XFBOKJYATJPN]12UD,,
MT\!C6-9!U0%V7<1WQD#H3FKFD:O#K%O-+%#/"89F@>.=-K*R]>/QZ]^O2@#0
MHHHH **** "BBB@ HHHH **** "BBB@ HHK'\1^((O#>GQ7DUK//')<16_[H
MK\AD<("<D<9(Z9H V**** "BHVGB6X2W:11-(K.J9Y*K@$_AN7\Q4E !1110
M 45'%/%.9!%(K^6Y1]ISAAU'UYH:>);A+<R*)G5G5,\E5(!/X;E_,4 24444
M %%%% !1110 4444 %%%8WB?Q';>%=&DU6]MKF:UC95D-N%)7<P4<,P[L!Q0
M!LT5DQZU-]MM;:XT34;87#E%FD,+(I"LWS;)&(R%/..N*UJ "BBB@ HHHH *
M*** "BBL=_$$2>+HO#S6LXFELWNUG)7RRJLJD#G.<L.H% &Q1110 45E3^(=
M.MO$UIX?DFQJ%W;R7$:=MJ$#\SDD?[K>E:M !1110 445C^)_$$7AC09]6FM
M9[F*$J&2$KD;F"@_,1QDCID^U &Q1139&*1LRHTA )"+C+>PR0/S- #J*RO#
M6NP^)M MM7@@E@BN-^V.7&Y=KE><$C^&H[KQ%;QZN^DV=M<7]_'&))HK?:!
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
MN3&DR&Z\HR*, L6;(R ,GNV.236CH&EG2M.99$B6ZN9I+JY\H?*99&+-C@9
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
ME)(8C&/>N9\.ZA_9.B_#B_ORRZ/;07$-S(02MM<,H$;2?W>-ZY/3<?6@#O\
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
M(;AR%6*2958D]!@G//;UKSOPKJ6F2Z=%X9UZREF\166IR3FW>%\O+YS.MP&
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
MG:=I-]?3_88[^$QF-4FB<D*0688Z'K@^QJO9_$*TO8-%O$TN_33M6E6WBNY
M@"3-G",N[=U4C=C&>YH [!@2I ."1U':L?0=$N=+$LVHZK-JM_*JHUS+$D>$
M4DJH5  /O$YZDGZ 9.K?$32-(\Z:4;[*WNA:W$Z2IF-]P4G9G<55C@D#L< @
M4E_X]2SGUV*/0M2N&T4*]V4,0 C*;]X)?GY><=?84 =A17)/XLNIO&>D:99V
M32Z?>Z<][YP=06&Z, X)X #\]SGIQ6AI'B9-:-K-:V<K6-UYGE72NI4;.S '
M*DX.![<X/% &[163J.N1V.J6FF1PF>]NHI)HXO,5,K'MW8)ZGYA@?7H!5*Z\
M7VUO%:)]G*WMS:"[^RSS1PM&AQPQ8XW9R,#/(/89H Z.BN#@^(+:OJ7AC^Q[
M&6:PU9+B1F9D5P8AADP3P0QR3GMQG-:7Q(U6]T;P!J][IXD%PMNP66-@#%GC
M=R>V>W.: .JHKD;+^S]$UGR=/TJ>+5=1@\V2Q690BI$=OFM@E5)+*,C)8X]"
M0DOQ"T^+2H[[[!?,W]HKIEQ;JJ>9;3E@N&&[D<@@KG.1ZT =?17%)XOU:?Q=
MI>DOX?NK.*Y@N)9%FEB\SY'501M8C;AL\')R,=.<3P[XF7PS8Z])/87UQ81^
M(KB&6Z#JRP*TBHN=S;F )'0' H ]0HK,\17%O:>&]2N+RVFN;6.VD:>&$@.T
M>T[L$D=L]P?2L.#Q;:V*:!IEEH]_+_:&G^?9HC(1L1$.PLS]0&7EN/<F@#3\
M3:!+X@AT^..\6V^QWL-Z"8?,WM&VY1]X8&>M;8S@9()[XK*\.:]#XBTMKR.W
MFMGCFDMYX)L;HI8V*LI()!Y'4&N,U?7[[7/"GQ!@N;*6VCTV.YB@D28 J4MU
M<9*G.226].V30!Z317(>'O%"^;H^BW6GW=JUSIPFM;F8ILG$:IOX#%E(W _,
M!Q1%\1-)EU#2X0#]FU27R;2X65&RY!*[D!W*& X)'IG% '7T5#>7<-A93WEP
MX2""-I)&/95&2?R%</X-U35[;Q=JNBZ^Y\^^C35K)6_Y9HP"R0_\ 8*/?)-
M'?45R5_XX-MJ>K:=:>']4OKG3$CDF6$1X9'#'<I+\\+T^\2>!P:8/B'8W/\
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
M"J06J7'F@LK!B6?:,9Q@  XZDG/'7V&G66EVPMK"UBMH0<[(E"@GU/J?>K5
M'(OIVL7'C?2-;GL(XX;>PG@F2.<,5>1D8 9QD )R>.3QFN?@\)>);'2[*\LH
M;7^U=.U:ZO([>:7]W<0SL^Y"P^ZV&'., BO0/[8T_P#MO^QA<J=1\@W'D '/
ME@@%L].K#\Z??ZG9Z6D#WDWE+/.EO&=I.Z1SA1P.Y[]* .2UO3?$FNZ3ISS:
M=:P7,6J6UV;2.Y#+%'$X8@R%1N=O88''/<]N#E02"">Q[4M4=3UC3]'2!]0N
M5@$\R019!.]V.% QZDB@#B+[X>75S;^([=+A%ADF:\T91P;:X;;(S'T_>H,8
MZ!F]:TO$GAS4K[X=/HMJL<^HS-%)*[/L0R>:LLC>P)#8'N*[.B@#E9=+U6/X
MA)KT%K%)9S:6MI*K3;9(F61GX&"&R&QU'(ZUSUOX4UV+P5HNE-9QFZLM:6_E
MQ.NTQBX:; /KAL8QU!YKTNB@#G_%]IK-[HT4>C%?.6YB>>%IC$9X0V7C#C[I
M([_4=ZXS4/!FOSZ;XQL[;3=/@363;M;)#<86,HJ!@1M''RGD=21QU(]3HH Y
M5M/O_P#A8<&O26PBL(])>TD9Y5W*YD63.,_= 4C.>OMS5+PYH:P^-M:NK:Z6
M728Y?/@A7E8[J9 9B#_NA2,?\]6KKM0CM)=-NH[]$DLVB<3HZ[E9,'<".XQF
MJV@1:5%H5G_8<,,.F/$)+=88]B[6Y!Q@'G.>>: ,WQ]I-]KW@O4=)TZ))+JZ
M543S'"*N&!))^@[ U6UO3M8E\3Z!K]A81S&UAN+>XMI;@1E1)LPP8 @@%.>^
M#76U3U75K'1--FU#4KA;>TA&7D8$@#Z#F@#SZ+PGXCCT^VADM+5Y(O$[:L3'
M<<&'S&;'(X8[N!S[D5TNJ:3J;>.M(URR@AEMXK.:TG6278T>]D8,.#N^X1CC
MMS73(ZR(KJ<JPR#[4Z@#S6Y\*:[/X*\0:2MG&+K4-8:^AS.NT1F=9<,>QPI&
M,'DCFM&+3O%.B>(]4DTNPL;[3-6F%UFYN?*>SE**K[@%;>OR@X'O]:Z,^)M'
M$6J2_;5*:4,WI56/E?+N[#GCGC-:<4J3PI-&VZ.10RG'4'D4 <Q8:3J4'Q!N
M]5FB5[.;38;03;U#%XV=BQ4= =_Z=*D\9Z5J&K0:0NGP+*UIJEO>2;I @V1M
MD@9[GM_,5TU% '&:SIOB'3_& \0:%9VNH0W5HEK>65Q/Y+*49F217PPXWL",
M?_6BN-)\3V/BRS\0VEO97\D]C]BOK7SS"(L2&161BIR!N*G(R0 <9/'<4A&0
M0<\^AQ0!Y1I.D:EJOA.:2QBAEOK#Q9/?&!I-BR^7<-N4,1QP3@FMM="\027_
M (PO)[*U0:S8Q0P1I<[BKK&Z8.5 Q\_)]C@&NOTW2+#1XY8["W$"2R&610Q(
M9SR6Y/4]SWJ]0!P=KX?UB&Y\"NUFFW1+5X+P^<O5H1%E/49&><<'UXJ3^S?%
M&A>*=5FTBQL-1TS5IEN#]HN#"UI-L5&)^4[U(13@<UUO]IV?]K_V5YW^F^1]
MI\K:?]7NV[LXQUXQG-,U#6-/TJ2TCOKE87O)UM[=2"3)(W11B@#"M]*U2W\?
M3:S) )K8Z1%9"1756>5'=R=N> =V.O7VYK M/"FN6_@KPMI+6D9NM*U2*[N,
M3+M,:2,QVGN2&& 0.A]L^E56O[^UTNPFOKV98;:!"\DC=%4=30!QNEZ5XKT'
M4=0TRTM;"YTF[O);JWOI)]LEH)6+NK1[3O(8MCD ]SZ+<>']7DNO'3K:*5UN
MW2*S/FKU$'E?/Z#)SQGCWXKM+6YAO;."[MWWP3QK)&^"-RL,@\^QJ:@#AK+P
M_K5GK7A>_2VMV%GI+:==H\^#&28SO7 .X?NSQQU'3M'HOA6\M/%-EK,-B-(E
M9)/[7CMYP;>]8KA65 >&W?,20O<<YS7>U4U/4[+1M.FO]0N%@M85W22-DA1^
M'- &#XNT%/$#V]O>:.+^S5'998IA%<6\V1M:-B1COGGL.#6''H'B_0[O2-7M
MC:ZW>KIJ:?J4%Q<&(R;6++(LA4Y(+,#D<]>IX]"BE2>%)HVW1NH93Z@\BGT
M<=?Z/K\^N^&=8$-E+/9?:5NHA*46,3*H&T[<L%VX/ )ZX':[X]TF^U[P5J>D
MZ=$CW5W'Y:;W"JO(.2?P[5TE% '(WVDZI'XQT[Q39VOFD6+6%[9-(H?87#JR
M'.TD,.02,@_A61?>#M4:SEG@@B>]O=?AU::/S0%BCC9,)GNVU!VQDGG !/HM
M% '+ZMI6J2>-M%UNR@AEA@M9[:X2678T8D*,&& =V-A&/IS7.W?A37;CP9XE
MTI;.,76I:N][!F==HC:5'^8]CA", 'DCGT]*JCJ.L:?I+VB7URL+WDZV\"D$
MF21C@*,4 0>(+:YU'PMJ5I;0YN;JSDA1&8##.A49/3 SSC/XUS=EH.KP:OX/
MN9+-1%I.FR6EUB52=[)&H*^HS&?3@CCM7<T4 <UX,TJ_TBUU6._A6)KG5+F\
MCVN&^25RP!QT([_S-8MSX:UP6/CG3X;:VDAULRR6LWGX.Z2!8]K*1P 5))SZ
M8'IW]% '$/X?U.YUGPK-+:!;?3[">UNSYJY#2(BY7U V'TX(^E'A*P\6Z/:V
M>@7UKI[6-@%CCU1)\O-"OW5\K;PV  26P.<9-=O10!A^([.[U-+.PCM%GL)+
MA6OLR!28E^8* >N6"Y']W([UA>)/",L6K:%J_A?3;:._L+HM,=XB62W92LB$
M]R>,<<8KK]1U&UTG3I]0OI?*M;="\LFTMM4=\ $FK*L'164Y5AD&@#@=-NKZ
M'XF>+FM=.-PSVEA\OFJFQ]DF V3]WKDC)&. :S+;1IO"7B7P'I4$?VV2VL+\
M2B-@A8L8V8KNP/O,< D<5Z';Z-I]IJ=SJ4$&R\N0!/+O8F0#H#D\XR<>G:JF
MJPZ);:KIVI:BNV]:86MG+ER0[_PC' !V\]CCF@#E-5\':I=>&M>6&&(ZEK.I
MPWC1&4!(4C>,A2W<[8^<?Q-Z#-:][H=[J'CH:C);E-.ET:33Y&\Q=ZN[JV<>
M@ QG/7VYKKJ* .*\)67B_2M-M- OX+!+73T$*:E'.6:>-1A (MORG 4$D]CC
MKD8^G>%_%"ZCX9U"^L;![[3KF8WUTUV6>Y#QNF_.S@#<,+VZ  "O3:* //5\
M+:RWA_Q!X:>"%8=5OKF47PE!5(9G+'Y?O;P"0!C&>]6M0\)76H>)M2!C\K2K
MOP__ &0LH<%U;<YW;?3#X]<CICFNEU;Q!IFAQL^H7)B54,K[8WD*(#@NP4':
MHS]X\5H12QSPI-$ZO'(H9'4Y# \@@T <KX67Q='':V.N6.GP1V:;'O()S(;O
M P,)M&SL22>V .>#QKH^I:Q<>'CI]LLBZ?JT-_,SR!<H@8%5]6^;V'O76T4
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
MX@6"Z#R07$:'*B2-RC;<]B1D?6F-X6,.N'6;#4IK>^FMUMKMVC5UN0OW79>
M'&3@CC!QC%:FCZ3:Z'I4&G6880Q9.7.6=B2S,3ZDDD_6@#CG\5ZM:ZQI,<\U
MM*+S5I+">"",M%"F)"F)>ADP@++SU(P,5?\ B=/>VO@.]FL;LVSB2%'95R61
MY41E]LAJ@A^',<%K86J:]J(M].OS>VB;8OW1)<E<E<M_K&Y.<5T7B/0H?$N@
M76DW$TD,<X4^9%C<C*P92,\=5% '*:A!J3?%33X;:]A2[.@SAKF2#< //BY"
M C)Z=_?GI44/C+6I?!_A[4R;07-SK":=>?NCAU^T-$63YOE)VYYSUKI$\,RI
MXCMM<;5)I;J"R>SQ)$N'5F#ECC'.Y1TP,#%9\?@&./0K'25U6?RK/4?[120Q
M+N,GF&3![;=S'WQWH B@U?Q'>>,-=L$OM/@L-)FMG8FU9GDA="[K]_AL?Q>P
MX%8&O:GJ/B+P7H.O-/'':7FL6<BV@C^Y$;A=GS9SOX!/;D@#O7=:=X=%AX@U
M?5FO'F;5/+\Z%HP%7RUVKM[].N<_A6 OPV2+2H]'AUZ_BTF"[2ZM;8)&Q@*O
MO"ARI)4'H#T]Z -CQUJ]]H'@O5-6TTP"YM(O,7SHRZGGT!'/^<5E?VWXCTKQ
MGIFG:G)8W=GK,,QMQ!$T1MI8TW[2Q)W*1_%@<]ATJS\34=_AKK<"!Y9I;8QQ
MHJ[GD8D<  <GZ5:C\.0ZJ8+W4;Y[W9:26UN501[%D4!WXZN0 ,\ <X R: ,7
M2?%.K2^(=#L+BXMK@:G:7#S&*$^5#-&%.(GZ2)\Q!Y/3J.E9%QK?B_4_AWK>
MMG5;&U2VAOXREO:$.6B=E5E8L=O"D8P?7.>G1V'@(V,^A3'7K^9]%B>"V#QQ
M &)E5=A 49X5>>IQU%7++P9;VWA/4O#LU[//:7_G[W*JKIYQ8OC QU8D<?G0
M!F3ZKJ_A^+PM-/=P2:/<M':WC^1AHF=?W1SNP%+84D^HKI-%N[J_DU"XDD1K
M/[2T5H F#M3Y6).><N'Q[ >M<YKUO&OAT>"IUU'5+N_M#%%<-;?NUZ*'9U 5
M-G#>OR]R1G6UO1KU/"T&F:!?7-C<6_EK;R1!6SM& '+?P]"QZG'?." :FLSW
M%KHM]<VC1+<0P/)&94++D GD @GIZUQL7BC7[J'P'Y$MBC:]:E[DR0,=KBV,
MF5PPXS_#[=17;ZA:&_TVYLQ*8O/B:,N!DJ",$@>M<];>"UMO^$9":E*1X?C,
M=N#&O[P&/R_G_P" ^F.>: ,BR\8ZJD,FFW;VTNI?V^='BNA$50KL$OF%,]=N
M1C/7%.\;)K47P]\8Q:I);SVRVK&SGC&V1T*?,)%Z AL@$=1V%7+GX>6MY9ZE
M#-J-T);O41JD5Q$%1[6X  #(?3"@8.>_-6[GPA)J'AK4-)U'6KN[GU"/R;B\
M>-%;8,X554!5')[$\G\ !D.KWR>-K+0Q)']BGT9[L?N_G217C08.>1AB<8K)
MT?QIJ6IVFA6+M FI:I>7L33K'\J16[N"P4G[Q 0#)QDD\XP=Z\\*R7.J:9J<
M&K7%I>V=NUJ\L4:'SHF*D@A@0#E00167'\-[:VTZPBM=7OHKW3[R6[L[S",T
M1E8ETP1\R-DY!R?>@##BOM5T)OB;J$-Q;RWUDT4ZR20G:X6V4@%0PYP ,],\
MX[5NW.N:]+XDT+2[2YLH8M2TR6Y>22W+M&Z>7R/F (^?@<8]^E3/X#$MOXBC
MFUJ\E;7D6.Y8QQC:!&(R5 48.!]/;/-7D\+,NLZ3J?\ :#F73;1[2-#$-KJV
MW);OGY%Z8H Y^V\::J/"MG/=" WCZV=(N+M8R(XU$K)YNW/&=H')QN8=N*VO
M#FJZO>^)=?T^[FMYK'394BAF2 J\K,BN0S!MN5S@@*.H/'2N>U_0FT#0H=/6
M]U0VEWJKWMQ>VUH)S;EBTA#QA6W(7(ZJ0.I/ K9\&C44G=1JT^HZ5Y1VO<:8
MMF4DR,! %7<"-V3MX..>M %N;6+O4?%UYX?L+A+3[%9QW$TYC#LSR%@J@'C
M"DGN<@#%8&E^-]5O[WP_!-';Q2S:G=:7J,:H2OF0HYW1G.0"5'!SUQ[UT][X
M;$OB)->L+Q[/4/L_V:8[ Z319R RG'(/0@CJ0<BJ5QX&M38:=%8WUQ9W=A>/
M>QW@57=Y7W>87!&#NWMV&.,8 Q0!R_BCQ!K-QX0\9QK>I"VFZC':1R1189X7
M$65//7]X1D=O2MGQ-XHO/#^HQ65]?K8PRVN;;4Y;7-O)<EF'ERG/R  (>HSD
M\\8JQ)\/K:;3-?L9M5OI%UF59Y7;9F.10F&7"]<H#CIV %7K[PQ<7\%Q;SZQ
M-+!=V8M+E)H$<.,L2Z@ !6^<CH1P..* *LWB6[LO&L]C=20-I<6B-J1,<9WA
ME<*?FS@C&2, =:YO6KS4]8TCP/K5Q/$L-]K-E/\ 9%CXB5\L@#9R2 <'/!/3
M'2NNB\'VL.N17ZSN8(],&EBT904,&<\GJ3D=?3MWK*A^'7DV&G::/$.H?V?I
MEY'=64)2(M%L)*H7*DL!GC/;CGC !'/XC\3ZE#>WOAW3C<BTOWM4MF\I4G6.
M39)EVD#*W#$<8Z<'K71>,.?!&O?]@ZX_]%M66/ H@UJ]NK'7-0M-/U"4SWNG
M1[#'+(?O$,5+)N_BVD$^HKH=8TX:MHU[IIF:%+N%X&D4 E588.,\9P30!R&F
MZW>BP\.Z%IT<GG-HD5W)+&L;,J@(B@!V4=2<GGH!CG(?#XB\1Q?\(WIVM64>
MFWNI7$\-Q.I5U41J63;AF4-)@8!)QAA@\5:O/ @F@T:2RUF\L-3TF#[-!?0(
MA9XL ;'1@58?*#TZ\UD>+;(V<FCV,^HZQ# GFSRZHEFMVLDQPH66/RV4$@L0
M=H  P/8 LZ?XD\07.B:A=3W&F(MOJQL$N6B:,&%)-C2C+$.Y'"J /F!'/2L_
M5==N]7\ _$&TNR7_ +.BFABE:$Q.Z- '&]3T8;B.@[<"KUGX>U#Q!IB076N7
MCP65U!=Z;>MIZ6LBR)N!!B*@,F",949R>N!6@_@*.2U\16[:S>NNNJ!<%UC)
M4[ C,N%')"_0=A0!NVEREGX:@NI<^7#9K(V.N F3_*L;1M0\0ZK:Z'K2263:
M??Q>?=6Q!!@C=-R;&'WF' ;/!YQBNAM;,0:9%92OYZI$(F9E W@#'(^E<]X?
M\$_\(^T=O'K>H7&DV[E[33IMFR$DY +!=S 9X!.!QU(% &+-XUU0> T\=0&%
MK 2^8]@8^3;>;LR'SGS,?-Z=L=ZN3^)]5CC\=*DL!;0XEFM',/W@;?S<.,\\
M\<8XJY!X#M;?3I=&6\E.@R7'VC[ 47Y?GWF,/U\LMSMZ\XSBEU/P0M_?ZW/%
MJ]W:P:U;"&\@C1"&81F,,"1D?+C(!YQ0!077_$%]K^B:;;7-C!'J.BF]>1K9
MG:.0&,$@;P"/G.!QCOG&*J0^.-2C\(:?J>HHR1B^GM-2O;.V,@A6-G02;.<
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
M/:VLBC*E3N16?JRJ<$#@\#).* ,:TN[K3]3^)5[9-$MS;2QS1^:A9<K:(V"
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
MG.UE"P;;MP#&O!Y.3[UN5FZ#I+:'HMMIK7LUX+>-8TEF50=J@ #"@#@ 5I4
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 57O;ZVT^W$]U*L49=(P6[LS!5'U)(%6*XCXH6MM<:%I;7
M$,;A-8LL%QG:#,H/Y@D4 =O17!V:6FL>/M>T34H8Y+*TL;;^SK<_<\M@WF2(
M/[P;"[AR-HQBM'X<7-_=>"+-]0FDGD22:*.>0Y:6)9&5&)[Y4#GOU[T 7]+U
M^74/%&N:-)9K#_9BP,LHEW>:)0QSC VXV^];E>;-H&E^(/'_ (T@U4R>0EM8
MME9VC"'RY/GX(Y&.">E8^@ZK>WZ>%],\27=N([K1WDB.I1%TN9!+@$C<N7\K
M8PSD_,3U- 'L-%87@^S&G>'(;)-5?5(X'=$N7'4!C\H.3D+]W.3T]JYFPT6T
MU3XE^*A=FYF%FUA<V\9NI J2;';( ;U'3IR>.: /0Z*\H\,>5X@TS0M<FUZV
MM=7AO%^UB*$BYDE+%7MY,ORISTV\  C %6_"TFE^(-"T_5M2OY+?7[?4V-PT
M4H6?SA*RBW8$$^600-G3&#[T >F45Y.\G]K>!?&&K7DCPZ]IUW>&.8-B6U:+
MF%$/4*5"\#AMQZY-:&I74_AK7= \57UN^-1LOL6H0H/N7)0/&57LS,&C_%:
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
ME+%7MY,ORISTVX  (P!5>6^MC=>']7T^X(CN/$KQ&[N)1]IG0F570@ ;8A@
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
MM]F1I6E7&2RJH)P,C)Q@9&>M8WP\U:YUG1=0N+F\EN]FJ74,,LJ!6,2OA,@
M8XQV% &T?#>AFQM['^R+$6MNVZ"(0*%B/JH ^4^XJ:?1=*N=.73I]-M);%2"
M+9X5,8.<_=(QUJ$>(=--XEJLLK.\S0*RP2%&D4$LH<+MR-K<9Z@CJ,5 ?%VA
MKI;ZD;QA9I<FU>0P2?)+NV;6&W(^8@<\9H L:CX<T35UMUU'2+&[6V_U(G@5
M_+^F1P.*T@ J@   < #M65JGB;2=',WVVY9! BO.R0O((5/0N5!"@\]<=":Y
MRY\3C2_B)=Q7FI32:4='BNXH(XO-PQE8$HL:EF&U0>^.>U '1OX6\/R23R/H
M>G,]Q*)IF-JA,C@Y#-QR<\YJR=(TTWT]\=/M3=SQ^5+.85WR)_=9L9(]C4MA
M?VNJ:?;W]E,L]K<()(I%Z,IZ&N,\>>*UM-#)TG4;B*ZCOX+=I(8"T;$RJKQF
M0J5R 6Z$$$8]J .FE\,Z#/I":3)HU@VG(=R6IMU\M3ZA<8!Y/-2'0-':.TC.
ME612S_X]E,"XA_W./E_"H]1\1Z7I;SI=3N#;H))S%"\@A0YPSE0=HX)YQP">
ME27.N:=;);L9S+]HC,L*V\;3-(@ )950$E>1STY'J* $/A[16^UYTFQ/VSBY
MS O[[_?X^;\:P+CPAYOC>POUT_3_ .Q[33GLTB#;61F=6#*H7  "D<$=:V+3
MQ5HE])IB6M\LO]IH[V;*C;90HRV&Q@$8.0<$5%+XS\/PVDEU+J CABO/L+L\
M3KMGX^0@KD?>'/3GK0!H7&B:5=Z?%I]QIMG-91%3';R0*T:$="%(P,5>
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
MX.",'D$$$$'D$5;H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M\/8;N"PUI;NPN;0RZS=SQK.FTLCR$J1[8KL*898Q*L1D42,"RH3R0.I _$4
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
M6TM)K9D9VWMYA4Y QCC8._.: .!UK5-1U_X2:I?ZO;6K2Q:H%A:)RQ4I>A,
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
M!9>$-4\/75R\T%[YT*./O0VY+".,'_9!_,FEM_#&J7EMH%GK<UH\.BSI<+-
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
M\.ZE9ZS=Z4;FXLY+2);02+&2ZX,CELG([*!CKSR,:,7A_P"U>!4\.:H(F#6
MLY6B)*G";=PR ??VH J#Q@4U_7]*N+2")M)M%NU<7)8S(03]W9\N,8/7J.N:
M9!JV_P <VEG?:%!!J+:.]S]J242.BB1 T(^4$C)SGVZ52A\ R^9X=N[G4/,O
MK+<-2F YO%(5MI]A)''@'^$$5JW.AZA)X\AUV)[<6T>FR66TNV_+.K[L;<<%
M0,9[_A0!7T7QM'J^F?VQY5L-)%G)=33Q7/F/;E-I,<B;1M;:6/4_=(]"4T_Q
MG+=ZUIMF^F_Z/J,;/'/!(TA@8+N"S#8 N1T()&1CWJA'X!>]U)K[4(K*SFN=
M/FLM1;3W8?;C(H7>RE0%(^8C[QRW7CG0\,:5XLTY+:QUC4]/N+&R79%+;QNL
M]PH&U?,R=JX')QG) YZY '^.M8U31[#3'TQ("USJ=K;2-+(5(5Y%&!A3UZ$]
M@3P:A\1>,;SP]:W]U/I,0@L+>.:1Y;HQK.S EDA)3YRH'?&20,"M#Q?H=UKV
ME6T5E-#'=6M[!>1^?G8QC<-M..0#BN?USP;K^K3>(!]OTYX]6T];9'EC<M;,
M$(94&>$9CN)SG/8XH U-;\9/H6HZ:MSIV=+U!"(KT3$D2[-RQ% AY;HN"<GW
MXK=MK]UL+>754M["YE7+0&X#A3Z;B!G'? KG]0\+7FO:8-,UIK:2TCLPD8MY
M'0_:,8$G(.-O&TY/.3CH%M6?AH:GHEC;^,K'2M7O[12@G> 2!NF6 =?E)P,X
M]/P !/+K\]QJMWINCVL%W-9PI+.\TYC0%P2B@A6R2!GI@ CKFLG1O'CZL_A@
M_P!F"*+7HIW1OM&6A,0)P1MYR,<YIP\,ZMH_BNZU+0)].BTZ_AABN;:XC8>2
M8EV(T07C&W VG'3K7-^#M$U&_P#!7@76-*EM#<Z8D^8KHL$D23<K<J"01@$<
M4 =5:>+[N\LKYX=&9[FUU8Z88XYBR#&W,K-MRJ -D\'I6!XEU^#Q1\-/&D<M
MM;^9IJ30$QRB:-V$8=71L#^\.W!!J8^"/$"V%[&NH:?(\^N_VJT+(ZQ3QD &
M*3J<< XP>0,YJ2?P5K<VE>+[)KO3C_;QW1E5=1$3$J'/7@;>!W]NE &F-1@B
M\5^&]/FTJ&2>?3YG@OV8;X@JIO4#&>=R]^U<Y;QRZS<^-VUW1;'48+6[0^2]
MR3M\N"-E128QQR3GCECP<G/3/H&IR^)O#VJ,;18M,M)K>5!(Q9C($!*_+T&P
M=>N>U16/AW5K4^*BYLC_ &S*TL.V5_W9,2QX;Y>>%SD?3WH 98>++2'0/#L5
MC96UK)J&G+=0VK2%(K>(*G&54G@NH "\\],4ZP\<M?VFGQC2Y(=6O;J6U2TF
M<JF8@6>0.5R8]N""%YW 8]* \&Z_8:=X9N-(OK&+6-%LOL$BSAVM[J$JH()
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
MR7*W0LX[MTBCD#!\HH/R_,,X' [8J>]\!Z)>ZV^K'[;!<3*J7*V]W)&ETJC
M$J@_/QQSU'7-=&LL;-M612V-V ><>OTKF=+U_5M6A\2Q0VUE%>Z9>/:VP>1C
M$Y$:."[8SU;G H U+?P_9VOB"XUJ)YQ=W$2PR O\A1<[1MQ@8R??FM6HA*([
M=)+AXT.T;B&^7/L3VITDL<2;Y)%1?[S' H Q?^$/T/\ LHZ;]A3[*;W[>4_Z
M;>9YF?IGC'IQTJS?Z#::CJ^G:I,\XN=/+FWV/A5+C:V1WR..?PQ5/6=>NM-\
M3>'M-C@A>VU.66.25G.Y-D3.,#&/X>N?PI/&/B"?P]X/OM;L(8+I[9 X61R%
M(R!GCKUZ<?6@"*;P+I,^G:C82R7C6^HW0O+I?.P7E!4[L@9'*+P,#Y14FJ>"
MM*U;58=4EDOH+Z.(0/<6ET\#31]=KE",C/TK?:6.- TCJ@.!ECCFGT 8_P#P
MC5BFLV^JPM-#<V]J;.$1L B1'!VA<8Z@'\*FT/0[3P]IYL;$R^1YCRA97W$,
M[%FY]R2?QK0$B,VT.I;G@'G@X/ZTB2QRY\MU?:<':<X/I0!CW/A:PN-3N[]9
M;NWEO8UBNQ!.56=5&%!'8@$C*X/O4&L>"=%UA=/+1SV4VGKLM)["9H)(4QC8
M&7^' '%;ZRQN6"2*Q0X8 YVGWIVY>.1STYH Q#X3TT7.DW"&X1]*+FUQ*3AG
M!#LQ.2Y8$Y+9ZD]>:JS^ ]#NM/U*RNHYYX=0N?M<V^4[A/Q^\0C!4\#IQQTJ
M?3==NKSQEK>BS6\,<-A#;RQ2(Q+.)-^=V0,?<Z#\ZVOM,&R1_.CV1YWMN&%Q
MUSZ4 8D7@_3H]"N](:>_GBO$,=S-<732S2H01M+MD@8)&!C&3ZFGR^%+&:+2
M8Y)KLKI+K):?O.48+M!/'S84D<YZU,-5EU31K/4=":UEBGDC;?<L54PEOF(Q
MGYL=,^U:KRQQLH=U4L<*"<9/M0!AS>$-*FO-3NO]*CDU+:;@1W+JI90 ' !P
MK84#(YXJ[8Z-;V-[/?&26XO9XTB>XF(+%$R57@   LQZ<YYS5]G5/O,!WY-(
M9HQ%YID01XSO+#&/K0!D:CX7TW4]9AU:;[2EW' ;<M!</&)(B=VQPI&1GFJ=
MGX$T>P32$MGO$72&9K,&X9MA8;3USD;3C'3':NE5@PRI!'J*6@#G-5\$:1JV
MM#5Y&O;:]*"*:2SNW@\]!T63:1N'ZUT,420Q)%$BI&BA551@*!T IU% '/VW
M@[2K7,2?:#9?:#="R>4M")2V_=@\_>^;:3MSSC-7++0+2PUO4-6ADG-U?[!<
M;GRK;!A<#M@'''XYK4HH Y^T\&Z39!(85G%C'<?:HK$R9@CEW;MRKUP&^8+G
M:#R #5:[^'VA7AOQ(+U8[ZY%W+%'=R*@F#!O,50<!B5&374T4 <Y=>"-(N=2
MGOU:]MIKJ 6]U]GNG07" ;5W\_,0.,]?7-.@\&:5:_V+Y#7:#1E*V0,[-L!7
M:<YSG*\8/ '3%=#10!RUA;SZ]XEM]9U'0Y-/.EI-!;&X9&DD9R 77:3A=J]^
MN\^F3TL\,=S;R03('BE4HZGHRD8(J2B@#E['P#HNGS:7+$U^SZ7N%H9+R1O+
M0@#9C/W< <>W.:V?[&L#KPUOR!_: MOLOF]_+W;L?G5^B@#E[[X?Z%J#:GYP
MO%CU*19KB&.Z=(S*,?O H. WRKS[5H0^&[.WUI]7BFNA>/:K:%FEW#RU)*CG
M.2"2<GG)YS6Q10!RT?@#18;+3K6)KV,:;-)+:21W3+)&9,[QN')#9.0:>G@/
M0H[">S2.Z6.6]^W@BZ?=%.&W!T.?E(.3[]\UTU% &0GAVS$%\KR3RSWT8BN+
MEWS*Z $!<XPH )X  Y)ZDFLZ[\ Z+>:7I=BQO(CI2[;&Y@N&CG@7 &T..<8
M'.>E=110!5T[3[?2[&.TM@_EID[I'+NQ)R69B26)/))JB_A?2Y-9O-4>*1IK
MV$07,9E;RIE *C<F<$[6(Y[&MBB@##TWPIIVF&S$;7,T5@"+**>4NML"-ORY
MY^Z2 6)(!(& :T-4TNRUK2[C3=1MUN+2X39+&W1A_0]\]JN44 <Q;^ ])M]&
MN]+:?4;B&[A-O(]S>/*XA_YYJ6)VK[#%7/\ A%[+[?I=Z9KHSZ7$T5J3(,*K
M !@1CYL@ 9/I6W10!YYXL\)K;:&+32H;^Y:\UJ"_N0C%F!$BM*X(QMX'0>G
MKK(M M<W<[S7$UU>0B&2YD($GEC.%&  H^8G@#DY/-:]% '.KX+TF/3M+M(C
M<1G23_H%PDO[V 8P5#=P1P0V0>]/N5;PQ8&32]'N]4GNKH-<"*1/,=F&#(S.
M0,#:H]AC  %;]% &'H/AVUTSPU_9<MK;[+CS)+J%!F-FE)9U'JOS%1[ 57T3
MP-HV@J\=M]LG@*-%'!=W3S10QMU5%8D*"./7'%=)10!S&C^ ]%T/S$M#?- 4
M9(;>:[DDBMU8$,(U8X7()&>N,\\FM"P\.VEC=6]R9;FYFM8&M[9[F3>88VV[
M@#C)SM7ELGCK6O10!G:SH=CKUK'!>HQ\F59X98W*/#(OW75AT(_^M42>'K1+
M>^0RW#SWZA+FY9QYLB@8 SC  !(  &,D]3FM:B@"CHVDV^AZ5;Z;:-*;6W01
MPK(VXH@& N>I ]ZJR^&K"77)M85KF&]F@$$C13,JNJYVDKT)&YL$CC-;%% '
M-P^"-*@T[2;")[M;;29A/9KYO^K< @'.,M@,W!SUIL7@/1(-<FU6 7<1GF^T
M36L=TZVTDO7S&B!VELX/IGG%=-10 A 8$$ @\$&N?LO!UAIF^+3KK4+.S=BQ
MLH+DB$$G)VCJ@)[*0*Z&B@#'O?#6G7EQ8W*+):W5@I2VGMFV,B$8*]""IP."
M".,U#<^#]*N;"WLR)TCANQ?!DE(9YPVX2,W5CNY]/; %;U% &,/#5H-5OM36
M>Z%U?0+!.PD&"BYV@#&!C<>1ZURMUX6.G^*O"-IIB:C'INEV]U%]HC^;R-X0
M(I)!W#Y6'(('>O0Z* .>NO!>D7=C%;.MPCQ7GVY;F.=DF\\Y!<N.Y!(QTQP
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
MDK&@4'\JSM0T*.70;_3M):+2I+I& FMX5&UC_$0,9_G[T <!X9M-)U_5/"=R
MC:0K:;IK1W$*7,,S7#E4VX523A2';+8(W=.36+'=:9;_  ZT6TEFM8[FS\3C
M=$64- !?,3D=5&TCTZCUKT#3_"4[W5M+J=EX?B-M(DJ2:=8E)&93D88GY!D<
M@9R.,UTW]F:?YLDOV&V\R1P\C^4N78="3CDCUH \_O[ZTM/%'Q!N;EIFMH]%
MM6D^RMB3;MFSL/8X/![=:S=)DTY_&\=K'+I;6]UX8*"VM2&1BLB[$8Y_>,%)
MYP.#TKU06%F)WF%I )9 0[^6-S ]<GO1#865L8S!:01>4I6/9&%V \D# X!H
M \>MDTIOA'X,EMUM/.CU'33*T87<LGFJ&W$?Q8'.>:Z.W6QU36?'5EXD6+S8
MF4Q&<#]W9^4-C(3T 8.21T;WKNVTO3VB$36-L8PQ<(85P&/4XQU-.GTZQNI(
MI+BRMYI(?]4TD2L4_P!TD<?A0!Y5HM@^HZWX#7Q';I/>SZ'<_:DN!DRX,6P2
M _>.#G![YI='M)9_#,-EI-]96US9>(KY=/M;M-]O,%:7$) Y VL2,=,9%>JR
M6-I-.)Y;6!YAP)&C!8?CUJ(Z/IC0F(Z;9F(G<4,"X)]<8ZT <]X/URP7P_;1
M7-M!HT\E]/:"T,H*-<"1RXB/&X%MQ&/IVKKJ@^Q6H2!!;0[8#NA7RQB,XQE?
M3@GI4] !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !5;4-0M-*T^XO
M[Z=8+6W0R2R-T51U-6:YCQYHFL^(?#G]GZ)>6EK<-/'([W4>]"J'<!MP0?F"
M]01@&@"?P_XW\.>*KB:WT34TO)84WR!(W&T9QU( KH*\R^'%_K>G>)-1\*^(
M](TZVU"*V6[CO=/@6-+F+=MR=H /)XX'?BO3: "BBB@ HHHH *QM3\5Z-H]U
M-;7MS(DL$'VF8);2R".+GYV*J0H^5NOI6S7-^.((D\"^)YU11+)I4ZN_<@1O
M@?AD_G0 _3O&_A[5FLA97SRK?,R6LGV:58YF4$L%<J%)&UN_8UT->=?!>".;
MX0Z SQJ[1/.\>[^%O.E&?U/YUSL?CSQ);>(/"L5SJ$,[ZAJ4ME?PVZ(]JOSJ
M%$4@4,64-S\S<]><B@#V>BO*_$GB+Q+X?^)5IHUQK!32-<3R["<PQ VLVY00
M3L^; X /7>N3P37H]^]S:Z+=/;EI[J*W<QE@,NX4XR  .3Z"@"C=>+=%M-5;
M2S=23WZ+NDM[2WDN'C'JXC5MOXXJYIFM:=K(G_L^Z6?R'\N8 $&-\9VL",@^
MQY%>9_L^%+CP7J5_(YEO[G4I#=2L<NQVJ1D_\")_$UN_$O7I?!.@/J&D0QQZ
MEJU[#:^<R[@K%2-Y'0D*F!GV]* .^HKS(^+-7LO%WBSPN]])/]ATDZA9WCQQ
M^9&0BY5L*%898$?+Z]:YO1O'?BQK?X>ZE=ZNMQ'KUY+:W5M]EC5=HEV!L@9W
M<]B!P..N0#W&LO2_$6DZS?:C9:?>+/<:;-Y-V@4CRGYXY'/0],]#7GL'CC5(
M?B;<^'=;N[C3'DOQ_9RM"AMKJVR %W;=P<]<[L9.WBLF+QYJFA:?\2[\B">;
M2[](;4_9XT)+.T8:0H!O(X//I0!ZO<^)-)L]>M-$N;OR]1NP3;PM&_[P $G#
M8QQ@]ZU:\1N$U _%+X:W&HZG)?S7-G),SR1(FUFB)8#8 -O/&1GW-:FD^-/%
M?B-KO4]'MIIX[77#:-9*D0B^RJ!N+,V'\SYMW!QT&.M 'K5%>36>K>-/$7C;
MQ?X?T[Q!#90Z;+";>:6SCD9 V24Q@9!&>3D\#US4'C[QIXDT >(IK?488I-.
MDMGM(+9$E7RG8!OM&5)0G/ W GL, F@#UYY8XV17=5+MM0$XW'!.!ZG )_"L
MVP\1:3J>KZAI5G>++>Z<56ZB"D&,MTY(P>G;.*\T\276I:G\7? T":K=6D-U
M92W*I"$(B<Q/D@,I!)''S X!.,5''XVU'0M7^)ES((;D:2(3;_Z/&C,S95=[
M(H+@$CKV% 'L=%>5:3XQUNS\1>"K+4+YKZ'Q)IOGS!HD4P2E-X*;5'R\XP<]
M,UREU\0?&4'@_7-=77 7TK7/L<<1M(L2Q^CG;].F#UYZ8 /H"BO*/&OCG5O#
MWC!+2]N;G2]&N[1!8W\4"21"<Y)\[<I..@PI! YP<\>K AE#*001D$=Z %HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ K'\1^'T\1V$5LVHZCI[Q3+-'/83^4X
M89Z\$$<]"*V** .?N?"5I?:5?V=]>7ES/?6OV2:]9D6;RQG &U0HY8G[O.><
MUHZ)I,&@Z)9Z5;23206D2Q(\S;G('J:OT4 %%%% !1110 50UK2H]<T:[TN>
M>:&"ZB:&5H2H8HP((!8$#(/I5^B@#"\,^%;+PKX>30[*>ZFL8]X19V4LH8EF
M *J.[&N;M/@]X>LH-+BAOM8QIEV;NU+70/EL2"5 VX R > #[UZ#10!R/B/X
M>:9XJCF75+W4',DT<R.C1JT.P,%5#LR!\Q/KD]:ZFVB:"VCA::2=D4*99<;G
MQW. !GZ"I:* .4M_ =EI>KWFHZ%J%]I#7K;[F"U,;0R-_>V2(P4\_P .*M:I
MX,TO6M GTG46N;A9I1.]P\G[T2C&'!QA2,    8XQBNAHH YF'P1IZ3ZS=S7
M5W/J&KP"WN;QR@D$87:%0!0JC'MR:S(?A7HMO9^'[6.^U,1:#.UQ99DCR'9P
MYW?)R,BNYHH YBX\#V%YJ5I=7EW>7$=I?MJ%O;R%"D<Q)/!V[MH)SMW8R!Z5
M5@^&NB1Q>(HII;RZBU]_,O4F=,;\E@R[5!4@G(_"NQHH XFS^&6G6NIZ+J,F
MKZO<W.C1^59M-+'A4Q@*0$&>.,]3GDGC$]C\.],TOQ!>ZI87VI6T5]+YUS81
MS@6\KYSDC&>3U .#TZ<5U]% '.Z-X.L=$\2:MKMO=7CW6JE6N4E9"F5SMP H
M(QDCK6-J?PF\/ZK/KDL]UJBC6722YBCNMJ!U.0P7')SG[V0,\ 5W=% '*WG@
M'3+R_P!$OS=ZA%>:/$88)XY@'="NTAR5[@GD8(SQCBFV_P /='AU'7[R62ZN
MO[=39?0SLI1ASC&%!& 3CG]:ZRB@#E=*\!:9I>HZ=?-<W=Y-IEI]CL#<,A%O
M'C'&U1DXXR<\5E2?"+0I="U#1GOM4-I?WOVZ?]Y'N,OL=G Z<>U=_10!RVL>
M!K+7;>XM;[4+][.Y$7VBWS'LD,>,'[F5)VC)4C\.*ZA$5$5$ 55& !V%+10
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
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
M]G=8F&[,JH,KQR!L/IUI?"=CXPTFUL]"U&/3C86"K$FHQ3$R3Q+PB^45^5L
M G=ZXYYH T?'OB*3PGX'U76H4#SV\0$089&]F"*3[ L#^%)IOA.T71X5OGGN
M=2>(&;4#*PG,A')5P<H,] N !QBK_B70;;Q/X<OM%O"5ANXBA9>J'JK#Z$ _
MA6=H\GBFST^'3]0T^TN+B%!&+Z.ZQ'* ,!V4KN4GN!D9[T /MM1DTL6?ARV1
M]2U.TL(Y)F:0(-H^0,S'^)BK8'L<D527XA6,UOI$UMI]]-_:5T]F$ 0-!.@8
MM&X+<-\I'IWSBG/HFJZ9XT/B"S"7\=W8I:WL)<1.'0DI(F>,?,05R,<'FLJ/
MP7J=G+HTT*02RQZW/J]]B7"@RAQL3(YP' R<9V]LT 7I/B!)%9ZQ*WAV_,^C
M.?M\(EB_=QA ^\-NPV5.0!SP<XXS;N_&JQZM;:;8:/?7]Q=6'V^W,1C59$RH
MQEF&W[W);'MDD5G3^'-8E'CL+;0_\3V/9:9FZ'R!%\_''(SQGBJ-LE_IGQ \
M.6YLUFN(/#<D,T:2@8VR1 E2< \@=<<'UXH W=,\<P:S86<ECIMV;RXNI;.2
MVE&W[-+&"7$K#(4 #CKG(XZXB_X6%:'2=.OUTR]D%YJ)TTQQE"8I@S*0?FY&
M5."/;.*S1X2UVS>VG@2TNHKO5+F_U33WG,<;F4 1C=M.X)@9!&&/..E5;;P?
MXAM]-L;-K:Q(M?$C:IF*<@&'>[8 *\'YP /;J* -\^.&CL=>EET.]6[T3:]S
M9AXV<QLN\.I!VGY<G&<\&M:'7DN9-(6W@,HU* W"LD@(CC 4[CZCYU''<BLW
M3=.N=.\7>)=6U!;>+3]1%LL3O*/^6:E"&!X&2W')JK\/]#_LR"_D2Y^T627$
MEMII_P">=LKL=H/?YV89[JB4 :WC2\LK#P=JEQJ5C-?6*0-]H@A8*S)WY+#'
MX'-17/B>.UN)+"RLFNKFVL$O6MUE"N8VW!0@/WS\AST XYYJ7QII=WK?@W5=
M*L51KF\MVA3S'VJ"PQDGFN?\2^%;OQ!;K'+I4*W<-H@T_4(;GRYK2X .26')
M3.T\9SS\M '?#D9KCG^(VDK=V  5[.^NQ9Q3QSHS!R2%+1@[@A(P&]QD#-=7
M:QRQ6<,4\OG2K&JR28QO8#DX[9-<9X6TKQ;X?BB\//'I\FD6LA\C4O./F^1N
MR(S%MP7Q\N[( '/..0!T_P 1XX++4KYM"U 6>F7QL[V4M&/*P5!;&[YOOC@9
MX_*KUKXBU*?Q[JVC'3\V=E:0RJRR+N8N9.><==H &?<]>,"]\(Z[=>$/%^E+
M;VXN-8U&2YMR9_E5&V?>.."-AX&>HK>MM*U:U\>7NLK;V[6=]8P12 S8DB>,
MN=H&,-G>.<C'- &%!XJ6Q\*^'YO#FCR06NHZP;0Q32@O&3,^\<D\L5;O@9^E
M7%N(=/\ BMJ=Y<L8(4\.QW$^YR0F)9-Q_ +V]*I6_A#7H/!NC60@M#?Z9K7]
MHF,W!"2H99'P&V\'$GIVK2U+PMJ&L^)]5GNDBBL=0T+^RWDCDRR.6=BP4@?+
M\^!SGCI0!9L_'^G7&MV.FRHL7]H0O+;2K<)(/D7<RR!3\C;>>XX/.1BL'Q3K
M+:U'X0U"WL9DL+C7;4V]R9,;T+'!9.RL!D=>V0*V-&L?%MWI7]B^(8K"&VCM
MVMY+RUG+O= H4!"%1LZ[B<GD8 P>,:+PUXM_X1[P[HDUGIS_ -AW]M(MU]K*
MK/##G;\NPE3MP#UY]>P!Z!JMY+I^DW=Y#!Y\D$+2+%OV[B!G&>U<YH?BZ>X\
M,^'9[VU+:IJ\*&"%&4"4^4)&?/\ "H&2>_08)(%=-?VS7FFW-J&"M-"\8)Z
MD$?UK@[/PIK]KIG@^Z,5F-2\.(;8VZSDI<0M$(W.XJ-K?*& QCC!// !UFB^
M(8=7O-1T]X)+74-.D5+FW<@X##<CJ1]Y6'0\'@Y JOKWBDZ+J^G:9'I-Y>W.
MH)*8/)*!6:-=Q4EF&#TY/'OVHT31)X/$6L:_=HL4^HK#$D"MN\N.-2!N/3<2
MS'C( QR:BUO2=1N_&?AO4[:&-[33OM'GEI=K?O$"C:,<XQD]* *FH_$&TTVT
MN)9;,B:R@2:]M7N(TEBW('**I/SN%() XY&"3Q5U_%\-Q%(^CV<NI&*RCOI%
MC(7$;@LBC/5V )"_F1D9SI=,\4Z)XMU.]T2WL+[3M6:.62.YN&A:VF5 A885
MMRD*IQUR.U,ET?Q/HOBVXU?2([+4X=3MH8KR.YF-N4FB!42*0K?*0>5QF@#8
M3Q2EY-!;:;8SSWDEDEZ\$Q$)AC;[H?/1R00%_P!DY([T?^$_LI-.TJ_@LKAK
M>_O18.7*H;6?<5VRC/'S C(SSCU%-70]8TKQ@=?@\J_%[8I;7T081,)$)*R)
MGC;\Q!4G(X.33(_ PD\#ZOHUS*@N]4N)[UY(R=L,\C[U*GKA"%YXSMSQF@#7
MO_$UMIC:@UU$RV]F8HS+O7$DLF L8R1@_,N<X # YZXQ)_B786L>LB6SDEN-
M+MA=O':SQRK)">-RMD#@\$'D=LU+J'A;5=0\"Q68O(8_$"RQ7YN"/W9ND<28
M..=F1M'H /2H=6L?%WB7P9J]A?V.GV5U=6C6T4$5T9%9FZR,Q4;0.RC/4Y/3
M !TFC:K<:JD\DVE7-C&I7R6G9#YRE0=P"DD=>AP:H:[XL&BG46&FW$\.FV@N
M[J7(1=AW<(3P[80G'';G)Q6W8+*FGVZ3QB.58U5U#;@"!@X/>N)\4^&_$&LW
M^O0K%97=C?::;>Q:XG*_8Y"CJQ";2"6+ [L@@#'M0!L7/C%4UJUTJSTF\O)[
MNQ-] R-&J.H*C&2W'WAG./;)-58?']O-INC7XTVY2#4KPV+%V4?9IP[)M?GI
MN4@$9SQZBH=-T/6X/$NB:E<VMN([/1WL9EBGW'S"R$;<@9&$QVY-4HM CLOA
MOJFA^(YK>T::2ZN8Y$F#%=TC2JR]"64E3@=Q0!VEMJ1N=7OK%;=@EH$#3[@5
M+,-VW'7(&"?9AZUR'Q09(%\+S$S*'UVVAF\C?NDB(?<F$Y8''3FNE\*V%W8>
M'K8:DXDU.<>?>OC&9FY8?0<*/9167XXT;5-:?0?[-@AD_L_58;^4RS; RINR
MHX/)S]* 'Z6=)_MJZETNTU!;BRM!YD+QRQ"42,2 %EV@D>4<'W(S6:OQ,#>%
MG\2#PYJ?]E"U%PL^Z(;COV[<%L\=<X]<9[]"LVN2WZ.=,MK>!48RL+@.\I .
MQ!\HP,L3G/;IS7*#PCK?_"EAX2\FV_M,0"WSYW[K[^[=NQG&.V.OYT =$OBJ
M4W45E+H]U;WUU,Z6D$SH/.C10S2D@G:HR <\Y(&*IWGQ!M+'1]4O)].N_M.E
MW*6U[:*5+Q%RH1LY^9&W @C)]NM2ZWHNI7&O:#XCL8HS=:>LL5Q9O)@212 !
MMK8QN4J",X!]16-KG@S5-2TSQ+<010+J6N7%HPA:7"0Q0%,!FQRQVL>!CY@.
M<9H WX?&,":KJ-CJ=C<::UE9_;]\[(P>WR07^4G!!4Y!YJO:>/\ 39];M--G
M583>023V\JW"2#"#<RR;2=C!>>XX//%5=:\*WVO>)M1FFC2#3[[07TMI!(#(
MCLQ;=MZ$#..O4>E3:39>+-0TMM&\20V$-LMN]O+=6LY=[L%"F0I4>7UW$Y/(
MZ 4 6%\;6ZPZ5?3V4\.E:K*D5K>,P/S/_JRZ]55^QYZC.*9<>.8+;1-?U)]/
MG(T.X:"YC#KEMJJQ9#G!&''7%9EOX5UB[\+:-X8U2. 6^FSP%[R.3(GBA8%
MJXR&.U0<\#G!-5=8\)^(IK'QGI-E;V3VVN2&XAN9+@J49HT0H4V^J=<XP?PH
M ZB?Q2HO[NSL[-KN:RBCFN(UD59 KC(VJ?O8')Z>V3Q6/$SVGQ4U^6W@DN'&
MC6\H@5^7;S)>!DX!( '857\1>$M1U[,C:?;VVK0)&-/U:TN2KVS #<'. 60'
M<0,'.<87K6S!IE[:^/\ 4==N%A33I=.BMA*90&!C9V+$= /G]>U $FG^+HM4
MT#2=5M;.5O[2F$,<!=0Z'YMV[ME0C$CMM-=)7$^&-%CA\8:W>6MTLVE),9+:
M)>5CN)55IR#WZ*1CH9''K75ZF]\FFW#:;#%+>["(5E?:F['&XX/% '":WKNH
M6'C?3==\\CPZETVBSI_#O?'[[Z"51&?3:?6NMUCQ NCZII-G-:2/'J5Q]F2X
M# )')M+ -GGD*<8[\5@ZGX!TV_\  MQIG]DVIU&6T*"9@OF>?C_6&3&<[OF)
M[U->Z'K>N?#M-/U+R(O$%ND<D,\<FY#<Q$,D@. 1EEYXXR: +5OXQ2XAUP_V
M?*MQI%P+:2W,B[Y7(!79ST;<-N<9/'%-U?QJFCI?3W&F7'V33Y(8KJ8D+AI-
MO^K!^^%WC)R/;.*IVO@F:T\66>II<J;9[8'4DQC[3<HY:.3'^]([>VU165XH
M\)^)=;3Q);>3872W;QOI]S/<$&"-=A,03:0N2K$L#SNYSC% '17WC"6V\17.
MAVN@W][=P0Q7!\MHU5HW<KN!+=L'@X)],<US7Q(US^UOA[KCV-G++96\P@-V
MLH7]XL@5BJ_Q(#E2?7/!'-='8:5JR?$"ZUJYMH$M;C38;4^7-N*R([L>"!E?
MGQGKQT%<O<^#O$\/@O6O"%I;V5Q:3SO+97DER4*H\OF%'3:?F!)Y!P1^1 .H
MU[QW8:(VH#8MP=.4-=H+A$<94-A%8Y=@I!QQU&"3Q5AO$MOJC&TTJU?42UG'
M=RA)!&%BD!V#)_C8 D#CIR1QG)73?%NB^)M1O-*M=-O+'5VCFFBGNFC-I.$5
M&8'8=Z$*O& >.U21:+K^B^,[W5K%+;4K;5;:".[$LOD-%-$I4.,*05(/('(-
M #_A4Q?X9:(S%B3$Y)8Y/^L;K78US?@+1]0T#P7I^E:FD"W-LK*?)D+J06+#
MD@<\^_UKI* "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH *9--%;PO--(D<4:EG=V 50.I)/04^O/_BQ
M*YTSP]9.2+"^UVTM[[T:$L25;V) H Z1O%^B):_:I+J2*U(RMS+;2I$V>FUR
MH5L]L$Y[9K<J"\L[>^L9K.YC5[>9#&Z'H5(Q7*)J^JZ_/XE&EWHLVTB<VMNA
MB5Q+*L:N3)D9VDL% 4@X!.>> #LJ*\YT_P 6ZSXBU#PO]CN(K&VUG2Y[F1/(
M#M'(A0$@D\\L<<?7/2J3^)_$]OX0OM9DU2!Y-'U5K&2,6J@7B+<",ECGY20W
M\.,$=\\ 'J=%<+<7GBC5/&'B#1=/UBUL8[.VMIK>0V8D92_F?*<GD':,GVX
MJEH/C;5/$MGHUJ(9K>]N+&:YNFLQ$6#1S>3\@E.W:6!)ZGH/>@#T>BO/)=8\
M8VK>&+._EL[6\O;Z:UN"(A)O41NZ/PV%.%!*COWQQ21^)/$-KINO0OYVI3:3
MJJ6\D]K;KYYMF1'9EC^ZSJ&(Z=.<4 >B4$@#).!7#0>)7O\ 0;:]TWQ#;W%K
M/J0A-PT.+A8]N3$L03F;<,8*]"3BN?U37-8U7PC<B6^N();/Q-%8%UC17EB\
MZ/&\ $9^;G;@''(QD4 >G-J5LFK1Z83)]IDA:=0(FV[ 0#\V, Y(XSFK=<E-
MK.H:=X]@TN>[$VG#1IKMQY($A='1=Q(]F/  %8LWBW6(/ VF^-OM"R6\\L3W
M&G^6NQ8)) @"-C=O7<IR202#P., 'H]%>;:GKGB?=XX:WU:W@7056:W M V\
M>0)=C9)X[$]?3'0]!XEO[JX^&&HZG;7$EG<MI3W2O#C*'RB^!D'Z9Z^F#0!L
M7&N:?;:Q8Z3+,PO+Y7:W3RV(<(,M\V-O ]^XK1KS":WO/[8^',4-\?/>TNML
M\L:L4!MTZ*, X[9_'/2K^G^(M9ET&[2YU*V6XLM=?39;MHL/+$K#F.-0092"
M % (Z\4 =^P4K\X&!SSVQS3)Y4@MY)9-VQ%+-M!)P!DX Y/X5Y3KVNZOJ'P^
M\6I)>W$,NG:FMHDOEHDDD+&+Y7 & <2$' '0>]>D:B;NR\/7;PW6^ZA@=TFF
MC!RP!()5=H_E0 S0+32H[ 7VD6WD0W^+IOD9#(S#.YE;G<>^>:U:\Y?QCJ%M
MX9\,:KJ<EW!I][IJS7NHVELLGDSLJ%2Z[3MC.7Y ZXY%=+>ZE>1?#Z;5+6^M
MI[R/33<+=(F^*1UCW;@ 1P2./K0!T-%>?0:YK]II.AW-YJ"W<NOFWCACAMD0
MVQ,+22$%F <MM &[ !.<$?+4D^O>)-%CEM]21=MYJ=M9Z;=W'E^8%E.&,BQG
M;E<'&,;LCWH [VHKFXCM+6:YEW>7"C2/M4L< 9. .3]!7):OJ>N>&8;M[F[A
MOK>YNK6VTYF51,C2.$?> %0@$@KT]">],EO/%>GP:_+*?]#AL6N+*XO%B,JR
MJ"61EB(#+T(/&.^: .OL[J*^LH+N#=Y4\:RIO4J=K#(R#R#@]#4U<%-XAU>U
MTGP7KD]Y_P 2^^6WCU0")>&EC&R0''RKYA /L1C%6K_Q#?VTEN(I))%U74VM
M+,*L>8HT1BS+NP"6:-MNXD8*GGH0#LZSX];L)=>ET196^WQ0"X>,QL (R=H8
M,1@\\<'L:Y&Z\0>)-#MY;?48U+7NIVUCI5U/Y>_$QPQE2,[<IAL8QNXZ<T_3
M[>YMOC)<I<7LEV#H,91Y$564>>W!V@ \Y/3O0!U::W82:])HBRM_:$< N6C,
M; >63M#!B,'GC@]C6A7G^JVVHW?Q:DATS4$L)CX?7,Y@$Q ^T-T4D#KZYX_,
M44\7>($\-6NLWD\<::9JKZ?K7DQ#:\:R>69DR"5P=I(]-W3% 'IU%9&E75Q?
MZGJ<_P!H+V$<HM[=-JX+*/WC @9(W$K]5;VKE-=\3ZOIEU+/'>QRB+6(+4V\
M$0>%('9%Q(Y4$2_,3A6./EXQ0!Z!))'#$\LKJD: LSL<!0.I)["L1O&&AQVA
MO)+MX[,#=]J>VE6%AV(D*[3GM@\]LUSOQ<FD'AK3+4L5LKW6+6VOCT'D,Q+
M^Q(45W%U9V][8365Q$KVTT9B>,C@J1@C\J )Z*Y"+5-3\0:IXBL]+OOL1TET
MMX/W2OYLIC#DR;@?DR0N%P>"<\C&39^,]2OK+P=XA=_L^DZK)]EOH BGRIFR
MJ$,1D*74C\5H ]%HKC+SQ#?P"Q$4DDO]LZD\%GM2/=% J.VY=V%8MY9*[CT=
M>#C!R]9UGQEHNBWDLKQ($U*UBLY[B.-I9899%1E=8SM4@D\@<CL#0!W.HZ-I
MFKM;MJ-A;79MI/-A\^,/Y;>HST-72H888 CT-<7)J&MVNMP^'9=0FO+J2WFO
M6N;2WABD6/>JH@61BO&3D\D\<=34-KKWB(76A>'M5\JTU6]:X>>XB",?)BP0
M57E0[;ESU PW'2@#J]-UNPU>>^ALI6>2QF\BX#1LFQ\!L?,!G@CD<52N?&6@
MV=[<V=Q>M'<6JA[A#;R?NE/1F.W 7W/%8O@.*:'7O&<=Q<&XD755S*5"EAY$
M>,@<9QC.,?050AEOH_BUXJ^P645U*VF6@"2S>6N?GQDX/'K0!Z#:W5O>VL5U
M:S1SV\JAXY8V#*X/0@CJ*EKS3PY9:CX/LM'\#Q3S2W0LY[ZXGLQ'E<RC"QB4
M[=H+G)()X' SQ/<:OXRM4\-V=[-:6E[>ZA)9SL(E?>@C=DDP&(4X494=^^*
M/1**\[U+Q%JOA^_73-<U>2UW11+::K]B5;6YE).X2G#>6>@ R!W]JU$U;5/$
M&H>([?2[X61TF46T \I7$LOEAR9-P)VY8* N#P3GD8 .PHKS?3O%^M^([OPF
M;.XAL(-:T^XFF0P;VCDCV E23SRQQ^&<]*Z/P1JU]JNC70U*5)KJRO[FR:94
M">:(Y"H;:. 2,=* .E) &2<"L%7T"Y\9O"(\Z];VHD+M&X982V!ACP5)'0=Q
M67\2FNDT&P-K>S6N_5;.-_*"_.K3*,'(/'?WQSD<50NK349OBM/;V6I_9I_^
M$=B#730+(_\ Q\2<A>%SGV_#N #T&BO.]%\9ZGK>E>&8-DBWVIV,US<2VJQ[
MAY3*GR"0[1DMGO@#&.<CJO#$FN/I<B>((HUNXYW1'0KF6+/R.P4D*Q!Y XR*
M +^I:98ZQ8R6.I6D-W:R8+PS(&4X.1P?<58AABMX4AAC2.*-0J(B@*H'   Z
M"O-K?Q7K^H6.A7%K>1QZC?ZI)9WFFM K_9(P7R=HPX*!%R2<'=VR*OVNK>(+
MCQ!XC\[5H(M/T.[1FB2S#--"8!(R9+?*>>O/]* .]HKSN7Q5K%KX0T3Q@UPL
MMO>2P&ZL!&NQ(IF"CRV W;UW+U)!YX'&+2>*+E?&)T?4;R;3+IKTK:P3P+]G
MO;?MY<F,[^Y!;KQCT .ZHKA=)\47-SXK32-3O)M/U$7,^=/N(%6*Y@&_8T$F
M/F.-A/S9^]P*V-?O;Z'5K&TM[X6\,T,K%+>,27,D@V[=JLI4(,G<QQ@[>1F@
M#HJ*\TT[Q;X@U6Q\"S)<VT#:SY\=W_H^[+)%(0PYXY4''KWQQ4=SKOBF#0?%
MLPUF$S>'9Y#'(;-<W*B-90KCH.&(RH![_4 ]/HKD8-=N]>\2S:/:7+6"6VG0
MW<DD:*SL\N=H&\$;5"\\9)(Y&.<73_&>L7?]@+,\<=PVMSZ1J")&/+E,2R'>
MF>5R4'?N: /2**\UUWQ5KMAI'CF2UO(O-T:XB6U>2!6(1XT8@XP"<N<$@].A
MK1FU'7;;Q9>Z+<:JKQ7&C2WT,D5NJ-;2(ZIA<YR,.#\V>E '<@@C(.117*?#
MD7+_  ZT6::\DGFFLHY TH!VDJ/3!///)S[USMAXG\1P^#[OQ3?ZE;316TES
M;"T6T"AW%P8HW+;L@#N.X[YYH ]-HK@=6U[Q)X7AU/5;N"2ZTB"P:5?M9A21
M;@' 4>4>8SGG/(QU-:E[=:WX>@N]8NK^"_TNWTV6XFB9 DGG(N[]WM7[A /#
M$D<<GF@#JJJ:=J5MJELT]J9#&LKQ'S(F0[D8J>& .,CK7,Z9=^*9]3TNXVM+
MIEW S79G$*K"Y4,C0[&+%2>"&).,'-8I\2>(V^'MSKZW8:XT[49UNEBMU_>6
MT<Y1]H(.&" D'GH<YH ]+HKC]:\42Z?I^K:W:3B>PM888H4(78\TA'S9X)4"
M2/N.K=,55O\ 7/$/AD:IJE_!-<Z+;Z>\X-R84E6X7HB^4<%&'J,@]S0!U5WK
M=A8ZK8:9<2LEW?LRVZ>6Q#E5+-\P&!@ ]35NYN8;2W>>XD6.)>K'W. /<DX
M'<UY]J,6HGQAX NKW4?M)FEG>2,1*J(YMG/R8&=O)&&+'ISUSJ^(;IY_B)X3
MT@G_ $8BYO9%[.\:!4_(N6^H![4 =(NJ6S:HFG?O1<O;_:0#"P79N"\MC .3
M]W.?:KM<R-6U!?B;_8S31G3FTAKM8Q'AA()53);//!/IUI_B'6KFUUG2=&M%
MF$M^LTADA$9=5B"Y"^80N27'7/ /'< '1U1O=&TS4KNTNKZPMKF>S8O;R2QA
MFB8XR5)Z'@?D*I>&)-=:QN8]?C03Q7+K!("FZ6'@HSA"55N2"!QQ6W0!!>7L
M%A9S75RY6&!#)(50L0H[X )/Y4W3K^WU73;74+-R]M=1+-$Y4C<K#(.#R.#7
M!VXO)/$OQ!$VI7$T5O!$B1.$VA6MV8+PN0 6.,>O.:J^%-2UC2[/X>P->QRZ
M?JEBL#6WD >7MMO,5@W4GY<'/'/ % 'I]%<#8:[XFURSTW6])A=K:>[/G6\O
MDK#]F#LI(;=YGF  'GC.1BNA\1WMU:2Z;'!>1VL4]P4F*KON' 1B%A3:P9L@
M9R.%!/N #=HKS(>+O$#^%+.[2XA2[7Q"-+F:6 $R1_:/+R0#A6QUQ^&*T$NO
M$TOB77=!&NQJ+:UAO(+K[&F]-^\;,?=*Y3.2"<<9[T =[17G^@>,;_Q*?#>G
M^:+.YO\ 2&U*[GB12>&5 J!@0,LQ)R#@#'?-5)_&&MV]O=6LDZ?;=-U^VTZ6
M41+MN8)63#$?PMM?G&!GZX !Z717#:IX@U>UUCQ=:6]U'LT[28[ZU\R$-L<B
M4D'&,CY!U_6H-.UO7QJOA-;S4HYH->L)&DC2W5/(D6%9 ZGN>3D'CT Z4 >@
M @]#FLSQ!>Z78Z#?3ZR%;35B87(,1E&PCD%0"<8]JY[X8&[E\("YN[^>[DDO
M+K)E"\$7$H)R .OY#M@5S$XO)/!/Q/DNM2N+D1W%Y"%E"8P((\'A01@<8Z>V
M>: /3]+M;&STNV@TRWBM[((#%%$@154\\ ?6KE<#::UJNB:]I5K?7B76GWFD
M2W7DI $,#0B,_*<Y8$-W[CMTJ71]5\4:G_8&K01,^GWZ+)>PR^2L<4;KE6B9
M3O)!(&&SD=@>* .QOK^TTVSDN[VXCM[>/[TDC8 [#]>*H+XFTHRP1233027#
MB.%;FVEA,K'H%WJ-Q^G;FN6\82//\3_ NGW'_(/:2ZN-I^Z\\<>8\^ZY)'UK
MN;JT@O$C6XC#B.5)4S_"ZD%2/Q% $]%><R^+-7N? =[XUL;A5CMIIG33WC78
M\$4I0AFQN#D*6R#@$@8/?0_X2:ZT_P 631:C=/\ V5>Z6;_3QY2AE9.98^F6
M8 J0/0G.: .VHKBWU76?[3L_#[RW)O\ ^S?MMS-;)!O#%]H51)A=H(;/!)^7
MI6?+J_C..?PIIU[/9V-]J$MS!=E(1(#LC=D<?-@' 4[?7OCB@#T2FR2+%&TC
M;MJ@D[5+'\ .37!-JGB>\_M?3-.N9)M2TA8X!/'! D=S.8ED+2*[95#N PG3
M!.3T%^QUG5->UZ[TCSAIDVG6-M+=^2J2$W$P8[06!!10O;DYZC'(!T6CZO9:
M]I4.IZ=*9K2?=Y<A0KNPQ4\$ CD&KU<;\*=P^&FCAR"V)<D=,^<]=E0 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !5#6=&L-?TF?3-2@$UK.,,I.""#D$$<@@X((J_6!XS\1R^$_"]
MWK<=DEXMJ%9XFG\HD%@O!VMZT /M/#UQ#"MM=Z[J-]:J-OE7 BRZ^CLJ!F'X
M\]\Y-13>$K<ZKJ%_97UW8MJ2*MY' 4VRD#:'&Y3M;'&1C\^:@B\6SV_BFP\/
MZSIJ6EQJ,+RV<UO<&:*0H,NA)1"K <],>]=/D9(R,CM0!@+X1L8=6TJ_M9[B
MV&EVK6EM;Q;/+$;!00<J2?NKW[52E\ 64WA_4=&?4]1-OJ%X;V9LQ;Q(7$AP
M=F -P!Z5UF1G&1F@$'H0: ."LK"]G^)GB&1+G4K2*2QM85N5M@$F9?,W89DV
M[AD=..3P:TK_ .'^EW%KI26%S>Z5<:4ACM;JRD D"'[RMN!# ]3D=>>YKJP0
M>A!HR,XR* .=E\'VTLND2G4+_P W3)VN$D9T9II&4JS2$J<\,1@8 [8P,-C\
M'1P7E[>0:OJ,4]W>+>NRF+Y7";, ;/NE>"#FNEI,CGD<4 <K/X"L9F2XCOKV
MWU!=0.H_;("@<RE/+/RE2NTIQC'OU)RQOA[IS:=J5E_:&I;;Z]6_+F52T,ZE
M6W)E>Y0?>S^%=<"",@Y%("",@@CVH Q%\,P_\)%;:V]_>27%O:-:;'*%'1B&
M8M\N<DJ#P0/0 53L_ UA9V<>G)=73Z1#<"YBT]RIC1@^\+G;N*!OF"D]O3BM
M^^DNETZX?3TAENQ&QA25RJ,^. 2 <#-30F1H(S,JK*5!<(<@''.#W% '.3>"
M[6;_ (2'=J-]C7DV70!C^4;/+^3Y./EXYS^=:9T.VD\,MH,\DTUJ]H;1W8@.
MR%=O4 #./:M/I0"",@Y% ',V_@N&"ZT2Y;5M2FET='2 R&([PRA#NP@_A '&
M.F>I)JL_P]LFAD"ZKJ4<S:H=6CG5HM\4Y!!VC9@J02,$&M#3]?GN_&.JZ));
M1)%9VT$\<R2%C()"XY&!C&SIS]:WZ .2?X?:=+I^N64M_J,D6L2+-/NE7*2
M+\Z_+URBGG(&,  <5OR::9=%DTZ2\N7,D31O<L5\PYZG[NW//I@>E7<C.,C/
MI02!U(H YVR\)+IUE86EGJ]_''9VGV-0PB821C&-P*8) '!X[YSFK0\-647A
M+_A&[9YK>Q^RFU#(07"$8/+ C)!/..];-% '-WW@NPU'PK9Z!<7-X4LO+-K=
MHX2>%XQA'5E &X#C.*CG\#65_H%QI>J7^H7\DY1FO9I0)T9#E"A4 +M.2,#N
M<YR:Z<D*,D@#WH) ZG% ',OX'LKS0;O2]7O[_5/M2JKW-S*!*H4Y39M "D'G
M.,D]<TZT\'B'2;RRNM;U6_DNH&MC=74B-)'&1@A?EVC/<D$GC)X&.EI,C.,C
M/I0!AR>%;&?P9_PB]Q+/-9"U%J)'*^8%4 *<@ ;A@$''44:WX2TW7-!M])E,
M]O':-&]I-;2;);=T&%9&[$#C\:W,@=2*K'4K3^UAIGG*;PP&X,8ZA P7)],D
M\>N#Z4 8$_@6RO\ 09=-U+4-1O9I'23[?+*!/&Z'*,A4 +M.<8'<YSDU/IWA
M,67B%=<GUC4+V^%F+-C-Y05T#%N0B#G)[5<&JR:=IS7.N_9K5C<^3&(9"X8-
M)MC'('S'(R*KC7KC_A/3X>:UB$']G&]6<2$LQ\P)M*XP.I[G\* 'WWAQ+K7X
M];M[^ZL[Y;;[(S1!&5XMV[!#J>03D$?K6;JL5KH>AIX<LM$OM074(IXQLB+Q
MEVY8SR9^7<7))^OTKK,C)&1D=JP?%NOS^'=,@O(+:*XWW<%NX>0J56214W
M'.-W3B@#0T/28-"T.RTNWR8K6%8@QZL0.6/N3DGW-<[=?#JQN4OXAJNJ16]W
M?#4?)CD3;%.'#EERA/)7HQ(YX&:Z]W6-&=V"HH)9F. !ZFH-/O[;4].M[^TD
MWVUQ&)8W_O*1D'\J (=4T:QUK1IM*U&'[39S)LD1R<G'0YZYR <]<U1L_#MQ
M;P+:W&O:E>6:C:(I_*RR_P!UG5 S#\<GN36Z#D9'2D) ZD"@#!F\*0#6;S5+
M&^N]/FOHECNUM]FV7:,*V&4X8#C([5)>^%-*O?"1\,^28=.\E846,X:,+@J0
M?4$ Y]16T2 0"1D]*"0,9(YZ4 8FO>%=.\0:-!ILQFMEMG22UFM7V26[IPK(
M>Q X_&J-SX&AO=&^P7FLZI<2-/%/)=N\9E<QL&0<IM"@C. !U.<Y-=22!C)
MSQ5662_&JVZ10VYL&C<S2-(1(K\;0JXP0><\T 9'B#PC;Z_/8WGV^^L-2L=P
MAOK-U63:V-RL""I4X'!%17W@BSO(=-=+^_@U'3I6E@U%)%:<LPP^[<I5@PP"
M,8P !@#%=/2$@$ D9/2@#%T+PU%H5[J5VE_>74NHRK-/]H*8WA0N0%48X4>W
MIBFV?AB&S\57OB!;^\>YO(DBEB?R_+VIG:  H(QD]^];M8.L:]<:9XET#3$M
M8G@U266-YC(0T92)GX7&#G;US^% #?$?A*V\0W%E>"]O-/U&R+?9[RR<+(JM
M]Y3D$,IP."*CF\&VTYTEVU+4/-TVX-TLI=&::4J5+2%E.>"1@8 '3&!CI 01
MD'(J"ZNX;.QGO)6_<P1M(Y'.%49/\J ,?5?"L.L#4(;F_NS8Z@%%S:?(4(
M^4E=RY"C.#],'FDE\)P#5[W4;&^N["2_C6.[2WV;9=HPK?,IVL!QD=J-"U?5
M]5-I>36%O'I5[9)=12I,?,B9L$1NI'/RG.X<<$>AK?R,9R,>M '/IX/L(-3T
M>\M)[BV72;9[:UMXMGEA&"@YRI)/RKSGM6?/X-N++2I+72-9U6*>;4C?F59(
MUP[$E@^%&8\G)7J< <"NPR "<C ZTM &7X@T&W\1Z4;"XFG@ ECFCF@(#QNC
M!E89!'4#J#56+PO'%XA;6QJ=\UVUDMD=QC*[ Q8'[GWMQ)].>F.*W20" 2,G
MH*"0.I H XT_#;3ET/2M/M]2U.WGTEW:ROXI$6>(-]Y<A=I4]P1716-A_8^E
MO'$]Q?3@-(TD\@,D[X[G@ G '0  #L*T:* /)M#M-46WC73]4\5VFJG+O97F
MGJ;=)"2S*TKQ89,D\ARQ'3)KO],\-P:9JNK7XN[F=M4=9)XIMA0$*$&T!0?N
M@#DFM>5F6)C&$+X^4.VT$]@3@X_(UC>$->D\2>%;/6)X$MGN Y:)7W!-KLO4
MXS]V@"I8^"+&QM+;3Q=W<NE6MP+BWL92I2-@VY1G;N*JW(!)Z#J!BIY/"D%Q
M/$;J^NKBVAO_ .T(K>79B.7<7&&"[MH8Y S[9QQ709&,YXK T?7[C4O$VO:5
M-;11)IA@$<D<A?S1(A;)X&.W'/UH 2+PI +BPDN;ZZNX["X:YM8YMG[MV##[
MP4$@!B "?3.<"I-2\,0:AK]KK*7U[9W<$#6S?9G4"6)B&*-N4XY .5P?>MRD
MR,XR,CM0!R6G?#ZQTR/1(X-3U(IHTLDMJ'>-OO@J0WR<C#$=NOK4TO@>TFL]
M?M7U*_\ +UUBUUS%D90(=GR<?* .<UI/JLFHZ%->^'_LUW*'>.+SI"D3LDA1
M\L >/E;! YP*U20.I H YX^$8$U"SU&UU"[MK^WM19M<((R9X@<A74KM)!Y!
M !_#BF7?@FPGTFQLK>YNK.6RN_ML-W$5,OGDL6=MRE6W;VR",<UTM)D8SD8]
M: .0N/AW8W5GKEM+JFIE-::-KMO,C))157(RAQG:,]O3 K4?PQ#+XBCUJ6^N
MY)TLFL3&?+"/&Q#-D!<Y)4'((K<!!Z&L/5]:GMM7L]%L(X6U"[@FG1IR1&BQ
M[0<XYY+J/S/;! )?#WA^+PYHD6E6U[=SPPKLA:X92T:#[JC"@8'N"?4FJ=CX
M,TZT\,WOA^>6XO;"[:5I%N"N?WC%FP55<?,21Z5L:;/=SZ=;R:A:I:7CH#+
MLHD"-W 8=15K('4B@#E]/\#6EMIUQ8:CJ>I:Q;2P-;*E_,&\N)A@@;0.<8^8
MY/'!%2:-X,MM+M6M;G4]1U6V$+6\45_(KK%$1@J JC/'&3DXX&,G.WJ>I6FD
M:9<:A?3+%;6Z&21SV _KV [U9) ZD#ZT <QX?\$P>'FC6+6-5NK6W!%I:W4R
MO'; @CY?E!. 2!N)P*OZ'X:M="TNXTY)Y[NWN)I9G%SL.3(Q9Q\JC@DG\ZV:
M* ,&U\'Z1;>#1X5,+2Z9Y!A99&RS \DY]<\Y[<55T[P1:VNGW%CJ&IZEK%O+
M UJ%U"8-Y<3#!4;0.2,?,<GC@BNHHH Y&T\!16TVCO)KNK7"Z.[-9K*T7R*4
M*;20@+#:<9)S[U>\0:/)<:KH^N6J>9=:7*^8QUEAD7;(H]Q\K#U*X[U:;59-
M-TZ[O=<^S6L<4[+$8I"VZ,MB/.0/G;(X'<]:K?V_<+X\'AY[6);<Z:UZMP)"
M6)$BIM*XP.I[G\* )AH$$OBA/$@N[M;C[']D$)"B/RRP;D%=P.0#UK.O_ UO
MJ.CZ;:7&K:H;[39#);:H)A]I5CG.6Q@@@X((Y %7-;UZXTK7M L([6*2#4[E
MX'E,A#1D1L_"XP<[>N?PK>!!&0<T 8<?ALQ6-M;KK&I^;'=)=37/FCS+DK_"
M_P N-A  *@#@"G:9IM]:^(M6O);Z\ELKGRS%;W$BLL3 $-Y8'W5(QUY)S]3K
MR,_E.T*H\@!VJS;03Z$@''Y&L;PAKTGB7PI8ZS- EN]RK,8E;<%PQ&,]^E $
M4WA&VDU;5M0CO[Z!M5A6*YBC9-A*H4#@%2<[3CKCOC(%0P^";6"/P\B:C?[=
M!&+3)C^8;#'\_P G/RDCC'YT6OB'4[_4_$^FVUC:BZTH1"UW3MLF,D>\;CM^
M4=!P#]:Z2)G,*&4(LA4%@IR <<X/<4 <M8> K+3-4EGM-3U./3Y9S<MI8F'V
M;S"=Q(&-P&>=N<9[8XK2UOPW#K5]IM]]MN[*\TYW>":V*9PZ[64AU8$$>U;6
M1C.>* 01D'(H X\?#RP2Q:S34]36$ZF-4 ,B,5E#[P 60\;N><D]S6FOAF--
M>O\ 6%U&\%S>VR6SC]WM55SM*C9U!9NI/6MPD 9)P/>ES0!R=IX!L+"ST:.S
MOKV*YT=&BM;O*&3RV^]&XV[64\=1GC(-6+SP5I]YHEUISSW*RW-TM[)>*RB;
MSU965^FWC:H QC QBND!STI,C.,C/I0!RI\"V\EQJ=Q-K&IRW&IV0LKF1FC^
M9!NY V84_.>@ ]L\U8C\'6\5SH$XU&^+:'$T5L#Y>'4IL._Y.?E '&*U7U.%
MKZYT^V>.6_@@69H6?: &)"[B <9*GL>E4O"&O/XE\*Z?K$L"6\EW&7,2MN"_
M,1C/?I0 _P /^';?PY!<6]K=74MO+,\R13,I6'>Q=@N #C<Q/.3[UG7/@6RN
M(->MQJ&H16VMLS7,*.FU690KE,H2"0HZDX[8KJ,C(&1D]J,C.,C- &!_PB=N
M=6TO49+Z[DDTZV>UC1O+V.CA0V\;.2=J],=*JZ%X$M/#]PHMM4U233HG,EOI
MLTP:"!B<_*,;B >0"2 >>N#754 @]#F@#*U_P]8^([.*"\$J/!*)K>X@?9+!
M(.CHW8_H>]):://&T9O]7N]0$9#(LR1HNX=&(15R1UYXSSC(%:H(/0@_2EH
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
M[8?V;K\$YU76HK'Q!9:O(75(U%XLBS-Y:(2=S*R;5  P1Q7KB(D<:QQJJ(H
M55&  .P%53I.FMJ0U)M/M3?J-HNC"OF@=,;L9_6@#R?6-'TZXT_XHSRVZR26
M;F:V9F)\F06J,'7GY6W=QSVK;L8=.F^*=I<7L5J9[CPY!())%7<\IE(W ]VQ
M@9Z]*[LZ+I1\[.F69\\YES O[S_>XY_&GC2]/#P.+&U#6ZE(3Y*YC4]0O' /
MH* /'Y+6S;X9QF>&%XH/%1 :4!@B?;L'D]!MX/M75W#B+XF-_9*PED\+2&V2
M(#;D3C: !QC.*[-='TM+26T73;,6TIS)"(%V.?=<8-/73+!+M;I;&V%RJA%F
M$2[PH&, XSC% 'F7A-='U>#PUK$&MPC685VRV\"*MQ/(4Q+'/R689!8DCMFL
M>6YTW4_A9IFKWS6YUP:Q ;R67 F2;[4 ZMGD +T7H% [ 5['!I.FVM]->V^G
MVL-W-_K9XX5623_>8#)_&HGT#1I;J6YDTFP>XF(,DK6R%G(((R<9." ?PH 7
M6HH;SP_?QR1QS126S_*RAE8;3CCO7EV@3V<>E_#6RV6W]DW<#"^"!=DEUY"^
M4LN."2=V >I ]!7L..,=JI?V/IGV!K#^SK3[&QW-;^0OEDYSDKC'6@#F?",$
MECXP\6V-J-NC12V[6\2_<BF:/=*J>@^XQ X!;WJCXDT;3M7^*6DV>H0":"XT
MBZ$L3,0) 'BP" >V2?J,]J[RVM;>S@6"U@B@A7[L<2!5'T J-].L9;Q+R2SM
MWNDX6=HE+K]&QD4 >5S1:1JUWXETC6]7M]+N[.\"VYD11<0P*J&%H'8Y'3^'
MN3_>YN1S:)J^I>*]*\77:0W<4D?V>2X=8I8[;RD*/$3T._>3M_B/TKT6?2=-
MNKV&]N-/M9KN#_53R0JSQ_[K$9'X4MQI6G7=Y#>7-A:S74'^IFDA5GC_ -UB
M,C\* /-]2DTW5O%&OZ+XAU&WLHS9P&Q.H(N_R6C^9XV<C:XDW9(YR!Z<7HK6
M&/Q]X1C,\MV'T2YC::Y'SSJ/* 9QZD$D_4UW-[I.FZC)#)?:?:W3PG=$T\*N
M8SZJ2./PI[Z?92WB7DEG;O=(,),T2EU^C8R* /.]%TY+/6=2\!/:*;07JZG$
MQCRILV._;[D2KY?/\)]JHW7]EZ[?>)].U[6+?3;^UO\ ,+.BK<10@*86@8G(
M&!T4=2?[W/K'E1B8S>6GFE=I?'S8ZXSZ<U6GTG3;J^AOKC3[66[A_P!5/)"K
M21_[K$9'X4 )::C9S7#V"7L4M];QHT\.]?-0,."RCIFN3\<6MM>^+/!=M=J&
MMY;VX5U+%0V;=_E..QZ8[].]=1%HUK'KTVL"*(74D7D[TC"L5X)W-U8_*O7H
M  .^;-Y8V>HP>1>VL%S#D'RYHPZY]<&@#R&^4^%AXF@TTO!X7AU6P60*"\=N
MK8-R%']S)CW*..6'K6W)I.A#2O%5S8ZE:7\-SIK2RVUM'']FB=4;9( ,A7/Z
M[<]J]$2SM8K3[)';0I;;2ODJ@"8/4;>F*@@T72K:Q:Q@TRRBLW.6MT@58V/J
M5 Q0!YQ:"WLK#X:VC6\$6BW\(-X%0+'+<?9E\H28X;)W$9ZE1Z"LWQ;9FTT;
MXC65N-FCP):RV\:G"07# &54]."K$=,M[UZV=)TYK V)T^U-FW6W,*^6?^ X
MQ0=)TUK(61T^T-H#D0&%?+!]=N,4 <!X@M=)\.>)=%M&^S6&D:F;B2>6Y7S(
M9;O;&$,FXXR5#X)ZGGKS73^"M/LM,T>XMM.U)K^S%W(T3C'EQ9P3'%CC8I)
MZX.1VK9N-+T^[L?L-S8VTUF !]GDB5H^.GRD8J>""&U@2"WB2*&,;4CC4*JC
MT '2@#Q_Q_>6$MKXRN+:6)+VREME::ZD!E210C*MN."BX.=V3D[^,<UORZ3I
M&N?%;4H;J"&\M)M"@D:-FW1N3-(-Q&<'@#'I@5W$VCZ9<SS3SZ=:2S31^5+(
M\"LTB?W6)'(]C2_V1IGG--_9UIYK)Y9?R%W%<8VYQTQVH \KL+:1_A7X2\7Q
MQ&ZU#0HUG?(W-+; E9$]R$^8>A6O0?"\45Q!=:Z(@LFK2^>IV8/D@!8L]^5
M;!Z%S3-3T34)!%IND-IMAHLR.EZBP$2X;&?*VD*"1D9(XSGFNA1%C1410JJ,
M!0, "@#A#<65_P#$_6=,U]8'AAT^!]/AN0-C(V_SG4'C.=H)ZX'UKC/#FIVM
MOX9\#6EY>6T.CS"]C>2X420_:!)F-9,G'W=^,]_PKV2\TK3M1DADOK"UN7@;
M=$T\*N8SZJ2.#]*:^C:7)I_]GOIMFUE_S[- IC_[YQB@#S.06&AR>'M,35/M
MGAF[UJ?[1(V!;HQC+1P*1QY7F'IDC*D=JSM>MM.B@^*MM8QVX"6UM,D46,(P
MB)9E Z8.2<=Z]?DTO3Y=._LZ2QM7L=H7[,T*F/ Z#;C&*2WTG3;1)$MM/M(5
MD0(ZQPJH90, ' Y&.,4 <#J6HPGXA6$^E3V\MXWAZZ\ORV!\R3,1C!]3Z#TI
M?"'_  BNMZ7X9U 7*2:R(#'/&D@\Z>1H\3"=>K#().[C('J,]W:Z-I=B8C9Z
M;9VYA!6/R8%38#R0,#C/>GV^E:=:7DUY;6%K#<S_ .NFCA57D_WF R?QH \:
M%MID?P"U/R8[:.ZCN)#+Y8"N,7CA=V.>F0,]J[<^3JGQ0U;2M<@BGMETV%]/
MAG4,C*683, >-V=@)ZX KK'T;2Y(I8GTVS:.:3S94,"D._\ >88Y/N:6ZTC3
M;V*&*[T^TGCA_P!4LL*L$XQ\H(XX]* /)+&VDN[3P3%J#R3PC7+NWMI7D;=+
M:A)@F3G)! 'U&/6KUMIH7_A*=$TFYM-/2'7H#96\Z9MF<PQR&)E'1&(/ []*
M]/FTVPN6A:>RMI6A_P!47B5C'_NY''X5$VAZ0XE#Z58L)6W29MT.\^IXY- &
M'X$N_/LM3@ETA-*O;:^:.[MXG#P^9L0[HR /E(*G'4$FL[5].TZ?XP:(TUE:
MR2/IET[%XE)9E>(*3D<D#.#VKM[:UM[.$0VL$4$0)(2) JC/7@5%)IEA+>+>
M26-L]TOW9FB4N/HV,T >5/LU/X;>)M1O1L\365[<GS@,3P3I(?(1#U V^6H
MX(/?)K3TK0K+6/B-K*ZS:I+.EAIUR\9<[5G!D)8 'J"/U/J:] ?2=.DOQ?OI
M]JUX,8N&A4R#'3YL9IZ:=8Q7CWD=G;I=/PTZQ*';ZMC)H Y3XLP13_#'6S+$
MDGEQ*Z[E!VD,.1Z'&>:R?$3^'YM:?3K86/[K199%$[)]DCC:0@F.,8S(64@D
M$8'KTKT>:&*XA>&:-)(G4JZ.H*L#U!!ZBJW]D::7MG_LZTW6J[;=O)7,0]%X
M^4?2@#RX6LFL_#[P?J6CR)<>+;.TBFM6R&+A(QYBRD_PX('/1F7IFN]\$W&D
M77A.RFT5/+MF4[T8 2++_&)/]O=G/^%:EOI6G6C1M;:?:PM&AC0QPJI5"<[1
M@<#/:GVFGV6GJZV5G;VRN=S"&()N/J<#F@#A/%5M#HGC2#4?L"7-OKUH^F30
ME.'N1\\.3VW ,I/L#VJ'P+9-*(/#FH6Z/)X5GD1Y3%M$K-_J''UC9B>^=IKT
M=XHY"ADC5BC;D+#.TXQD>AP3^="PQ(TC+&@:0Y<A1ECC'/KP /PH \8O[6T/
MPR\3B2*)X[;Q2^PN PC O(U.">GRDCZ&NGN-,TC4_BG:V36UM/I__"/28@4
MQ,!<*,%1P1G/'3(]17;)H^F1VTULFG6BP3_ZZ)8%"R?[PQ@_C2_V1I@F68:=
M:>:J>6'\A=P3&-N<=,<8H \DT:..]\/?#JVN&:2(:M>0X+GE$%PJKG.<;0!C
MTXIUU,=!TOQ/9V*_9]'M_$MLES'#\JP6KK$90 /NJ23D#C#&O54T'1X_+V:3
M8KY;;DQ;H-I]1QP:EBTO3X#.8K&VC\\$3;(5'F?[W'/XT <G%:+IWQ3M(]&C
MCAL;G2I)+^& !8LJZB)\#C<<L,]P#Z5Q^@WZ0>$?AS:7S*NBW=S<)=LY_=LX
M\PPH_;!?G!X)45ZY:Z5IUC;O;VEA:V\$G#QQ0JBMQCD 8-,.C:4=/?3SIMF;
M)SEK?R%\MC[KC% 'E&J6^F0P?%BVLQ D:6L4J1PL %86Y)( Z?-^M;EQIMCJ
M'CSPK#=PK-%-H<_FQN25D \G 9>A')X/%=TNAZ0D,D*:58K%(%#H+= K!1A0
M1CG  QZ4X:/IBRQRC3K021+LC80+E%] <<"@#RJVD%IX!LXA<Q)96?BB2'[+
M+*%6>!;B3$(+';@## ,0,)BNO\&:7;QZYX@U>W-LMO>3I]FMX9D?R5"+O)V$
MJ-S@M@'WZDU;U_PN]S;VJ:-;Z3%%%.9I[*YM1Y%U\I W;>A&<@X/...!4GA[
MPQ'I=\^H/I^DV%R\1A,6EP>6A!(.6.!O/ QP,9/7- &=K$PG^*.DZ9JD:2:7
M-IDSVT<J@QR70=<Y!X+"/./0%JXR_M&71;FT=G_LRU\7V\.GL'(\N(R)O1#G
M[JL6 ],$=J]@O+"SU&$0WUI!=1!@P2>,.H(Z'!'6HY=)TV>VBMYM/M9((?\
M5Q/"I5/H","@!-*TBPT2R^QZ;:I;6V]I!&F<!F.3U]S7ES^7JGP[\6:A?#9X
MDL;RZ(F'$\$R,3 J'J!C8 !P03UR:]=50JA5   P .U5'TG3I;];Z33[5[Q<
M8N&A4R#'3YL9H X3P_!;1_$_4Y=1M[.+4Y-*L9"2BAC,?-$A7OGL2.PKFM L
M;2T\(?#?5X(E34)-4CMVN0?G:)A,&3/]W@?+TKV.;3[*XN/M$UG;R3^68O,>
M)2VP]5R1G!]*A&AZ0(HXAI5CY<3;XT^SIA&]0,<&@#S"+^S=?758M7UJ+3]<
MLM7E(VQJ+Q-LI,(B).2I3:H &#DCJ:VO#6@Z5>^._%<]Q;+++8ZI#+;%G/[I
MS;H2P&>Y)SZ_A7</I.FR:BFHR:?:O?(,)<M"ID4>@;&13[?3K&TGDGMK.WAF
ME_UDD<2JS_4@<T <A\3XHI-(T5I79%&MV0+K(4*@R@'D'CCOVKF]8L=-\)Z_
MXH6T%U:Z#)H(FOH;"3:4N&D*(5)X5F7=S[9-=QXST&\\0V%A;6JVI6"_@NY1
M<L0K+&X;;@*<YZ<_K6S!IEC!:26T5A:Q02@^;#'$H1LC!R,8/''- 'G>BP:=
M-\0]1TB7^S/L=[H4/F6=FP\MF$CC'^VP7^+ .,<#%/\ "EJ\\T'@Z_M@X\-7
M#222M'Q-'C_1F^K!RQQSF(YZUW$^DQVME(VBV6G6U_' T5J[P )'W"G;@[<\
MD"DT33KNT@GGU.6"?4;M@]P\"%8QA0H1 23M '<\DD\9Q0!Y+>:78)\.O$FH
MK"HO+'Q%-]DN-QWV^+M%^1NJ\'''6NBU&U.@>.=:C\/6X@N9O"\URL40_P!=
M<+(0CL/XGYQD\G-=[_86D>0\']E6/DNV]H_LZ;6;U(QR?>IDTS3X[I;I+&V6
MX5=BRK$H<+C& <9QB@#SOPO;^']8NO#^K6.M0/=-;/'):VJ*LDZLGSK<<ECM
M(SEOXCUYYP-'T^SMO!'@C5X8PM__ &^D N=Q+^6UQ*K(#_=(ZKT[]:]@@T;2
M[6:XFM]-LX9;G/GO' JM+G^\0/F_&F?V%I'DI#_95CY2-O1/LZ;5;U QP?>@
M#SFQL-,QX_M$N+/2[N74C%'<>6NZ-7CAZC@["QY[<FNB\$SSIK&LZ=J.C6NG
M:K;I T[V+9MKA6WA'08!4\,"#SP*ZF32M.E>=Y+"U=[A0DS-"I,BCH&XY ]Z
MAETJ.'3I;/2XX-/$W#O!&%* C!90!C=C@9Z=><8(!S?PG\S_ (5Y9!L^6)[D
M0Y_YY^>^W\,=/;%=K5>PL;;3-/M["SB$5M;QK%%&O15 P!5B@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "JU[?VVGQ))<R%0[B-%5"[.Q[*J@DG )X'0$]JLUS7C6QMM1TVR@N4U)
M?]+5H[K3@QEM'".5E 4$X_A/!'S\T 9OBGQ*8HO#U_IVI26]I)K4=G=J\6P,
MF'WJP==RX*=L=ZW;?Q;H=UI][?)?A;>Q?9<F6-XVB;C *L W.1CCG/&:X>>+
M7YM*\/IJEO<WLUKXD27[3%8LC2VR!@)I$4?(<GT&< T[5!J=OJ?CNZM=#N+P
M7$E@84ELF=951561D5AAV3J!W*CK0!V=SKMMJ&EZQ'IMY+#?64!9PT!22%BI
M9"4D7H<<$C!P:Y>TUS5Y-,^'%RVHRDZIY:WJ[4Q,3;,^2<9!W#L0*ATZ*ZC\
M1>+KG^S]9>WO]+M_(GN;=MTK*LH(QC@Y9?D !&?N@5%:6M['HOPTB?3K\2:>
M\?VM?LDF8,6[1G=QQ\Q _7I0!TWQ&U"^TKP+J.H:=>26ES!Y;+(BJ>"ZJ0=P
M/8GI@UH:9XLT+6-2N-.L=026[@3S'B*LA*9QN7< &7_:7(]ZH_$;3[O5/ &K
M6=C;O<7,B(4B3EFPZL<>O -9&NZ3/XOURVO-,BN+1+;2[V W-Q \!:2= J(
MX#';@L3C X[T =3;>)M(N]1AL(KL_:+A&DMP\3HLZCJ8V8!7 '/RD\<]*DU;
MQ!I6AM;+J5XEN;E_+A# G>V"<<#T!KC?".R_?2(+_P *ZK;:MIB;99[W?Y,#
M!-K-$[,0V[H O8\]*U/',4TU[X6,5I<W"V^LQW$QAMWD$<8CD!8[0<8++0!J
M+XOT1],BU".ZDEMI(FF!BMI78(I(+,@4LH!!&2!TJLWC736\0Z;I=L)[E+ZT
M:[2X@@>2,H"H7!4'.=W)Z#'.,BL+7?M&D>/+F^O-(U;4=*U*RAA2331([021
ME\JZ(0=K!\Y/?\:6#3I-(\8>&;BVT*XMM/73;FU6&WCWBV9Y(W57(X7@')SC
M.0": .G/BS1%TQ]1:](M$N#:O(87^24-LVL-N5.X@<]ZBO?&OAW3]0FL;G4T
M2ZA>-)(Q&[%#(2%S@'@D=>@XSC(KSW4K?4HO"'B;0UT75);Q]>-VGEVK%'A:
MZ20,K]&X[#)&#D  FNNT=91\2_$-Y)97<<%Q96BQ3/;.%8IYA=0V,9&Y?KVZ
M4 :,7COPS/);I%JBM]HN#;1L(GV^;NV["VW"DD$#)&>V:N:GXFTC1VD%]=&)
M8BHED$3ND.[IYCJ"J9R/O$=17G#65]_PKJXM!I>H?:F\0_:1%]CDWF/[8)-^
M-O39S^G6K\D3V7B#7]-UGPYK&J6>JW/VFTEM5=H94:-%,4HW!4(*XRW&/I0!
MVNM:Y965O<0&]EBN1;F;=;PF9HEYPY 5@HR#RPQP?0U5\"7]WJ_@'1;^]G:6
M[N;17EE( +,1R<8Q^E<]8B]\.>+M?BO-*O)+74[>W-E+9V[SQJ8XO+,+$#Y,
M'D%L#!))%;?PX@N+7X>:':W=K/:W$%JL<D4Z%&4CV/- &-X8\>6%K;7%KXAU
MO=>?VM<VD<DL>!M64J@9D4(F0.,XS78VVNZ=>:K>:7!.S7MD%:XB\IP4#?=.
M2,'.#C'7%>=MI5Y<^"O$_A9]+NO[0U#4KHP^9;OY6V68LDOF8V8 ^;KGC&,X
M%;/BO2M2L-9T;4M%D'VRZC_L>Z9C@M&REEE]S&REOH6H [&RU*UU#3UOK5WD
MMV!*MY3 L!Z*1D]/3FN#UOQQ+J?P_NM;T>:[T][>_2',EN5#I]I$1R77'(R2
M <KT.*]!M+6&RLX+2W0)#!&L<:CLH& /R%>3S66HK\+=1T1M(U(WL>KE]@M7
M82*;WS=RX'S#9SD<=NO% 'H]AXGT;4I[V&VOE,EDH><2(T>Q#G#Y8#*\'YAD
M<=:?9>(M+O\ 43I\%PXN_*\X12PO$SQYQO7>!N7/<9%<-XKTG4M<\3Z]'IUM
M<K]K\-K;0S/ Z1O,)7?RRQ  )5@.?6M?PQ/;:SJ5K?/X8U6QU"UB999]2$@\
MDD8*1L['?D]QQ@<X.!0!>\5>(;JPU71= TSRQJ>L2NJ2R+N6"*-=TDF.Y X
M/&3[8JW/IVMVS6CV>LSW*BXC^TQW447SQ;ANVE$7!QSWX! &>:Q_&>D7Z>(_
M#WBO3;62\?27E2YM8L>9)!*NUB@/5EZX[UOVFNQZBT:V5I?$L1O-S:2VXC7N
M29%&3[#//H.: $N/%&C6LYBGO-@686[2^4YB64\!&DQL#9(&">IQUJ:WUW3K
MO5;S3(9G:]LU#3Q>2X* _=.2,'.#C'7'%>=)I>I#X;ZWX+NM/NI=5DFN(X)O
M(<Q3B64NDWFXV@#=DY.1MZ9QG<U_0]6M->T;4-'WRS7%L=(U"4=5B(W+/]48
M-_WWB@#I3XCTS['!=++,\<ZL\2QVTCR.J]6"!2V.1SC'(]1563QMX;BM["=M
M5A,=^CO:E%9O-"@EL #J-I&#SD8Z\5SOB.";0O%VG:DNDZE>Z(=/^P%-,WM)
M;.K[E.Q""5(X[XP*ADT];;6_!3V6@W5G907=U/)"D#OY"R1.JM(1D*Q9@2,\
M9YZ&@#JY/&&AQ:='J!O':U>!;GS([>1]D3='<*I*+P>6QT/H:LW>N:=#'$OV
MMF:YA,L/V6)IW*8'[P*JM\O(Y(QR/6N+U1)=+\;:S_:FAZOJ6EZO'"8)-/$D
MBJ5C\MXI%5@ #C()XY/-/L8KKPMXW%Q/H]V-*O-*M[6W^Q0/<+9O$6S"0@)
M.[[W3B@#:^'.JW>M>![+4+V[:[GEEN 9V !<+,ZJ<  = .@K#_M/7Y]?\;6T
M?B&2WBT5(9+7S+>$I\\)D/F?)DC([$'%:_PS@NK3P3;VUY97%I-'<7!,<\>Q
ML-,[ X],,*RM&T6UU+XA^,9M5T1YK2[>T-M)>63>7($BVO@LN.& Z]?>@#:\
M->,H]4\':1K&I0O;W5];F4V\$+RL=IPS*B@MMZ'/;<.>:MR>-O#<5O8SMJL)
MBOT9[4HK-YH4$M@ =1@C'7/'7BL#Q/'<:/XRL-6.DZC?:.]@;)TTL.9+9P^Y
M6V(02I!QQTP*K2Z>EMK7@I['0;JSLH+RZGDA6!W\A9(G56D(R%9F8$C/&>>A
MH ZR+Q=HD]O%<0W;R0RB,B1+>1E7S,; Q"_*3D<-@\CUJ74/$NDZ6\RW=T4^
MS@-.RQ.ZP@]#(R@A!CGYB..>E<=XDL=0B\0ZAJ7AX:E!JGFP)+:26S2V6I)M
M3DDKM0@$KN!&-G-2VD5WH]UXRT[4-/O+I=3N9+NSEAMVE2=)(E3RBP!"E2NW
MYB!@YZ4 =3>^*]#T^]2SN+]1<O ;A(HT:1GCR!E0H.[J.!R?2KNE:K8ZWIL.
MHZ=<+<6DP)2101G!((P>00000>1BN!T#1K[0O$OA2VNX+F8:?H$EK/<) [QK
M*6C(7<!CHK ?3WJ_X*NY]$\-I#<Z3JADN-9N(PBVC QK+,[+(P;&(\$$MVS0
M!W=%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !61;^
M'K>'7I]7>\O[B60YCAGN"\-N=NTF-.BD@=>>IQC)K7HH **** "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@ HHJMJ&H6FE:?/?W]
MPEO:P(7EE<X"@4 6:*R=#UB77+5;Y-/EMK&5=T#W#!9)%/1M@SM!'(R<^PK6
MH **** "BBB@ HHKCO'7CZ/P)%!<76EW%W;2AB9+=QF, J"6!QQEU Y[T =C
M16#K?BNQT;PD_B(*]U:^2)XDAQNE4C=QG_9RWT!I/!OB=/&/ARWUR&T>VMK@
ML(ED<,YVL5)..!RI[F@#?HJ&ZNH+&TFN[J9(;>%"\DCG"JH&22:YC7_'MGH5
MKH%W]DFN+;6IHH870A2AD *D@]L&@#K:*** "BN<\;>+8O!7A]M9N+.2ZMTD
M5'6)P&&XX!&>O-=!#()H(Y0" ZA@#[B@!]%%<=<>/E;Q/>Z)I>CW>HR:?+!%
M>/"P'E^;G# '[P7')R,9[T =C16)XI\5:7X0T@ZCJDCA"PCBBB7=),YZ*H[F
MJ-QXIU73](;5-0\,W,5N%#&.&X226,'O(O  ]=I;'X4 =31110 4444 %%%%
M !1110 445076+*35;G3(I?-O;:%9Y8DY*JV=H/N=IX_QH OT5C^&-;G\0Z)
M'J%SI-YI<CNRFVNUVN,'&<>AK8H ***Q_%.O#PQX=N]9>U:YAM5WRQHX5MN<
M<9X/7VH V**X";XIVMAX?TKQ!J>D7=OI&I,JI<HZ2>46!(WJ""!@'IGI7?*R
MNH92"K#(([B@!:*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
M21&8D=%QT[]<9J7Q?K\GAS3+>]V,+9KE8[JY$+2BVC*L3(57DC(4>V[/.,$
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
MO1="UZ\ET^W*V30M9W,T)C6X5V"LI3>2&4GKG!]*T-4U?Q'HLVCK?G2IEO\
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
M/!'=(76-R"5 8CG'TK6H XZT\!16#:%]CO5B32KF>Z6/R/E=YM^X !AM4!R
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
M=6=)8P#@D_-@D9Z\USIU._D^%VD^,K2^N9-;:>"211,Q2=I)Q&\!CSMV_,0
M!QM&.<UZ/'H&EQ:C!J$=HJ75O#Y$4BLPV1_W0,XQP#CUJ.#PSH]M=FYAL41S
M,;C8&;RQ*>L@CSM#?[0&: //M6MY[A_B2[:IJB_V9&L]FL=[(@A<6HDR,'IN
M_A/'M7I.BW$EWH6GW,S;I9K:.1SZL5!-5G\,:/(=1+6F?[2&+S]Z_P"_&,8;
MGGCCZ<=*OP6-O;:>EC"C);HGEHH=LJO0 '.1^= 'D'AF.73?!WP]U.VO;Q9[
MC44M)4^T-Y30OYN5\O.WJ <XSD=:V86U+Q/9:K?Q:ZFFWVG:K,C2%Y#]F2*4
M@(T88*5:,#.1SNSUKLT\(Z''96=FE@%MK*7SK:(2N%A?LRC/!Y/YGUI)O!WA
MVXUY=<ETBV;4@0WGE>21T)'0D<8)&1@4 <I;VD]SXQ\7RM?ZI(-)GMKBTMDO
M) F[R-Y4C/*L3]WIS2>'(+W6=/\ #?B2/Q"JK.J_:U621_M9=<-&5W[58-G&
MT?+@XP*[FTT73['4;O4+:#9=79!N)-[$R8&!G)P<#@>@XJEI_@[P[I.KRZK8
M:1;6][*26E1<<GJ0.BD]\ 9H \_&HWJ_#BVN3J5X+F+Q']G64W3[RGVW9L)S
MEALXP<\5<U&TEO=9^(,<FIZHL=E:03VJ17LB"*0PNV5P0<;AG;]WVZ5V$O@C
MPU/+<R2Z/;NUS,)Y0V2&DR&W8S@$D G'7'.:M'PSI!EOY/L>'OT$=T1(X\U0
M,!3ST X [#CI0!Q^C:Q<:_X@T+2M2N)?)?PW#J)5)#']HF<A6)*D9V@9QZMG
ML,86@WTNGVFFZ,ET8K6]\0:E#)-/*P\QD=RB,X(;+'GKDD8YR0?2+CPAH-S;
MV$$NG(5T\8M"'96A&,;58'(7&!C..*8_@GPU)I$^E-HMH;&>4S20[.#(3G=G
MJ#R>G3M0!Q>NV&IZ+HT=M_PD5S(Q\06@B$$KAK:*610868L=XYR V< CMBO0
M]*TZWT:U%C%<W,H+O(OVJX:63DY(W,22!FJ8\(: NE0:8NFQK902":.)68 2
M Y#G!R6SSD\TM]X<M+[Q!I6KO$HN-.#^7-N8N0RE2O7&.<DG)X^M &;\0DNK
M?P^FLV4UTLFDSI>2Q03.@GA5AYJ, 1D;,GGN*YB+69U\4:K:P75T]GXC@!T6
M5KF1@KJPCE* GY1\PE&/X03[#U"6))X7BE0/&ZE65AD$'@@U632=/C^P[+2)
M?L"[+7 _U*[=N%]/EXH X>?18+WXGWNGR7%ZD">'8%S%=.DC8FE )<'<3^//
M?-9NG:IJ-WX6^&M]-?W37%S?1PW#"9@)U\N7[XSACE%.37HK:%ISZI+J1@87
MLL7D/,LKAC'_ '>#TR2<>O-5H_"6AQ6UC;1V(6"PD\VUC61P(7]5YX/)_,^M
M '+64@\3VWB.>ZUFZTZ]TW5I(EEAF*_98HF!7Y,[2'4$DD'.X^@Q1U'3UOO$
M_P 0Y#=7D#06%K+&;:X>$AQ#(58E2"<$=#QZ@UVUQX0\/W>NKK<^DVSZBNT^
M>5Y)7[I(Z$CC!()&!4S>'-)>XOYVM3YNH($NV$KCSE P W/0 D#V)% #/#-S
M-J?@W1[JZD9IKK3X9)7!P2S1@DY'0Y)KS*U^VCP#X?UD:QJG]H?VX+;SC>.V
M8FO'C*E2=K?*>K G@<X %>N6>GVUAI\=A:QF*VB3RXT5S\B]  <Y ';TK-'A
M'0ETZ+3Q8 6<4WGQPB5]JR9W;@,]<\_7F@#C[BY7P[K7C*S.LWUIIT>DPW8F
MDF>Y>WD8RJ73>2<G:O&<9':I])CNCXZNM%F>\MK*YT*.8P_;G>0/YI3S-V?D
MD(Z[21P.3773>&=&N;B[GN+%9I+R'[/<&1V;S8_[I!.".3CTJH/"VE:.AO\
M1M%M6U.VMFBM2[%2W&0I<Y/7C)R0* .8\,W5Y>&U\)7MU=MJ6C7CM?S^>X>:
M%.8G+9R1)OC.#P0KCM6S\3Y9[;X>ZG<VUS<6T\0C9)()6C8?O%!&0>A!(Q6I
MH%C>))=:KJEM;V^I7VP210/Y@B1!A4WX&XY+'./XL=!FK^J:38ZU8/8ZC;BX
MM7(+Q,2%;!R,X////X4 <A?V;:E\5)=-FOM06QDT,3/;PW<D:E_.VY&T@KP!
M]TC..>]8?AO7KN]L/ VF:G?3M!?I>"69I2KW#PMMC1G!R<C)//S%1UYSZ+_8
M.F_VE_:/DO\ ;?(^S^?YS[_+_NYSTSS]>>M4YO!?ARXT1-&FTJ%]/CD\V.!B
MQ$;YSE3G*G)/0CJ?6@#E?$EBNFZ3H]FNIW%^L?BJSP9VW-"&F5A%NZD*&&,Y
M/-2S7$ZZQ\18#>W2PV]E!- /M+CR6,,C$H<_+D@'C'2NL?POHKZ=::?_ &?&
MMI:2"6")&90C@Y#\'[V><]<G-)?>%-#U*_-]>:=%-<M#Y#2,3\R<X##.#C)P
M3R.U '&Z!JD^L:OX8T74+F<V[>&8=0/[YE:ZF;:I+,#EMHR<9ZMD]!6/H]])
MI.G0:8ET8;6\\5WUK-<32MD@&0HK."&RS*O.<G\37HT_@_P_<6MC;/I<*QV'
M_'IY>8VAXP=K*00#WYY[TG_"&>&SI5UI?]C6GV*[D,L\.SAW)SN]0<],=.U
M$'AK3[G1;C4[>\UA;J%YDE@MV+$VH88V;G8D@D9 [?E6OK&GMJFCW=BES-;/
M-$R)/!(R/&V.&!4@\'!K$O\ P)H=QX:&@VVGP06?FB48+9C?&/,!SDN!P"3Z
M=<8KJ* /';;Q/<0KX9UNZGND@TMO[.\0*UU)Y:2L3$&9<X)5TW$GG$B]<C&]
MKB7EEI?ABZ^UWT-Q>:_;O-&;F3A)7+>4P)QM4;5QT^7W-=J^B:9):W5J]C"T
M%W+YUQ&5XD?@[C[_ "C\J74M'L-7%N+^#SA;RB:'YV79(.C#!'(['M0!P"6,
M$?BGXD2@S;UM(2 9W():V<G(S@^V>G;%5_#T<NF3?#66WO+P_P!I6!ANHGN&
M:-U6TWJ F=J[2HP0 >N<YKT"Y\-:-=WUQ>SV$;75Q#Y$TH)#.F",$@^A(SUP
M2.E-3PQH\9TXI9X_LT8L_P!Z_P"X&,87GCCCZ<=* /.VU74+WX3S>,8KRZCU
M^">2;:)FVJRSE/(,><;=N%VXZ\]>:US<W)UGX@PR7=U''!I]M/$GVE_W#-%(
MS%#GY>0.F.E=<OAG1UO9+M;%%DEF$\BAF$;RCI(8\[2_ .[&<@'--O\ PMHF
MIZB;^]TZ*:Z,7DM(21N3G (!P<9.">G:@#@M%@6_\3^ [R[FN9+B;PTTLDIN
M9 78" Y)#<Y))/KWS72?%/\ Y)WJ/_76V_\ 2B.ME?"N@HNG*NEVRC301: +
MCR@<9 _(=?05;U32;'6K%K+4;<7%LS!FB9B 2#D9P><$ _44 <W<M,?BU;VG
MVJY%M/H<[O")V"!A-&H8#. V">1S7%V'VW_A!?".L?VQJG]H3:PEK),;QVW1
M/<.C*5)*GCN03P.>*]3?0=.?4DU%H7-ZD)@6?SGWB,]5SGIW^O/6JR^$="33
MK;3UL MI;3>?!")7"QR9R& SP<Y/U)/>@#E[2.6QU_QKI$-]?_9(M/M[F$27
M<CO%(ZR[BKLQ89V*>M9%C NI7/PKN;R:YDFFT^4R2_:9%9C]F#9)##DD\GJ>
M^:]&;P[I37=Y=&V/GWD8BN)/-?,B#HIYZ#)_,^M1MX5T-[.QM'TV)X+!MUJC
M9(BXQ@9/3'&.F.U '!:MJ-P+B/4M/O[N=1XGAM7NGG9 %,BQO D8R&0#().,
MG) /6M'0M.@'BOQ^R2W,;B>+:R74@(W6R,3][KGH>W; KI9O!'AFXEN9)=&M
MG>YF%Q*2#S("#NZ\$D#.,9[YJV?#FC_;[F^%A$EU<Q"*:5,JS*!M X]N,]<<
M4 <!H.LWEWI_PZTR\NK@V^J64LMS*96#SR)&"J,^<\Y+'GG:.V15/Q#=:I86
M7C#38-1ODM=-OM/:RG%PV^,3NGF1%LY90#P#G 8>U>D'POHITFWTO[ @L[9P
M]N@9@86'0HV<J1[$4L_AG1[G36T^>R62U>432(SL3(X((9SG+'('))Z#TH P
M-*1]*^)^H:;'>7<EE-I$5XZ7-R\H67S70L-Q.W( R!@<=*[165U#*P92,@@Y
M!%9-UX;TNYFN;J2S$US/:-:2-+,_[R(@_NV.3\O)_$YZU-H.CPZ#HEMIEO\
MZJ $*!D 98G !)(49P!DX '- 'G<>HS_ &[PQJ5C?W=Q;WNN36[WDT[+]JC(
MF^7R>5"*5 4G!^7.!G-4M56[7PQX^U%=6U07.DZG(UB1>R8BVQQ,!C/S#DC#
M9&.@&3GT)? WAA2"-%M>+C[2H*DA9.>0.W4\#CGI4S^$]$DM;ZV>Q#07\GF7
M<9E?$S>K<\G@?D/2@#G-?U!O"?BRP\0W=S=MH]_;M:W$1F=HX)P-\;JF<#<%
M9.!UV^M=3X?LKBQT6!+N25[J3,TWF2M)M=SN*@L3\JYV@>@%9MWIVI:CJD>E
MS:?:IX?M9(9TN&N#)+,8\,J;"/EPX4Y+'A<=^.FH \F?4[[4/A;J7BQ;ZZ@U
MZTN+B4!9F"Q-',56 QYVE2@4$$<YSUYJ]):SZOXL\46UW?:G#"FE6MPMO%>R
M((I6$N2NT@C! X'![@\5VI\,Z.;Z6\^PH)9I1-*H9A')(,8=DSM9A@?,1G@>
ME/;P_ICWMW>FV/VF\C$5Q()7!D0=%.#T&3CTR: . T?6[_7!X2TR]O%'VW01
M=$RR.GVJ;Y >4()8+EL9_B)QP,=OX4L[O3]#6RO=6_M2:WE>/[20<XSPI))+
M%?NDY[<\YJ.[\%>'+_2+72KK2H9;*T.;>-BW[G_=.<J/8&MBRLK;3K.*SLX(
MX+:%=L<<8PJB@#S)]0N]5^'WB7Q&;^ZM=9TZYNVBV3,HMS QV1;,[2"JC((Y
MW$^E7-.M+G7_ !U?PW]]JELBZ;87GV6&\D18YF9RP !X'RX*]#W&0,=E)X9T
M>6^FO'L4\V=E>8!F"2LOW6= =K$8&"03P*GBT73X=7FU:.#;?3((Y)M[991T
M!&<8'8=J .>^(\EQ#H-C+;7=S:R_VI:1[X)2A*M,JD''!&#T.167%HZR^/\
M6M";4=5_LU]-@NS#_:$N1*SR*6#[MP&%' .,]NE=MJ>D6&LP)!J$'GQ1R+*J
MEF #@Y!X(Y!Y'I4?]@Z;_:,VH"!Q>31"&283/N9!T7.>@R?SH \\\-Z_?ZM;
M> =.U*ZG:'4+&XEGE\PJUS)$ %5F&">"6//.!GO577[O5++1O&FG0ZC?+;Z7
MJ%C]AN1<-YB"9HB\1;.6"A^ V>&'M7HP\*:&NEV^FK8(MI:R>;;HKL# WJC
MY0\GH1U-/N/#.CW6EOIL]DLEF\GFR1L[?O'SG<YSECD Y)/('I0!REY;G3_&
M%CX;CU"X^RWUO<7B_;;N5C--N0%%8,&PJ[F"YQ\Q..!CI?"=E=Z;HQL;W5O[
M4EMYG03D'<%SD(Q))8J#C).>.>:FUGPSHWB"RAL]6L([R&$AH_-)+(1W#9W
M_CS5ZQL;73;**SLH(X+:%=L<<8P%% 'F3ZC>:G\.?$'B8W]U;:U87-TZ;)F
MMS"YVQ%,[2"JJ"".=V>M:4MHM]\4?#]S=)<17$VBS32QK<2*$</#P &X'J.A
M[YKK7\,Z/)?2WC6*>;,ZR3 ,P25U^ZSH#M9A@<D$\#TJ:70].GU>+5I+<F_B
M3RTF\Q@54]5&#C![CO0!S/Q6MXY_ LIDW_)>6A7;(R];B,'H>>"?YU5O=)M[
MOXJVU@TUVMN/#T@;R[EU=A]H3@R [_U[>G%=MJ6FV>KZ?-8:A;I<6LP DB<<
M-@Y'Z@'\*J1>'-)AOH[V&T\NYC@^SI(DCJ5CZ[1@],\_7GKS0!YSH&N:A>:9
MX/TJ\OR4O1?HTUQ*X,[PR[(T9U().W<>O)4=:[WPG87>EV%W8W>K?VB8KM_+
M)W%H$8!EB+,26V@]2<X(I)O!7ARYT4:/-I,,FGK(94A8L0CDDEE.<J<D]".I
M]:U=.TVRTBPBL=/MH[>VB'R1QC &3DGW)/.>] '!20+9?$KQ/?VZ7$MQ;:-#
M<Q1?:),/)NF.W&[D9 PO0=A50WMY'X)\)>*+"_N9]3NKBT%R#,S)=><0LD93
M.T8+'&!\NWCO7H4>AZ=#K$NK1VY6_E4))-YC991T4C.,#L.@J&T\-:/87 FM
M;%(RLC2H@9O+C=LY9$SM4G)Y !Y/K0!QDW_(0^*O_7M%_P"D5+I%])<ZCX-T
M"X>2/3Y?#PN@$<IY\JK&H4D$$A5+-CW!/05V;>&M(:347-IEM27;>'S'_?C&
M,-SSQQ]..E$OAK2);*SM&LQY5B0;4K(RO!@8^1P=R\<<'IQ0!Y]<#6W\/^*H
M;:]OI6\.ZF)K%Q<N&FB54E>!V!RXVEEYR>1Z4Y/$CIXJN;RTFN9M,\16?E:2
M9+B1D^U+@$*N<(&,G;_GDQ%>F6EC:V%M]FMH5CBR6*CG<2<DDGDDDDDGDU!%
MHNFP0:?!%90K%IQ!M%"\0D*4^7_@+$?C0!RTL$NG?$3P[IL=]?26S:5=+(LM
MR[^8R&(!SD_>^8\]>:Y.)KR#P;#K8U;4WOK7Q$;>-GO)"IB-YY91ESA@5./F
MR??%>JSZ+I]SJD.IRP%KV%#'',)&!13U P> >_TJG_PB&A?V>;#[ /LAF^T&
M'S7V^9G=NZ]<\Y]>: .4U_\ M:[U3Q=:(U_)<"TA.C&R=P(9"AX)4X1O,Y);
M&5([5U6GZ*83I$]W?WC7MI;,CQ_:F9)68#>6!/SX/0GIFN4U+P=+?>(]0NM1
M\+66J?:)%\B]34&@9(@H55D &21@_,-Q.?8"NLTKPU9V2:;-<1B>^L(Y(X)W
M=G,2.<E S') &%!/.!0!MT444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 445Q7B[Q=J?AR/5;E(+-8+&!)H8I27DO!_RTVA6
MS&%X&XJ1DT =K138W$D2.. P!'XTZ@ HHKB;;Q/K]SK6M1&VTR+3]&NPEU(S
MR%VA\H2$I@8W#(ZX'\Z .VHKB]/\5ZQ>76CW*Z:9=,U%-\Q2UE1K,%=RLTC?
M+(.QP!ZC(JO=>,]5_P"$;L/$MI%9?V?>W<,,5O*C^9Y4DHC60N&QG!!V[>,]
M3CD [RJ\E_:0WT%E+<Q)=7"LT,+. T@7&X@=\9&:Y:;Q5J,4GC*(16I?08DF
MA8HV)083+AAN]L9!]\=J(/$MW<Z]X5A>QM-NK:;+=>;DEXV5(V*CT4[QZ]*
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
M7$V?B[7_ /B?Z9>:=8G6=)D@.^*4I;O#*>)?G.0% 8L,\[< \TC>,[R32_&
M\BQO'T2 3(^QXXKF-HC)@J=Q[$=2#P: .XBGBGMTGBD1X9%#HZG*LI&00?3%
M16.HV6IPO-87<%U$CF-GA<.H8=1D=Q7.V_B2YO;W2-(L4MHKVYTQ=1G>1"T<
M,?RJ J!@22Q('(P%/6L?P,=970]8^Q)8&\_X22Z%P)2XC">;^\*8YSC.,_C0
M!Z'1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 5Q.M^ [O5KCQ((];\BTUV!(Y8VM1(\3(FT;7W#Y>Y7'<
MX(S7;44 95G8:I;WUN\VJK-9QVGE/;BV"[YMV?,#9R!CC;S]36K110 5SNE>
M&9++4M?N+J[BNH-8E$CP" ILQ&(\9W'(*J.PYKHJ* .0\.>$=5T-(=/G\1R7
MNBVO%M:M;!9 @^ZCR _,J^@ S@9XXKDO$GAZZ\(^$;73I->2;1X=5M#9V\D
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
M7$5K>M:_9IG7Y9/+B*MWR.?7&: -W4=9M=,GM+:7S)+J[9EMX(ER\FU=S8[
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
M:SIE_P"#4UB'4+V6[L[YHXFB"R'=LFWG*[#GH"2.@]?2U0",(0N ,8 P/RH
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
MF_&[:,;"_?.,XY:-)U4/X\\O1-02+5M-C2T,TJR.[B%TVL=Y.[<P[X ZD=*
M.OTW6TM_#NC>?]HNKVXL(YO+B4R2. B[F/XL.2>20.IK3T?6+'7M+AU+3I_.
MM9@=K;2I!!P00>00000?2O/[C3=2TVZ\.ZO)X<EU>T32$T^\LE1#-;NN"'56
M(#<Y!P?0UTEOJ1T"WTFW3PRUG;:A<E'2T6,+9EF 7S IP68L,[<@<\G&2 7/
M&'B/_A%O#TVI_9I+A@Z1HJ+D!G8*"WMDC^507WCK1].O&LYX]0^UK;BY-NEC
M*S^7NVY "\\]<=,<TWXA:=>:KX)OK73[=KBYWPRK$I +A)D<@9P,X4U4MHK^
M?XG1ZK)I=U!9OHWV8R2!<))YV_:<$\[>XR,\9H TW\8Z0EV(3)*4-Z-/,XB/
MEBX/_+,GUR0,XQGC.:K7GQ T*R;45D-ZW]FN$O/+LI6\@$!MS?+PN#G/?MFN
M1U>Q\1:@7:XT*^DN;3Q#%<IY,D:P-;+,"I1=XW.5Y)89SG) P*NW>F:I/:_$
M91I=T'U:+;9+M'[T_9A%QSQ\P[XXYH [&^\2V%CYV?.N!!;"ZF^SQF3RXCNV
ML<=<[6P!D\&L+Q!K,DWC73/#N-0CM)[2>:9[7>CLP\L)M=<$ ;V)P>N,UC:Q
MH=Y=6UM<V5IJVG:]:Z7%':WEM@K,X#9MYE)*E0P'+<?-UK;FMM3;XA:#?SV,
MKQ0:9-!=7$2_NUF<QG YSCY3SCCB@"Y;^(M.T.TL[*]O[RZ19A8G4IXLH\V=
MNUG  SGY<XQD8)SFI;7QKH][JK:;;?;9)TNC:28LY0L<@7=\Y*_*".A/7!Q7
M)Z)I-WI\L_A_4O!D5^ZWDDMMJKQQ/ \;2%P\A)W!EW?= ).!R.M=%X.M;RTU
M;Q0]U9SP)=ZHUS;O(H DC,<:Y'/'*'@XH Z#4-4M=,6'SV8R7$GE01(NYY7P
M3A1] 23T !)P*R+CQSH=II5]J%S-/$EA*(;N)H'\R!SC 90. <C#?=.>M5?%
MFGZA_P )#X;U^RMWNH]+FF6YMH\;VCE3874'J5P#CJ03BN9\4>'-3U*S\8:G
M9Z?<-)JR6=O:VNT*\@A;+2,"?EZD#.#\ON* /0]*UBVUB.XDMH[E%@F,+>?
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
MU9"NW;MW$# )/(/M0!ZU17%ZEXSO=+U.WCN;.WCBGU6/3TMVDS.T;ML6XX.
MI;^$CIWSQ5BT\6OJ'B*[TNV:S6>TN_(FLIF*W'E<?OESPRG/0#ISG/% '65%
M<W,%G;O<74\<$*#+R2N%51ZDG@5QTOC>^E2.^TW29KZP-Z;9HXK>9I2@D,;2
MJP79@$$[?3N#P,_QIK-SKW@;QC]@@M6L;".XM':;.^1T3]XRXX7:3@9SDJ>G
M!H ]$1UD171@R, 593D$>HIU9VG2-#X;M)4B:5TLT98UQER$' SW-<]IGBZ^
MNO$%KH]S!9K<W>GO=;8I"WV65"H:&3KN(WCD8Z'CI0!V5%>?'XA7D7A_3=2N
MK2T@>753IE_$TC'[(X<H6SCY@, ]N&!K?O=<U.+^T'M+&&XB@NHK9',FT+G;
MYDCD\;4#<XY)4CCK0!T5%<!=?$&ZM_#GB>^AM+.[GT*54WQRLD4Z,BN''!(X
M;IG!Q]ZM1_$6L6U]9Z;=V-E%?:G<.MBJ3LZK"D8=WDX'*],#J2.0.: .DAO+
M6YEFB@N899(&"RHCAC&3V8#H?K4]>66&MR>&-7\=7][# A34;*.5XE;RHU>*
M-?-8#D  [B/PSWKLX-4UB]T2:ZTV/3+Z7SU%M+'<$0SPG;N?(W8/+C'/*]30
M!T%%%% !1110 5D:QX:T_6[BWN;@W,-W;!EAN;6X>&1%;&Y=RD9!P.#D<5KT
M4 9UIH=C:6SP[))PY!D>YE:9Y,=-S,22!V'0>E:-%% !1110 4444 %%%% !
M4<T$5PJK-&KJK!P&&1D=#CVZU)10 4444 %%%% !1110 4444 %%%% $<L$4
M^SS8U<(P=0PR PZ'\*DHHH **** "HW@BDECE>-6>+)0D9VDC!(]\<9]SZU)
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
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
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 %
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 %%%% !67J?B+2M',OVVY*>3&)9MD3R>4ASAGV@[%X/)P.#Z&M
M2O/WN+O0?&WB&._T+4-2T[6A#);26MMYZ?+$(WBD[*.,C=A<$Y- '>Q2QSPI
M+$ZR1NH9'4Y# \@@^E/K+M+\QWUMI+:;<0L+,3&6*+_1H\$+Y0?^\.PQT&:U
M* "LB^\3Z/ILS1W=X(]DB122>6YCB=L;5=P-J$Y'#$=1ZBM>O.=*FO=*O==\
M/:GX<O-0-YJ<UW:3BV\RUF21MZ^8Y^5"AX.?08SQ0!UUYXIT:PN9;>YO-C0R
M1Q3,(G9(G?&Q7<#:I.1U(ZCU%17_ (RT#3;NZM;K4 +BT0231)$\C*IS@X52
M3T.<=,<XK@O&,>J:C9^*[(:'J(F%U!);)96A$5S&IB)E9P/WCX!&W)P OR\$
MUT$/G'X@:[?OI]\EO-H\$:.UHY#.K2%E! () 9>!_2@#J'U[3%L[2Z6Y\V*\
M0/;>0C2M,N-V5506(QSTXID/B32+G3+?4;>\$]M<,5A,4;.[L,Y4(!NR,'(Q
MD8.>E>;: NK>&;;P?JUQHVIW%K!I#Z;>00VSM-:R%D8/Y>-Q!V8)'I6OKR7=
MM=:!K]OX=OAID+7*7-A8J4N(UFV%92B$$G<A) YP_/.: -#Q)XF^T:9H>H:#
MJC"&77+6SN B %E:4*\;AUW*1W'!JU!JMW#\1M8L;F_<Z=#I<-TD;*H$3,\@
M8@@9/"CKFL'5[%&T/3)]+\/W]JDWB*UOI(C!(\S*KJ9)I%Y*G@]>2 .YQ6S;
M^;%\4M5OGM+P6C:1!$LPMI"C.LDC,H..3AAQ0!:T[Q1HFG^'](DNO$/VQ+S*
M6][.FUK@\\D!0!T/8=*T+/Q3HM_IUY?PWZ"VLF9;IID:(PD#)W*X!'!!Z<UY
MWI5C?P>"OAY:RZ7J"SV&II)=1FSDS"JK*"S?+P,NOY^U6-:L6N(?B0+FPU#R
M+PVS6Q2%D,S)$BC86&&(<#COVSF@#OK?Q+I-SJ@TQ+IEOF02"WEA>-RI!.[#
M <<'GV(JW?:E::<(OM,I5IFV1(B,[R-@G"JH)/ )X'0$UQ?AW4K:_P#&J:AJ
M"ZG#JLUC]A@6YTF6TB=5)D;!;(+'!.,\!3C/)J]XE@O;3QMX=UU+>>YTZVCN
M+:Y6"-I'A,@7;($4$D97!P. : -:3Q?H$.DOJDNI1I:1S>1(S*P:.3.-C+C<
MK9(X(!YJWI>MZ=K5O/<:?<B:*"5H9&V,NUUP2/F SP1STYKS7Q'HM[/I/C._
MM["\DBUB^L6M;5;9S(XA,7F2%,97.UNH&0ON*]820/$L@#!2,@%2#^1Y'TH
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
M"[<C!XSV(KS_ $6S:)9/#.N>&=4O+R&^DEAN3YC64RM*9$E+[MJD;LD8SD<
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
M"M<73AG('08 "@?0"M"BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ K(LO#\%CXBU+6DNKEY]06-)HW*>6!&"%VX4$8W'OWK7HH ***
M* ,@>'K?_A(GUF6\OYI#@Q6TMP3;P,%V[D3H&()R?<^M:]%% !1110 4444
M%%%% !1110 4444 %%%% !45M;0VD7EPIM4DL>22Q/4DGDGW-2T4 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%0W<SV]I--'$9
M71"PC# ;B.V3TH FHK*\-:T/$?AK3]9$!MQ>0K,(B^[9GMG S^5:M !1110
M452UB_;2M&O=06 W!MH7F\H,%+!1DC)Z=*IZ=K%YJ=GH=Y!I@^RZC;"XN)#<
M#_1=T891C&7R3C(QC&: -FBBB@ HJJU]&[W<%L5GNK9 7A#8PQ!*J3VS_4&G
M6,MQ/86\UY;"UN7C5I8!()/+8CE=PX.#QF@"Q1110 4444 %%%% !15>_FN;
M?3[B:RM1=W21EHK<R"/S6 X7<>%SZTT7T:S06LI5+R:%I5@W9.%VAN?8LHS[
MT 6J*Q?#.OGQ%8W=PUH;5K:]FLVC,F_)C;:3G ZD4FF^(&U#Q1K6BM9F$Z8D
M#B8R!O-$H<CC'&-GKW[4 ;=%%8GB?Q WARQMKH69N5FNX;9@) FSS'"!NAS@
MGI0!MT5!>W#VEC/<)$9FBC+B,,%W8&<9/2LC1]?N];T;0M4M=+_<:E&)9\W
M!M5*%@>GS\X'&.N: -ZBBB@ HHKG+WQ+=#4+^STC23J4FG/"MV@N!$X\P;OD
M!&&(4AB"5Z\&@#HZ*** "BBB@ HHHH **** "BD.0#@9/856TV>[N=.@FO[(
M65TZYDMQ*)?+/IN  - %JBL31O$#:KK.MZ:]F;=M+FCB+&0-YF] X. .."/6
MMN@ HHHH **** "BBB@ HHHH **9--';P23S2+'%&I=W8X"J!DDFJ;WMR\NG
MM968N+2YR9IS*$\E-N5;:1ELG QQC.: +]%%% !1110 4444 %%-EE2&)Y97
M5(T4LS,<!0.I)K"N_$ZV^N>'["*U,T&LB0QW/F;0@6,R?=QDY 'IUH WZ***
M "BBB@ HHJ"WO+>[:=8)5D,$ABDV_P +@ D?J* )Z**KW][!ING7-]<MMM[:
M)II6QG"J"2?R% %BBN2;QC>6XM)+O1#';Z@(%L9EN@PDDE8 1N-H*$ [B0&&
M <$G@[ND7FH7D,_]I:9]@FBF:,*)A*DJC!#JV <'/< Y!XH T**** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ***
M* "BBB@ HHHH **** "BBB@ HHHH **** "N"66+7_&/B[3=39BNG00):0[R
MNQ'C+-*N/XMQQNZC:!QSGO:R]0\.:+JM[%>W^F6MQ<Q+L262,%@O]W/<>QXH
M Q/AI/$GPW\,QM*BO)9($4L 6P.<#OBNOK+MO#>B6?V#[-I5I#]@W&T\N(+Y
M)888KCH2.OK6I0 5Y+KEZ#))J>GW,SM%XG@MFO)IML@/F(CP1J/^60&1R>>3
M@]:]:K%G\(>'+F:ZFGT.PDDNW#SL\"DR,""">.N0#[XH XNYFA\1V_Q!&I.3
M/IWF0VT7F$>1"( R2+@\%F+'=W  Z#%+II=;[X7!)IA'-IDBR1B5O+<"U4C*
MYQD9/.,UVU[X5T'4KS[7>:19S7'E>3YCQ#)3^Z?4#MZ=JR++PY<MK^EW,MA8
M:=9:,;E+.&SD)$BR *I*[5"84'(YY- '&7]W)!\-_%;_ &N5);7Q'+%;OYS!
MHU%R@"J<Y VD\>AK8\4W-UI6NW^I7UK_ &CH8FMU>XM9BMSI; (<;?XHV)5C
MCG#G((Q77W'A'P[=W-W<7&BV,LMWC[0SP@^;@@C=Z\@?7'-3GP[H[7+7']G0
M"1BA?"X#E  FY1P=N!C(XP,4 <-IVGVD>M?$9H]\,JRKL>.9D8$VJL2"#G.<
MG-5+1)+VU^%BRWEX!=6C+.([EU\T?9"W.#USWZ\]:]&ET#2)[RYO)--M6N;J
M(0SS&,;Y$Z;6/4C''TIB>&]%C^Q;-,ME^PY%IA,>1GKL_N_A0!YVLE]9>#_%
MUGI]W*D=CKPAA1[@[_()A9H4=CD%M[ <]6Q74:!I,Z^,M3U2%;JVT=H(DMK9
MI71/.^;S&$6=H&-@Y')!(]3)XC\)I<:1-!HVFZ8QN+I+B]MKI2L=XJG)5F .
M&)"G=@],5!X8\(0Z7JBZE'H.GZ&PC9&BL;AI?.SC[_RJN!C@8)SW'0@#M;NV
MN/B-HNAWF1ID]C<3K&3A;B=2H"M_>"H6;'OGL*XW4FOXK>_TT7UZ+*Q\4V=O
M9S+<.&$<C1L\6<_,%+8&[..G:O5]0TJPU6.-+ZUCG$3B2,L.8V'\2GJI]Q4$
MWA[1[FRBLYM-MI+:*3S4B:,%5?.=V/[V><]<T 2:9H]II&GFQM1,8"SMB:9Y
M3\Q)(W,2<<^M>4ZDM_9Z?K'AVT^T3ZIHM^=4MV:9\RV6/-"L<Y?/,6#Z#TKV
M10%4*.@&!40M+<7<ET(4^T21K$\FWYF122%)] 6;\S0!Y]KES'K'P\\3^)[.
M:XB2YL':S>.5XR$C0X; (P2^[ZJ%S2PV=K+\4-!N)ES(?#SR%RY&662''?W/
M'O7<R:/ITVDC2I+*!M/$8B%L4'E[ ,!<=,>U1R:!I$LEE))IML[V(Q:LT8)A
M'^R>W0?D* /)Y+86WA#6=;AGN([ZT\4R^0Z3LJH#>JK#:#M((8@Y!SGV%;>H
M:9;ZGXO\?"X:<"+3;-T$4S1X81S$-\I&2,<9XKMSX5T$V<EF=)M#:RR^=)"8
MQL>3.=Q'0G/.:D_X1[2/.NIO[/@\V[01W#[?FE4<!6/<>QH X70=4N-;U?PG
MINL.TMI<^&4O0)"=MS<G8&W?WBJ\X_VB>PK,OI;P>%]2L)YI9[2P\5VUO92R
ML6;RA/$=FX\MM+%<GTQVKTQ_#FC265K9G3K<06AS;*J[?)/3Y".5XXXQ3Y]
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
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
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
M?BWQO9ZY9Q7.-)BF@FEDA>)9)"P"IA@-^W#MZ E?7CMJ* $VJ3G:,^N*Y)?
M^+34M+;4B^CZC=R74]N8<2GS&WO'Y@.-A/'W<X)&>]==10!Q.K_#UM3/B"*/
M6I[:SUM$\V!8$8HZH$!#'G;A1\OY$5;U7P=/K=A=Z;J.JBYL+ORS(DMJ#)&R
MA03&P("$[<_=.":ZNB@#D9_!EW%XBN]3T?Q#=:9#J!5KZU2%)%D8 +O0M]QB
M  3@U(_@Z2V\0W.JZ/JKV O8(X;V!H1*LNQ=J.I)^5PO&>0>XKJJ* ,?PMH7
M_",^&K'1A=O=+:1B-970*2/H/_KUSME\.IK.VT>V7Q#<M#I%XUQ:@V\>=K!P
M58_Q-\Y^;]*[JB@#$G\+V-QXL3Q!)N,PM3;-$?N/R=K$=R \B_1S68O@"RB\
M W'A.&[N(X)@<7'5Q\P*YSU"@*N/[JXKKJ* .0_X0R]?5;O4YM>DEN;O3183
M VJ!" 6(8 '(^^>,]>^.*=<>!H[KP7IGA^349%FTLPO97T485XGB&$?:203C
M@^N3TKK:* .0_P"$.U*36;C5YO$<GVZ:P2RWPVJHJ[79PP&2>K=,^O;@2R>&
M)[>76=6AU 6^KW]JD!N+*S "["Q#^66;<^6QDGH!TQFNJHH HZ7%>_V':1:G
M)OO?LZK<.F%R^WYCQP.<]*Y33OA[<:>N@(/$-PZZ)*YM1]FC&8V1E*MZMAOO
M?IGFNYHH XJ;P%+/X;U;1FU8!-2U!K]Y1;<HQD$A4#=TRHZ]L_6K,W@VY77-
M1U+3]9:S_M2%4U"#[.)$D=5VB1,GY&QQ_$#7644 <_X8\+CPY9VUNU])>?9K
M.*SB9XPNU$))QCUR/^^15 >!5BLM4TF#46CT/4IGEFM##ETWG,B1R;OE5N>"
MI(R<$=NOHH P;3PXUIXMN=<2[3RYK2.T^RB' 5$+%<-NZY8]NE;U%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
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
M#QEU^?:5W$=2#CG%2KI=_IOB'6;6]\&Q:W;:G=&ZM;O$++&750T<V_D*I'4
MY!X':@#JM<U^UBM+^UMVNI9XK0SRO9+N,",#M8GU."0!DX&0*C\"7%QJ'P]T
M*XNKB66XGL(VDF=B79BO))/>L*"RUCP_XE\1)_9$U]9:O%%);3V>P+$Z1",Q
MLK,-HX!'48XZUO\ @.SO-.\":+8W]I):W5M:)%)$[*2"HQ_"2* .7\'^.K33
MO#MI#K=UJ$LDE_<6YOIH9'B1OM#JBO+C ., >G'2NTLO$5E?ZKJ>FPI.+K3=
MIN%DCVXW E<$]00#@CBN%B\.:K=_#Z\\&SZ;/#<7%[+NN7VF%8GN3+Y@8'D[
M3PO7=U '-:_B_1+J7Q/I-UIDJQ2:DCZ7J"YP7MBID+CT9=K '_;H Z[3=0AU
M33+?4+=9%@N(Q)'YB[25/(..V1S658^,M)U"ZL883/LU!9&LIFB.RX$?WMN.
M>G/(&1TS6XRF*V*6Z(&5,1J>%&!P/I7F&F:?XBFUCPAJ5]H5\+JREN$U!GFB
M"(7B908T#X6,$]@#C'#&@#HW^)GAR-%F9[T6OVDVLMTUG((H) VW$C$?)SQS
MSZXR*L:CX^T73;O4;5TU":XTX(US'!92.45@3NZ?= &2W3D<UQFGVESKW@+Q
M-X>MK&9IKW6+V%)F4>4H-P<N6SQMY..I(&!6SI5RVF_$3Q?"EC=7@^R6"J(E
M#;B(Y %.3QGU/'!R10!<OM8^W>,_!5SIFHROINHQW3E(W(CF41;E)7U&>_3\
M*T-,UW1XE\07HU&]:*UO"EU]L#XA?8GR1J1G;RN !R6XSFN:T?PMJ>@W/@&T
M-K)/'I<5U]LFB(*1-*O &2"0&)' Z#-17GAS7;W3O%RVED\5W-K,.I6"SLH2
MX$0B(4D'C)C/7':@#KY/&FCVQU%+YYK*73X%N9X[B,AO*8X5AC.[)&,#G/!%
M4]=\0QWGAWQ+:VLEY8:II^GO<,I&R1 49D=2"002IZ'M@XJMJ6J>)]7\+ZA<
M:=X<FL+U855(;PQ-+(V\;M@R5PJ[L%NI(XP.<A=#U:YU?Q.T.C7L$&JZ$MO#
M+>7".WF@2C#G>Q!)=?4 >G2@#:\,^-=.N;?1-(N9+U+^ZLHVBGN8'5+EQ&"^
MR1AAR.3[^],\'ZNUMI.N2ZG>W%P(-=NK6$RL9'($@5$4=3V  JO;Z3?:Q:>#
M[6;3KBR_L22*XNI)PH.^.%D$:8)W99LY'&!USQ61)X=UR;PYJ31:3ONX/$LN
MK0V5R4"W<)<G;G) )5CUZ$"@#T#2O$%EJUY>V40EAO;%E%Q;3IM= PRI[@@C
MH03TK&O+FYA^*NEVPO)Q:3:5<R/;[_W>Y7C ;;ZX8\U;\+HLSSWR^%TT+S%5
M"LD42SRD9SGRR?E';)R>>!WIZI9ZDWQ'T[4;6RDDMX=,N(#.<;%E=D*@\YQ\
MAR0* +]AXQTK4;FRA@\_&H1R26,K1X2Y"?>VGZ<_-C(Y%0_\)UH_]DKJ>V[%
ML;S["28""DV[9M8=5^;C)XS7)Z7I_B&;6O!^I7VA7RW-FUQ'J#R31;$9XRH,
M:!\+&#Z '&.":OZGX'N]3U?Q%IA81:#J:+>JRM@K>%2AX] 527_> H [B/48
MI=4FT]8Y1-#$DKL5^4!B0.?7Y6X]OI4%]K=M97GV-8I[J[\HSF"W3<ZQYQN/
M( YR .IP< X-4_"%KJ4.@Q7&MJJZO=!9;L*<A6"A0!_P%1^.:S'L]0T;XB7N
MLBTGO--U*RBA9H &>"6(M@%<YVL&/(Z'KCK0!=E\=:#'9:9=K<330:FYCM6A
MMW?>X!)4X'#?*1M/.1C%:]AJ<%_I,>I!9K>!T+D749B= .NY6Y'3O7GL/AC5
M=-C\/$6$TK#Q!/JMU'$5(MHY!* N<\D;USMSSG&:[WQ#IKZSX:U32XY!%)>6
MDL"N>BED*@_K0!5M?%FF7>I6=B//BDOXFFLGEB*K<HH!8J?8$'!P<'-,3QAI
M+269+3):WTOD6MXT>(9I.<*&]\'!( ;L3Q63H,^O:KHD6BZGH,^ESPVK6US>
M2/&R,=A0&':Q)R<-R  !CDUD0Z#J^H^ M'\(WFG2V]W8SVT<UT"IB$4#@^8C
M9Y+*H &,@MR !F@#HKOXA:'9_P!HEQ?LNFRB*\9+.0B#@'<W'"X(Y[\XSBI9
MO%JQ^-8]!2RN9(C8&\:XCC+ @NJKMQR1RV3CKC%<S?:1JTVE_$6!-+N3)JS-
M]B'R_O<P+'GKQ\RGKCBM*VLM3M/&NDZI_95S):MH8LI2K)F"02*QW MTP#TS
MDT 7;?XC>'[FRDOE>\2RCBEE>Y>SD6-?+?8RDX^]GHO7D5I0>*-->74(;DR6
M4NGPK<7*72A=D3 D/D$@CY6Z'C'-<II-EXCTSX37=C9Z8\>M1S3M'!-Y9W*]
MPSY7)*D[&.,_Q#FLO4?"VLZS>>(H[73+VTCU/1X(X)[V=7;S8W=MLAWL03E1
MQD 'MTH [AO&.GI/<6S6]ZMW'9F^CMWAVO-"#C<H)]<#!P1GD"I_"FN-XC\-
M6.JO;/;M<PI(49<#YE!^7U'/6J&FZCK6OV$L=[X>FTJ46SQRM<NC;I",;8]K
M$E,\[CCM@'DBMX2FU;1_!GA[3[G0+P7$0AL9U\R/]T%7#2G#'*9'U.>GJ =E
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !65<>'--N]>AUJ>*22\A0)'F9_+&"2#Y>
M=I8$G!QFM6B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH S/[!L_^$C_
M +>W3?;OL_V;/F';Y6=VW;TZ\YZUIT44 %%%% !1110 4444 %%%% !658^'
M--T[5[O58(I#>71)D>29W"YQD*&)"@X&0,=!Z"M6B@ I&&5(R1D=1VI:* ,S
M1="L] MYX+$S>7-,]PXDD+_O'.6.3ZDYHL]!L['6[[5X6F^UWP1;@M(2K! 0
MGR]!@$]/6M.B@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBL'Q=K
M5_X>T&75+&PCOC"5WVYD*.X9@H"8!R>>E &]17-MXM@OO LWB?1?+NHH[9[@
M1RL4/R*2R-C.UA@CZUO><(+='NY88V. QW87/H,T 3451U#5['3);.*[G5)+
MR80P(2,NV">/8 $FK?G1<_O$XZ_,.* 'T4T2(2H#K\W3GK6.FM'3-+LY-?GL
MH[RYN1;*MJY*.[2%5"[L$X&"?3#>E &U17.:;XBGN?%FO:5=I;0VVG);/#*K
MG+B4.?F)P!]T<#\S702310[?-E1-QVKN8#)]!0 ^BJ#:S8+K,6D_:$-[+;M<
MB,$'$895R?J6&/7!]*MK/"\K1)+&TB?>0,"5^HH DHJ,SPAPIEC#%MH&X9)]
M/K5;5KXZ?IL\\9A,ZQLT232;0[ 9QGK^5 %VBN=T'6-3UK1O#FJ!+&.&_MA-
M>(S,'!:/<HB'?GKGM6\9X58*98PQ;8 6&2W7'UH DHJ.2>*$J)943><+N8#)
M]!4A( ))P!0 45R.M>-%@\-0:UHOV>\@DOX[1F=SC!G\DLN.O.2.1QS75I+'
M(6$<BL5.UMIS@^AH ?14<<\4Q<12HY0[6VL#M/H:R->UW^S+S2M/A,8N]3G:
M&)I1E(PL;.S, 03PN,9')ZT ;=%9NEW5\+*)=;%G!?L[*%@D)20 \,H;GD8.
M.<9ZU?DFBB_UDB)QGYF X]?U'YT /HJ-IXDE2)I461_NH6 +?0=Z'GBB=$DE
M1&<X0,P!8^WK0!)13)9HX(S)-(D:#JSL /S-5=1DOEMHGTXVF\S1AS<L0OEE
MANP1_%CIVS0!=HJ.2>&(,9)43: 3N8#&>E++-'!&9)9$C0=6=@ /QH ?12 A
M@"""#R"*"0 22 !U)H 6BF1313Q^9#*DB=-R,"/TK"U+Q&\?B*#P]I=NESJ;
MP&YE,CE8[>'.T,Q )))X"CKSD@<T =!16-!?:O%K<%A>V=NUO+!)(+R!R!O4
MKA"A'&0S'.3]VM59XGD>-)49T^\H8$K]1VH DHI@EC*EA(A ZG<.*1[B&/9Y
MDT:>8<)N8#<?;UH DHICS11'$DJ(?]I@.^/YTAGB6983*@E89"%AN(]<4 24
M5B^*]:DT#PUJ.HVXMY+FVMI+A(9I-H?8I8].3P*O6ES/=Z-;W2+&)YH$DP<[
M<E0<>N* +E%>;VOQ,OE\'Z=XKU'1K>/2+J?R93!=,\MN/,,88J4 89'8YY'6
MO1'GBCD2-Y45W^XK, 6^@[T 244QIHD;:TJ*V0,%@#D]/SP:19X7D:-98VD4
MX90P)'U% $E%1B>)IFA$J&51ED##<!]*&GA1L-+&#NV8+#[W7'U]J )**1F5
M!EF"CU)Q31+&2 )%R>@SUH ?15&_FO +8Z>UF1]I1;@W#D8B/WMF/X^F >*Q
MH_$.H2>)]?TD6MMMT^SAN+=M[9D+[_O'''W.P_&@#IZ*Q/"NLW'B#P?INL21
M11W%Y;+,8U)"!B.F>3BH?!_B*7Q#X?@OKU;>"ZEFGC\F-N,1RNG&>3PHH Z&
MBHWGBCD2-Y45W.$5F +?0=ZDH **YRX\1S1^.--T2)+:2TN[:>5I5<LZO&4^
M7 X'W_?\*WUGB:9H5E0RJ,L@8;@/<4 245'Y\1F,/FIYH&[9N&['KB@W$*L%
M,L88ML +#);T^M $E%,66-W=$D5F0X8 Y*_7TI%GB>5XDE1I$^\@8$K]1VH
MDHKG/%7B.;0O[,%JEM,]SJ-M:3)(YW(DKA=P4=^>_P"M:VJZM9:+8->7\RQ0
MAE09/+,QPJCU))H NT5')<0Q1B22:-$)P&9@ 3]:><[3MP3CC)H 6BN=\*>(
MIM<L;J2^2WM[B'4+BS6.-R0WE.5R,\D\9K>>>&.5(GEC61_NH6 +?0=Z )**
M:)$+[ Z[O3/-->XACB,KS1K&.KE@ /QH DHI 0RAE((/(([TQ9X7E:)98S(I
MPRAAD?44 245&D\,DCQI+&SI]]58$K]1VK);6_[5T6]NO#T]E-/#(\2/<N1"
M61L-DKDXX/(]* -JBHY)X82HEEC1F^Z&8#/KBL'5M>N5U^/0-+-JNH/927GF
M70+1@*RHJ$*0<L6ZYX Z'- '145E:%/K$]G(^N0V$%R).(K.5I B[5.&) ^;
M)/3C&*THIHITWPRI(F<;D8$?I0 ^BN<?Q'-_PG=IH<26TEG/937!F1RSAXV1
M=I'0??\ ?\*Z"2:*$*99$3<=J[F R?2@!]%,$L9Z2*>,\'MZT&6,1F0NH0#)
M;/ 'UH ?17.^*/$-QHUKI5Q91V]Q%>:C;VDC.Y^5)'"[EQU//K^=;\<L<N[R
MY%?:2IVG.#Z?6@!]%,DFBA!,LJ( ,DLP&!ZT/+''$97D58P,EV. !]: 'T4S
MS8RBN)$V/C:VX8.>F*8;NV548W$063[A+C#?3UH FHJ.6>*';YLJ1[CM7<P&
M3Z"G,Z(0&95+=,G&>] #J*R==U*ZLO#USJ&DQVMU/&H:-9I_+C89&<L,]L_C
M5RWO ]C:W%THM9)D4F*5@"K$9V^Y'2@"U12 A@"""#R"*8L\;O)'')&\B?>0
M,,@^_I0!)17.^%?$4VMVEXU\EO;W$&HW%DL<;DAO*?;D9Y)XS3K77;N7QW?Z
M#+!"MO!8Q7<<BL2[;W9<'L/N?_7H Z"BJ.FS7G]E)+JS6:W(W>:UJY,0PQQ@
MMSTQG/?-7$EC>,2(ZM&1D,#D$?6@!U%5+C4[&UTZ;4)KN%;.!"\DV\%5 Z\U
M7^W75V-+N=/-K]BN#NG\]B)-A0E0@'&[.,@]LT :=%1M/$DJQ-*BR/\ =0L
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
M)M">>F/._P 17:3VEM=;?M%O%-M^[YB!L?3---A9M(\AM("[C#L8QEA[G'-
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
MI^Y5GC 665,A59P68<C!/4FNXU[P[=79L7TB2P@6V=W>SN;7?!.67;E@I!#
M9P>>IXI^C^&8K26>YO;;3//N(A"\=G:"*(H#G# DESGN?P YR >=W,MI<#XH
M6OVBPN3)I,<\:6R@1LX@E!9%R<D$*"P[@=*U6_LIM1^&L]C]D_USIO@V\YM6
MR,CWQGWKTM+6WC),<$2$H$)5 /E'0?0>E1_V=98C'V.WQ$,1_NE^3Z<<4 >6
MN8-0\$>.5U8*-=MKRZ8$\3(XYM3&>N,; F.O;J:NV&DVFH?$@0Z[9VMQ=/X8
MMI+R.5%96F\U@S,O0GW[5Z,]C:2W274EK ]S&,),T8+J/8]10]A9R2M*]I T
MC##.8P21C')^E '+_"N4S?#+0F,A?; 4!)SPK, /P  KL*C@MX+9-D$,<29S
MMC4*,_A4E !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %8/BSQ(/#&FV]S]EEN'GNH;90B$A=[A<G\^
M!W.!6]7+>/["]O\ P["+"U>ZFM[^UN3#&1N9(YE9MN2!G />@#3N?$5G;2>2
M(KJ:X$ N'@A@+21QG(#,O;)!P.IP< X-6K'5;+4]*BU.QG%Q9RQ^9')$I;</
M8 9S[8SGBN5M(M2T?QUJNKS:==2V&LVMN1Y2B1[:6(,OELH/0ALY&0#GGO6C
MX)T6?PYX42VNU*S-+-<O"GS>7YDC.$&.N 0..^<4 )IWCW0=4B\^VENOLWDO
M-]H>TD6/"OL*[B/O9Q\O7D<4W4?'6G:?::LS6]W]MTZT-X]F\)61XN<.N>"N
M003V[US5EX<UFY^#7]BK9&#5H)C.EM<X"R%;GSE4G.,, !U[\U9>QE\0>&];
M%KX,&C7T^E3V@:XCB2621EX1&4GY,]2V,G''7 !TNG>*K2Y_L:WN4G@O=4A+
MPHT#*K%4#/@GI@=,]:CG\<Z%:Z;=7\\\\<%K>_89R;=_W<V5&T\<#YE^8\<]
M:Y^XAU57\$:Q_8=\RZ:)(;FV789DWP; V-V,;AZ].:R;O2-=E\,>)+8Z'=B>
M\\11WT" HV^(20L3G=V$;=>#Q@F@#LAX^T7[5#:LFHQW,[2K%#)I\RO(8\;M
MH*\]1TYYK6T37++Q!I_VVQ:0QB1X726,H\<BG#*RGD$$5AZU;7=QX_\ "U_#
M97#VEK#=B>4)Q&9%0(".O53VX[T[P-9W=G'KPO+2:W-QK-S=0^8,;XW8%6'Y
M=.M &'8ZJI\=>+--U7Q--:6EA);?9(Y+I(\!X0[\L,GD_A6_'XDT[0=(THW^
MI75X-1D/V.<P,[2A]SHI*+C=LP .IQP#63HT=[8>.O%^H7.BWSV>HR6IMI%B
M5MXCAV-P3D<^M)J\&H7J^%FM]#N8+;3]7600!06AMDB>,,V"1U.0 2<8[YH
MTW^(FA(41DU,3M:F[%O_ &?-YOEAMI.W;DX.>G0 U?O?%VE6"W,LSSM;VC!+
MNXCA9H[=B <.1TP""<9VYYQ6>]K=_P#"UXM0%G.;$:.UJ;@*-@D,JN!Z]!UQ
MBL:#2]5TS2O%^@2Z;/=MJ=Q=3V,Z &.59U^Z[9^0J2<Y[=,]* .FO/&>D6>I
M2Z=_I=Q>1VXNO)MK620O&3@,N!AAP>1QQUJQ#XFTRZTRQO[.1[J._3S+5(4)
M>08R3CMCOG&#@=2*YG0M&O-"\8VWF6]Q-9V?ARWT[[4$R))8W8D =>A';':N
M=TW0M:T?0?"5]/X<EU$:;!<V=_II"&5%D=662,$[6(V#OT/UP >B6WB[1[O3
M8KV"=W$MPUJD/EL)3.N=T>P\AA@DYZ 9Z<U%-XUT:VTS4;Z>2>)--<)>Q-"W
MF6Y/(+*.<$$$$9![&N<N]'O8KOP]XBTWP\ME%97TTT^F0HBRM'-'Y9D8*=ID
M'7 ).#CK5?Q!X6U'7;7QKJ%I;21OJEA#;6D$GR/,8P26(/W<D[1G!XYQF@#N
M)_$.G6VKMID\S17"VCWI+H0GDJ0&;=TX)''6J[:U#J5I<6]O]LMI7M#<12-%
MLRAZ,I.1GVZCN!Q7+W']JZEXN@U<>&;W['_85S:M%<F-2TC,C!&&[H=I'K[8
MYIWA[2+_ $:[O(=/_M0^'FT]MEC?C=);7&1B.)CR4VYR,E00,$]@"WX2\50P
M^$?"2:M/<RWVK6Z+'*R,_FR;<D,_0' )Y/:NL@U&"YU&ZL8Q)YMKM\TE"%&X
M9 #="<=NWXUPD/A^YD^"]C87:MI^J:7:)/%)+@?9[B$;E;/3&1@GT)KK?#%O
M=1:+'<ZA&(]0OC]JND'\#L!A/^ J%3_@- %/QO?ZK;:!):Z!C^VKI76USSMV
MJ79OR&T?[3+5C1_%%IJO@RV\2!7^SR6WGR)&A=D('SK@<DJ01QZ55CL'UOQ+
M>W=]!J%K':H+:S*S/"'0X:1P48?>;:,'_GF#WK,\%:=?>'=>U_1/L%T-#DN?
MM.GW,GS*"Z@RH<G.-V2">N3^(!NQ>+])GDT9(WG;^V4,EBWDMMD 7<<G&%.W
MG!P<5)/XHTZ!S&WGF8W?V*.,1'=++MW%4[$  DG.!@Y-<%+X-UVVT:[BM8\R
M>'KXW'A^,/CS4WB4JW_ 6,0^C>M='K%IJ^FV.@06MI->0BY9]3>SVB?+*Q+(
M6(V@R,<D$$ \$4 :$OCC0H-(&IS3S1VXN_L3Y@?,4P?84?CY<'N>/>I8?%FG
MW4<8ABOOM$SR)';-:O',?+.&;:X&%&1\QP.0.IQ7 G1-:C\,:I8#0KU9'\2K
M?1+O1R\/G)(3G<<X5>_4],\UT^K0ZGIOQ#LO$4.G7-_IT^FFPE2W ,EN_F>8
M'VDC(/0XZ8H B\#^(=^@:A=7]Y=W.=:NK:V$RL9G <[$"XR"%'3 Q@DXP:W8
M/%VCS65[<-.\)L9A;W,,L;"6.0XVKMZDMD;<9SGC-< -"U]-.?4!X>DGDL_$
MEWJ!T^=H\W-O+O4E?F(W /D9ZXXS6CJ^DWVH:-;:OHOA8:=+::I;7[6+)'%<
M7BQ;@P;:2N<-\H)S\ON!0!JZ5J]S=_%34;,RWR6T>DQ2_9;@;520RL"5 X.5
M"\C/<>HJ6]UF\U?Q^?"UE<O:6MG9B[OYXL>8Y8X2)20=HQ\Q(YZ $=:BTO\
MM"]^)<NL-HU]:V$VC16XEN BD.LLC$%=Q/0^GZ$&DU'2M0T/XA-XJL+*6_LK
MZT6TOX("/-C93E)5!(W#'! Y[C- &ZFFWFGZM!<1:I<-I:Q2">WN9 ^UN"KA
MV^;C!!!)'/:FV_BW2KBYL8=\T::AG[%-+$5CN,#.%8]R.0#C(Y&:BU-;KQ/H
M.I:=;6\]E%=V<L'GW*;&W.A487KP3DDX]LYR.<72]3US0?"FDW6FSV5WI-Y;
M3W<C@>6@@!Y1@<-O( &.@8YQB@#:F^(?A^"WNKAWO/L]G=&UNI?L<NV!QMR7
M^7Y1E@,FKUMXLTNZU6;34^U+<1P&Y4/:R*)H@<%H^/G )'3U&,UQ%]HVK7'@
M?QY81Z7=&ZU/49I;.,J!YJ.$"MUP/NGKBNCEM[R?XD:-J2V-R+./2YX))63
M1W:-E4]^BGVH DM/B1X;O9=.$5Q<B'47\JVN7M9%A>0D@)O(P&..E:%]XMTK
M3I/])DE6W%P+5[H1$PQRDX"LW;DXST!X)!KSSPW8S^)?A)X;T6&SG1Q<Q2O<
M.F$BCCG+EPW0D@;0!SEN0!DUHZ;I-W87>H:#J/@R/4Q-?37%IJ;QQ/ T<DAD
M!F+'<"I8\ $G QZT =/>^/\ 0K&34DD-Z[:8P%X([*5O)!7=N;Y>%QSGH1TS
M5^]\2Z?9"0_OK@16PNY?L\9DV0G.UR!U!VM@#)X/%<C>:9J4K?$@)IMT?[5@
M5++Y1^^(M1%QSQ\P[XXYJMJFAWES964]I::MIVNV>D0QVM[:C(ED ;-O,N2I
M4, <MQ\QYH [+4_%VE:5)=K.\SBRA2XO&BB+BWC;.UGQZ[2<#)P,XQ4#>+(_
M^$UC\/QVEPZ-8_:S<+$64Y=57&.WWLGZ>]<GXFL?$VJVWB'3KK2)YVGTE$LW
MLG5(7E\MO,\P[@S$.<*IR,8XZFM73[75;?QMI.IR:1="WET-;*0[DS!()0QW
M_-_=],^E &KI&OZ/%I5_?)J5]<0#49(6-VK%UF+@>3&A4-@,0JKC-6O^$MTI
M$U'[0T]O-IT0FNH)(&,B1D$APJ@[EX/*Y'!S7"CP_KC:5-=0:?.+BR\5R:PE
MJ^%-S 6;A23C=M8D D<BM;5])O-7UG5]>@LKE$/A^3388I$VR3R.Q;[IY '
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
MBD &"=I(.& /!J+P_K&JVVDVNG:MH5^NIVT:PN855X9BHQO63. #C.&P1TH
MO6VIR:38Z?IVI2R7VL?9MTBV\>YY=F TF!PH)(ZXY.!S4;^-]!33K"_^UR-;
MWUP+6%E@<XER1L88^1@0>&P>#69/::IIGQ!A\036CW-E=:8+*X6U!D-M(LA=
M3MZLI#$9 ZC) !K"E\-:G:6=K,MA.\EUXL&L2P)@FW@S_%SC. "0,\L>N* .
MH;Q_HJI?_N]1\^P(^T6PL9?-C4C<'*XR%QSD_P ZL7?C;0[1[!#//,^H6YN;
M18+:20SH #\F%Y.&' YYK&6SOD\4>-+HZ?<F"^L;>*U<)Q*R)(K ?BXZXK"T
M\7&CZK\-;>\LKE9[;2;J">)4W/&RQP@G ZC([9H [G3O&.C:KI2ZA:32.K7!
MM?(,3"83#K&4(R& !)'8#/3FH)?'F@V]A<W=Q-/"+6Y6TN(W@??#*Q 4. .
M<C#=#GK7'7_A;5XKB?Q+;:0+PMK;7S:3(5#26Y@\DG!X\PY+@'U]>*NZYIT^
MI^$+EM+\)OITMU>VDGV<0QI/((IE=GDVG PH( )SQ[XH ZNW\8Z/.^IH\D]L
MVFPBXN!=6[Q$1$$B0!@"5^4]/2GS>*=.M+>]GOA<6:6<4<LOGPD?*Y*IMQG<
M25(P.<X%<[JEC=7'C/6KUM$GO;"XT!+01LH43N'D9H^2,95P,G SWK+_ ++\
M2Z/I>KP: +^^TSR(#:6^I*K3POYG[Q(S)]X*G*[LC.,9YH ZZZ\96%MI^M3_
M &>[:YTB$37-H8L2!2I92.Q! /.>,'/2JD?B&SU&/PM->7&HV-W>N'AABC=(
MYW,1)5R1@I@D@$C. >U<_'HFJW&H>,A#H]]%#J^C1PVTEW,K,9 DJX<ER027
M''8=<=*LM:ZI<VO@,MH][$=.N$:Z5PI,:BW:,L<$_P 3=!SCG% '4W_BW2M.
M^U/,\QM[.01W=S'$6CMV.#AB/0$9QG;GG%,O?&.DV6J/IA^USWJVPNA#;VLD
MA>,G *X&&Y]...:Y>#2M6T[1?%WAZ739[I]3N+J:QN$ ,<JW /#MGY"I)SGM
MTSTJWHVC7FB^-;'?;W$UE9>'(M/-V$R'E1\XQUY STQVZT =?I.JV>N:5;:G
MI\OFVERF^-\$9'N#R#VQ5VN5^'-C>:9X&L+&_M9;6ZA:4/%(!D9D9ATR#P17
M54 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !111
M0 4444 %%%% !1110 5!>WUIIUJUU>W,5M;H0&EF<*HR0!DGU) _&IZYSQUJ
M\NA^%+C4([*VO!')$KQ7).W#2*N<8.2"0<<=* .CHKD-7\726GB6;0X9;*VO
M! DMK%>AE^W%LY6-\@ C &.22>PYKK7+!&* %\?*&. 3[GM0 ZBO/M.\<:U+
MX:?Q'?Z?81Z<AFA,<4KF5IA/Y48'RXVD\'OWQVJ74O$_B*WM]:CCLU"P:7)>
M6^HFQFBC21 <Q,LG4XY!!QZB@#O**X?2O$&JV<?@NSNS;W*ZQ 5DE"L'7;;^
M8#DDY)Q@U!J'CK5+'0?$5\EC:32Z1JBV(&]D$BMY6&QSS^]Z9 XZT =_17%7
M7B'Q38:_I.DW.GZ09-3EN1$\5Q(0B1QAEW94<]<XZX[9R&6?CFY_LJ5;ZUB&
MIIK#Z0!;J[QLZC?O"@%L;,G'7(QD9R #N*K#4+)M1;3UNX#>K'YK6XD!D"9
MW%>H&2.?>N1;QKJ.GV^HC4=+<R1W,%MI\_DR6\=Z\Q"J,/DKM;[W7@9&>E16
MB7R?&=1?-;2-_P (^VV2",ID?:$X()/0]\]^U ':WM]::;:27=]<Q6UM'C?+
M,X15R<#)/ Y(%3USGCO5Y="\(7FHQV5M>"(INAN2=A!=5SC!S@D'''UJM?Z_
MKA\:3>'=.M+#_D'"\CN+B1R ?,V890/;H#[Y[$ ZRF2RQP1/+-(D<:#<SNP
M4>I)Z5D>$==?Q+X5L-7D@$$MPA\R-6R%96*M@^F5-8D5]J]S\1=<TZ6XMVTZ
MWT^!TA\LY <R9YSC=E1DXZ #'<@'7VEW;WUK'=6D\<]O*-R2Q,&5AZ@C@BIJ
M\L\#:]JFD>%/ T$MM:'2]15;,%78S*^QW5O[N#L(QUZ'/:MN7QIJ4\:W^E:9
M)>V8O6MFMX[28R-&LAC:59,;.""=OH.H/  .XHJMJ-]#I>F7>H7!(@M87FDP
M,G:H)/Z"N8L?$NM7>J:;%_9I>RU"%V:9+29!9/MW*'9\"13TR-O/UH VM5\.
M:=K5[9W5\L[M:$[(UG=8WSCAT!PXX'!S6M7%Z)XHUK4M<N-#NK.UM]1L;AC>
M#:Q3[,0#')&<_,7)Z=L-GH S=:\8ZAHUXQGMK5(1J4-HMJ6W320R,J^?E3A!
MN8X5EYV]<F@#MJ*Y6Y\0:O?-K1\/6=M<G29Q;F&8D-=2A5=U5L@)@. "<Y.>
M !DU]+U'6;GXE:Q93SP+8VUE:R+;[#N3>9,\[L;LCD], 8]2 =E16)XJU\>&
M]&&H.H$7G1QR3,C.D"LV#(P7DJ/P_"J)\0:B='AO8&TRYAENQ&-0BE'V=+<K
MGSB"_//R[0W4]: .IHKSU_'^HCPW=:A%8VLTUIK2Z7(=SQK(I=%$BJ02,B0<
M$\>IJ^NO^)Y/$NH^'UM-)%W%:QWD$Y>3RQ&S,NUAC);*]1@8.?8@'9T5Q&G^
M/'U71] DAM_(O=6MI+AAY,EPL*QE5;Y4^9OF8 <CC)SQ@[OAC5=0U;3)9=4T
MZ2QNH;AX"&1E695/$B!@&"L"#@\CD=J -*]O[33K<SWMS#;PCC?*X4>O?Z&G
MVUU;WMM'<VL\<\$J[HY8F#*P]01P17%^(6U(_$_PO#!/;B%K:]=$>-CR%B!)
MPPR<$X],GK35\2S6?AC5-7T'3K%=&T>>:/[(J%&F2)CYKH0=J<[R!M.<=1G@
M [NBN(7Q9KFJ^(I-.T.RTYX/L%MJ$4UU,XWQ2L1@@+PV%.!R/4]JH7GCO7[;
M0=>UD:=IWD:+J,EM/%YKEI8T* [3@ -\V<GZ8[T >C56U"YMK/3Y[B[NUM+>
M-"7N'<*(QZY/ K!L]>U5/&PT+4[:S6.XL7O+=[=V+)L=59'SP3\X.1COQ4WC
MG59=#\%ZIJ45G;7GV>$NT%R?D9>^1@Y^G'UH O:!HMGX?T:#3-/:0V<(/E"1
M]Y4$YP#W&2?SK3KDKOQ!K;>+QX?T^TL!OTS[;'//(^ =X3!4#IST!]\CI6EX
M0UV3Q+X6LM6F@6":8.LD:ME5='9&P?3*G% &W2,P52S$!0,DGH*YB\\0:A:>
M+;C1I!9Q0OIS7EE/(&P[(P#JW/\ #D'CLV>U5_#?BR[\1:/H=U'';I<7KR_;
M("C?N%CR'')SD-M7G^^#B@#J+*_M-2M_M%C=0W,!8J)(7#J2#@C(XX(Q2QWU
MI->3V<5S$]S;A6FA5P7C#9VEAU&<'%>7>&M=U/P]X9@N8K6T?2WU^>UF#.WF
MXDNV0,N.!M)'!SGGI723>+TTK5O&$E_8P1PZ-:V\_FP',EP'60@,2!S\H ';
M)YH [&6:."%Y9I$CB0;F=V "CU)/2F6MW;WUK'=6D\<]O*-T<L3!E8>H(X(K
M%2XU\WGV?4+&TDL)K-I&G@;'D2_\\R&)+@@\, .G3FN,\#:]JFD>%? L$UM:
M'2]11;-65V,ROY;NK'^'!V$8Z]#GM0!ZDS*BEF8*H&22< "HK2\MK^TBN[.>
M.XMY5W1RQ,&5QZ@CK27LDL5C/)#&DDJQEE21MJL<="0#_*O.H?$6L:A!\/I=
M/^Q6$&J>8\MND3% 1 [!>"/E'IZ@>F* /3**CF\XP/Y!03;3L+@E<]LXYQ7
M+\0+Y=%T'4+F*S@:[U(Z=J$15B;1P[(3UZ!@H)./O@^U 'H=%<U=ZWJD<5Y/
M;06KVT=\ELD\C;%BC&!+*^6&0C;EP,$E:QU^(,D6B:M>7,<.-.U-;&2[CB<Q
M"-@C>>4SN"@/R,]NN#0!WM%9>@ZA+J=B]R\]G<Q-(?(N+-LQS1X&&')P<Y!&
M>U8NL^(-?B\7+X?TBRTYWETY[R*:ZF<#<KJN&"C@?-VSZ\8Q0!UU%<-=>--4
M:WGO=+TQKZ.UO#:R6D5K,SS!'V2,DH&P8(; (.0O4$X%Z?Q#K%\NKR^'[*WN
MAI=U]E-O,VU[IU"F0*V0$P&P"0<D'I0!U=9.MVVF:W;R^';ZZ"M>0,7MTE"R
M21=&P.N.0"16)JWBS4%GU:#1K/[1/I>U6A:UED-Q(4$GEJZ#:AVLHR<\GH ,
MF2+7[NZ\8:=8'3(+9KO1WO$EG!,\3;HP8V'& "W(!Y([4 =/:VZVEI%;J[NL
M2A%9SDD#IFIJX[1_%6I:GHA,D-K#K*:FVG2VP5F1&5OFYR"?W8,F>,CCWJ'4
M/&>I>7>W.C::]]'8WAM6M4M9FDGV,%D*R ;%(.[ .<[>HS@ '97%S!:6[W%S
M-'##&,O)(P55'J2>!65I.B:3#?3:[8O)/)?CS5F:X:5-K8/[L$D*IPI^7K@>
M@K"US6[S6M*\5VVF);"VTV"2WF-PK$S2&+>RC!&W 8#)!R2>..;OA!M3'AGP
MDL$5J=..DQ?:7=V$JMY2;-@Q@CKG- '545F>(]2GT;PWJ6J6T,<TMG;27 CD
M<J&V*6(R ?2N6A\8Z];ZCH!U/3+%=.UQ EN\$S%X9C'O429&,-@],X]\<@'>
M45YY9^/=8'A:?Q1J.GV$>F0">-HX9G,KS+,8HPN1C:3P2><\^U;4^OZGI?B/
M2])U-+1EU9)%MKB!& AF1=Q1U)^8$9PP(Z8P,YH ZFH(KZTGN[BTAN8I+BVV
M^?$K@M%N&5W#J,CD9KE=)\5:EJ.CSB6&TBUJ'4SISVP5BBL&Y/7)'EYDSZ5%
M)XQ32;WQC/J%C;QQZ,D#[[?E[G>A*AB0.>B@=L]: .MDU"RBOH;&2[@2[F!,
M4#2 .X R2%ZD#%6:\]U(ZF/B1X,EU,68!AO6Q K QGREW*22=P''S<=^!5NR
M\9ZGJ#:-?6>ER7.F:E*JLB6DRR6\39VRF0C8PZ;@,8SP3C- '77VH66F6_VB
M_NX+6'('F32!%R>@R>]6:\L\;:U>>)/AGJ>J6B6HTHW2Q1JZL99$2X5#(&S@
M993A<=.<Y.*]2?=L;9@-CC/3- %>\U"RTZ-)+V[@MD=PB&:0(&8\ #/4GTJS
M7CM]?ZMJGPNFO=3F@N9O[=C6/8A0@K?!<<DX&  /0=<UVD'B76H]8US2;K3;
M:XO;.Q2^M([24@3!MX$9+]&W)C=TYZ"@#KJ*XJP\6:A>:U>:,'T^6X72Q?17
M,*,8T?<49&&X[\''*L.XXJ[\/+W4=3\#:5?ZE.D\]S LN]5()W<G.2><^F*
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
M2SQ>:L[IG/F+N&=Q8MUZX-06/A+5].O-3N8-=A9K^]6\='L_E/[L(Z, _*G
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
M&.@]!0!YM<W%S:?#;X@75G=SVMQ!K-[)'+ Y1@0Z]QS74ZO<71\8PVEW)?\
M]DR:2[QBP,F\3[P&+>7\WW2NTGC.>]:Y\'Z$VFWVG-9NUI?RF:ZB-Q(1*Y.2
M3\V>>_K7-^(?"\E[XC$]SX;;5K%+6."UEM]1:":$ L6#DLI8$D8.XXQTY.0"
M+3TU>WTGPKI^MZC?OK-T)9;BQ28JTY"?Q2JP**F5) SDG !K"+W&K^#_  F^
MI7-S+/%XH^R[_M4FXHL\JC+ @L0% #'GCW-=QI_@C3FL;5-3MG=[69YK1&O)
M96M58 &,2DAF4XR0>.<<@"K@\%>'%TU]/32XTM7N?M6Q'9=LN[<&4@Y7!)P
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
MPP9(R/\ >]*A2;6/$UEK%[::NNG7FG:I-$)6NI-END,F KPCY&#(,G/][.>
M!Z#'IUG%J4VHI;HMY/$D4DP'+(A8J/P+'_(%94_@GPY<Z_\ VY+I<3:B2K-*
M&8!ROW2R [6(XP2">* ,OXG*7\*6ZJ[(S:I9 .N,J?M"<C/%<_KE]JW@C6M:
M33]1OK^U;0IM0$=[*9S;S(X4,I/12&)V]/E->D:GI=EK-B]EJ%NL]NY!*-D8
M(.001R"" 01R*BM-%T^S6<1P&0W"A)GN)&F>10" K,Y)(Y/!..3ZT <?.-5T
MB%O$=EJJS6?]F32"T>[EN1=NL9DC=-WW3\ISMX(/TI^B6NI7LF@ZU#KNVSN[
M<K<)]KDF^V%X\@JK?+&ZD$_*!QD8P*Z#0_!OA[PY+++I.FI;M*"I^=G 4G)5
M0Q(4$]A@<"F:3X(\.:%=S76F:8EK-*&!*2/A-W78,X3/^SB@#S_2KG4X_"?A
M+7'UK4YKR;7%LY?-N6*20O<R1E63HW&,$Y(P,$  5V'Q%FN[?1M-DLK^YLY&
MU6TB+P/M)5Y54@^HP>G2M)?!F@IIMKIZV<BVEK/]I@B%S+B.7=NW#YNN23]2
M35[5M$T_6[>*#4(6FBBD65%$KIAU.5;Y2.0>10!QTD4\'BX>$X]0O9H/[/:]
MC-UJ,J2R,\K!@)$^8A !@9X#=\##-.N=1CU[0O"NM:TUU_H-S*]U;R-$UU+'
M(%"%E(.54MG!Y(R>E=5KGA/0_$BVPU:Q%PUL<PR>8Z2)ZX=2&Y[\\TW4O!WA
M_5M.M+"\TR)K>S(-L(V:-H3_ ++*0P]^>>] '-7-Q>:7J/A[PPVL27R7+W8>
MYFG:%Y&CVE(3(F6) <]\G9SW%5-4BUK0](TZ";7IIW7Q+:Q+Y4S%DMY)$/D2
M.?F? /4]01FNQO\ PAH&IZ+#H]WID,EA P:*,$J8V'\2L"&!Y/(.3D^M#>$=
M#;3+73OL.VUM9A/"BS.I$@.0Y(;+-GG)).: .>U349_"_CN1KBXN[BPUBR86
M<#W#E4NXSS&@)POF!ACW4XILS7B>)K#PG)>2R!=)^TEWOI87N)=^UR'7YCM
MSMS@;O88[2ZTVSOGM7NK=)FM)A/ 7YV2 %0P]\,?SJCKWA;1?$R0#5[%;@V[
M%H7#M&\9/7#*0PSZ9H Y&RN=3AUSP[X3U766N]T%U+/=P.T;7+1L D98$'*A
MB6P<DJ,]P;_P[MQ:W'BZ!9)9%37I0&E<NV/*BQECR?3)YK=O/"6A7]C96<VG
MJ(;%MUJ87:)X3ZJZ$,,]\'GO4^D^']+T-KE].M! UU)YL[;V8N^,9)8GGB@#
M@=3OM1BTSXFA-4OE;3\26KB8[H?]&63"G^$;B>E:5@;O3?'/AV,:G?W$6J:7
M.]S'<3LZ%X_**LJGA#\Y'R@9[UTDGA+1)EU-9+1V75,?;0;B3]]@8Y^;TXX[
M<=*F7PWI:7UC>B"0W%C&8K9S<2'RT.,CEL$' SGK@>E &/J=^;OXA6?AVXN)
MH+1]-DNU6&9HFGD$@7&Y2#\JY. >^3TJC)'+:S:%HC>(+[5+E?M.Z)',3W(4
M@!I958%1'N"G&2Q/0D5TFN^&-&\2I;KJUDMP;=B\+AVC>,GKM92&&>XSS3+C
MPEH-T-/$FG1C^SP1:^6S)Y8;[P^4C(..0<@]Z .'TK4?$=YX"T*]A$VJS0W%
MR+RU2\,5Q<1)(\8*R<%BORD@XW<=Z:+BUU_5_ 3VEYJ(AEEU%2\[%;F/",&C
M8G)#+RN<YXR#WKMK;P;H%G%%':6)MEAE>6/R)Y(RC/\ >P58'!].GM4R^%M&
M2XL)TM"LM@7:V99G&POG>>&Y+9.2<DYYS0!D^ )[EK37+*>ZN+E-/UBXM8'N
M)#)((P%8 L>6QN(R>:Y[4[W48K/XG*FJ7RG3XUEM&$QS"?LHDPO]T;CVKO\
M3-$L-':Z:QA:,W<QGGS*[[Y#U;YB>3@?D*JR>$]%F_M,26KL-4 %Z#<2?O@!
MC!^;TXX[<=* .8T]KS3O&GAA1J=_<1ZKI<[W4=Q<,Z%T6(JRJ>%/S$< 9[UK
M>()#<^)K+38KRZ>4V<TIL+>9H 1N51,\JD$!>5"@');..,C57PWI27EA=B"3
MS[",Q6SFXD/EH< CEN0<#.?0>E+J/AS2-6U"VO[VS66ZMU9(Y-S+\IZJP! 9
M3_=;(H \[TS4M5U71?AQ+/J]\DE_)+#=M%+M,P$,ARWJ?E'/X]>:ZKP-+<1W
M?B73);NYNH+#5#%;M<S-*ZHT4;[2[$D@%CC)K0MO!7AZSCL8[;3_ "4L)&EM
M@DT@\MVX)'S<\''/;CI5_3]$T_2[F\N;.%XY;R3S;AC*[^8^,9(8GG  ^@%
M'GNOZI>1&[U'3]3O+CR/$%O;M/YS111*9(XVMUB!(D RVYB!R>"2*MW,%UJ'
MB?QQ:2:QJD<%K9VLUND%VT?E.T<IRI7!'(''0]\X&.EN? OAJ[DO))]+1C>3
M"XF'F. 900=X ;"MD#)&">^:MKX7TA+B^G2V=)+Z-8K@I/(N]%&%7 ;  !(&
M,8!- '#:9>:BH^'FL2:K?S7&KJL=[').3%(&MF?_ %?W00R@Y !]2:C?5M0U
M+X<:WXJ34;JVU>QN+J2.-9F$</DR$+$T>=K JH!R,DMGTQW2^$M%2+38EM9!
M'IAS9J+B3$)QCCYO3CZ<=*<WA717O)[HV>'N)!+/&LKB*5QC#/&#L8\#DC/
M]* .:L+V\NO%GB""XGNHHFT:UN1;F=P(9'\S=MY^7[HZ8Z5B:/=:EJG_  KM
M)]8U$+J6EW#7GEW!4S%8T()/7/S'GKZ$5Z#J'A?1M4U1-2O+(27:Q>3O$CJ'
MCSG:P! <9)(# XJ&T\':#8/ISVMB83IR,EILGD'E*WW@/FYS@9SG.!0!YQ>^
M=>>$UM;R\O+@:?XQ2SADDN7\SRA<J &;.6(!X)R1QBN^\:ZI+X;\%W%W:R,A
MB:"$S2.6,:/*B,Y8Y.0K$Y.>1GFK)\':"VGW=@UB6MKNX^U3(T\A+39#;P2V
M0V0#D$5IRZ=9S::VG2VT<EF\?E-"ZY5DQC!!ZT <#KT^L^#]/UK7+?4T>W;3
M=T%E)<276V4.H\]6DY"@.,J.#P>]7;V%M/\ &_A*WM=4U"6VOX[K[0'O9'6?
M;#E6P3@<L3\N!T]!C>TGP9X>T2RN;.PTR-+>Y3RYDD9I=Z<_)\Y/R\GY>G-<
M^?!<.B^+_#,^A:0ZZ?9?:?M$GVC=L#Q[5 \Q]V <\#@9XH Q(]5U$?#K3[PZ
ME>?:D\1"V\TW#[FC^VE-C'/S#9Q@YJ;Q+JEY#'JFI:=J=Y.UIK=M 9A,T44
M+Q(UNL8)$GWFW%@/O=25KKY? ?AF9[AI-+5O/N!<NIFDV^;NW;E7=A22,G &
M>^:6Y\">&;M[QIM*C;[9(LLRB1PK.""' !PK<#YA@GO0!0MO^2QZA_V K?\
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
M1TG1[#0M/2QTVW\BV3[J;F;';JQ)Z  >@ %7J "BBB@ HHHH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *AN+JWM
M$5[F>*%68(K2.%!8G  SW/I4U</\4Q:GPU9?:?*S_:EF5\S'3SDW8S_LYS[4
M =.?$&BB"XG.KV AMGV3R&Y3;$WHQSP?8U//J5A:VL=S<7MM#;R8V2R2JJMD
M9&"3@\<UPL,6B#XLZLKI8"'^Q("00FW(>0'VR$(_ CM7/^%M9L;7P]X!BN'C
M@G^RW,<6H3%F6 C ,2J#@R,,8W=,< YQ0!ZX;^S6R%Z;N 6A4,)S(/+(/0[N
MF*Y[PYXDFU?Q#XDM9+FRFLM.D@%O-;]"KQ[SN.X@D'C(QTZ5YUH6J)IV@>"[
MB[=QHMCJM\FH.Z$+!(7E$!D& % +9]%)'3BK&I7B7%WX_N-%)N8_M6FW4BV:
MAC/ JH9=G!#94-GJ#[YH ]<LM2L-2$AL;VVNA&=KF"57VGT.#Q5JN!T35_"L
MNH:AXML]7NKU8[#;>WC)B..-3N56547+CYNQ('!ZBNZMYX[JVBN(6WQ2H'1L
M=5(R#0!)1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !
M1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%
M%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 444
M4 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 A (((!![4H
M'0444 )M & !CTQ2T44 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !11
M10 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M%%%% !1110 4444 %%%% !1110 4444 %9VL:]I/A^U6YU?4+>RA9MJM,X7<
M?0>M:-4-3_T:WFOH-,;4+M(BB1(4#.#SM!<@ $XS]!UQ0!8L[RVU"SBN[*XB
MN+:9=T<L3!E8>H(J>N*^%4MBW@>*"RBF@>VN)HKJWF3:T$^\LZ8[ %N/;'?-
M=K0 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %9.H_\ "0+J,+:9
M_9CV.PB:.Y\Q9-V>"K+D8QV(_&M:B@#+T+1DT:VN09!+<7=R]W<R*NT-(^,X
M&3@   <G@<DFM2BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
,@ HHHH **** /__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>GRAPHIC
<SEQUENCE>18
<FILENAME>cgnx-20231231xexhibit97004.jpg
<TEXT>
begin 644 cgnx-20231231xexhibit97004.jpg
M_]C_X  02D9)1@ ! @   0 !  #_VP!#  @&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!# 0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P  1" 55!!\# 2(  A$! Q$!_\0
M'P   04! 0$! 0$           $" P0%!@<("0H+_\0 M1   @$# P($ P4%
M! 0   %] 0(#  01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0 'P$  P$! 0$!
M 0$! 0        $" P0%!@<("0H+_\0 M1$  @$"! 0#! <%! 0  0)W  $"
M Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*C4V-S@Y.D-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H # ,!  (1 Q$ /P#W^BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
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
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 **** ,JX\-Z1=:_#KDUFK:E#%Y*3;V'R;MP!4'#8;D9!P>:U:** "BBB@ H
MHHH *QKCPKH]WXEM_$,UM(VJVZ>7%.)Y!M7GY=H;;CD]N];-% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 445GZF^JAK:/2TM<
MNY\Z2YW%40 ] N,DG'ZT :%%</H/B/Q-K::E+%;Z81IVJR:?)&!(&D6-E#.I
MSP<$D ^G6M#PQXFDU'^TX]6FLH)[?5IK" (=GFA N,!B26.>U '4450\V[_M
M[R?M%G]B^R[O)Y\_S-WWNN-F,#IG/>IH-0LKJ5XK>\MYI$SN2.4,5QP<@'B@
M"S163XGU*YT;PSJ6J6JQ-+96TEQLE!*N$4MMX(QG'6N;A\;:E9S>&&U>SM6M
M/$ 1(I;5F#02N@9596SN!SC((Z=* .ZHJO\ ;[/[;]B^UP?:L9\CS!OQZ[<Y
MK$L];OY_&^L:+*+86UI9P7$#JI#9<N#N.<'&SMB@#HZ*SM/O)(]"@NM5O+%I
M!&#-<6[;8"?52Q/'U-3'5-/$44IO[7RYN8G\Y</_ +ISS^% %NBHA<P&X-N)
MHS.%W&+<-P'KCKBBXN(+2%IKF:.&)>KR,%4?B: ):*YG7O$<]A>^'?[/DM)[
M+4M0%I*_+$#8[94@X_@QSFMZ&_L[BU:ZANX)+=<[I4D#(,=<D<<4 6**Q-:U
MP0>$]4U;2+BTN7L[:693N\R,LBEMIVGV]:RCXFU(7O@N/9:^3K:,;GY&W*PM
MS)\G. ,COF@#L**BN3*MM*8"@E"DH7!*Y]P*P/!OB9?$'AK2;N\FM(]1O+83
MM;1O@XR>0I).* .DHJO)?V<5Y':27<"7,@RD+2 .P]ESDU8H **S;&\F2&\E
MU*]L&2.Y=8W@;:L<>1M5R2?GYYZ=1Q4LNKZ;!;W<\E_;+%9@FY;S1B''][T_
M&@"[16;I^O:;J.AP:Q%=Q)9RQ)+YDDB@(& (#'. >1Q5L7UHT$4ZW4!AE($<
M@D&UR>@!Z'- $]%4_P"UM-\CS_[0M/)V&3S/.7;M!P6SGH#QGUJ4WMHL44K7
M4(CE_P!6YD&'XSP>_'- $]%4Y-6TZ&WBN)=0M4@F_P!5(TRA7_W3G!_"J]QX
MBTNUUVVT:6[B6^N(FE2,N 0H('/U+#'K@^E &I15<7]F;TV0NX/M8&[R/,&_
M'KMSFN>\=^*'\,^&KV\L;BQ.HP()$M[ALEU) .%!!]_PH ZFBBLZVNITN]2:
M\N[$VL+J8A&2'B3:"?-).,YR1TXH T:*@BOK2XG>"&Z@DF0!GC20%E!Z$@=
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
MX4%FQDF-@!]369X2\/Z7?Z#X:UF262]N;2PB^RF68O' QC4$JHXSVR<D5VI
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
M3V\4W^FI;WUQ*?)M]K%2FW(#.5("@G@9Z]#[+M7.=HS]*0QH<913@Y''0^M
M'B6F7=A%X/\ "3SS1"&Q\4S).\H"B%2]Q@/G 7JO!QC(]J]MC97C5D^X0".,
M<4;$QC:N,YQCOUS3J /)-.739=#\8VL>JPZ6H\4!H;B,*R0R#R#&67H5+K@Y
MXZUUW@>^O;HZS!J5I9I?6]X!/=6))@NV,28=<]&VA01V(KJS&A!!12#U&.M$
M<:1($C140=%48 H XCQ7K$.A>//#U[K$@AT4P7$2SR?ZJ&Y.S:SGH"4#J"?5
MO>LF632]+UWPE<:?'Y/A5KN\8S,Q,/VB1<QR98\*6,@4\#)XX(->FR1I*A21
M%=#U5AD&AD1T*.JLA&"I&010!XMXMM[=-#^(-PK0_P!C2W=D]H<C9]IRGGM&
M?7IDCN&]#6YJ*Z)9_$'4K>.2&TLYO"LIG^QE5; D/S #JP4D@UZ:(T5 @10H
MX  X%&Q?[H_*@#S+2[B=#JFE:R^EZI;IHI>'6+8!5D@!(5)ER5#9)(P<$ X[
MU1TIY7\)>#+G1]9L+?5H-%(2UO\ !M[J+$?F(3G*L"J\CWSQFO6DABC#!(T4
M,<L%4#)]32/!%(NV2)'7.<,H(H \PLM0L7\2^ M0N+*/3(;C1[B**"7G:W[G
M9&I/WC@?+W(JEI$^CZK -&U[5;V+Q#9ZL\YL$6-97G$K,CH=FXJ5(YW8"]2
M*]?*@D$@$CD>U-\J/S?-V+YF-N_'./3- 'B.IP:*/ _Q*F1+(31:M*8&7;N0
M[(2NWT^8'IW'M79PW5BGQAWR2P9O-!@^SMD'SF$TF=OJ0""<=!STKO-B?W1^
M5+M7(.T9' ..E %;4=/M]5TRZT^[0/;W,312*>ZL,&O(X[G5K+3]&UR>TD>;
MPC.=+O=D>7NHV;RG*^H"^2X]2S>E>S4FU<$;1@\GCK0!YOXJM+;2X?!1O3;Q
MW[:_%-,Y(!WNLC28/7;N('X+[5$;FPLO$?Q(@GE@AGD@CEC5B%8I]D +#VSQ
MGIGCJ:]-*ANH!^HH*J225&2,$XH \BT;^R[2;X436YM8IYK5UE="H9\VG(8]
M3\X Y[BO4-:B\[0M0CV;RUM( N,Y.TXXJYL7^Z/RIU 'C45YI%YX(^&5OY]I
M(@O;6.X3<,;A;.&5O4@D @^N#UINJ7,6GW?C5-/XT^UUC3[B[ALU5BL'EQF9
M@F"#R,D8P<'/>O9=B 8VKCZ4H51T Y]J ./\)_V!?:[J&M:)JT^IR74,:74R
ME/)ROW 0JJ-^"?<#KC(K7\4:U'HVD$BYA@O+IUMK0RL /-<A5//4+G<?8&MB
M...)-D:*BC^%1@4I4-U /UH \K\46EQX&G\,^)9K^R:UTMUT^=8K=HF>VDPI
M))D;>5(#8QUR:N7</AV]^+\C7Z:=-;W'A^.53-L:.4^<XW<\,=O?TKT@J#U
M/UKGCX;F?QQ)K\L]N]LU@ME]E,)) 5RX;=G&<MTQ0!YE8:796D'@E-2BB_LY
MM9ODM#<C_ET99?*4D_PG@@'@@BI/$-E:Z9X=^)DFG^5!HDXMUMTCPL1N-H\W
M8!QU*@X[@CM7I6O>'KC6-;T.^CN8(XM,F>9HI(B_F[HV0C.1@88]C6^L:*@1
M44(. H' H X'5YK0_%/PU+:RVWVF;2[P*X9<O_J]F3W'WL?C6?X)U+P]JNB^
M']/OU+^)M-N"TMJ2RW$=SEA+(X&,J<LQ)X.>YP*]/VKG.T<>U((XUD:0(H=A
MAF Y/XT >+KK>ES-X7N;:>&TAB\22[[0L7F@+^>&,SDDAG;D+QP<?-C-/N-.
MT2]\->/;>[MK:76FU6[^QH5!N?,.#!L_B&6P1C@\^]>R^6@).Q>3N/'?UI#%
M&91*8U\P# ?'./3- 'G7F74?Q'BM3<Q-JZ^$V3EQDS^8O]>:H>#[CP_K<7AD
M/JE\VOZ7\K6&U$E@DV[9O,P@;9U)+'GCJQKU;:,YP,^N*:L4:R-(J*';[S <
MGZF@ EECAB:6618XU&69S@ >YKP?PY:!?AMX<\0AGU73-,N)Y-2THR%T"><^
M)E3.-R?>P>""3[U[V0",$9%(%4= !^% 'GVNZYI#^-/!6N+J-I_9C1WL8O#*
MHB#-&A52W0$X/!]*Y6[U"R/@'Q5BXB7/BP-M8[3@W439P>>@)_ ^E>TM%&X
M:-6 .0",X/K2A$ P%7&2<8[T >7ZSJ.DCQEXBTOQ/JLEA9ZC:PBS=EC\NX@\
MO#HK,C<ARQP"#\P(JMK(;1K>ZN-*NX[V"WTRWAU#1-6XGF@53L:-QR),,1C'
M+>^*]8:*-RI>-6V'*Y&=I]10T,3NKM&C,IRK%02#[4 +&YDB1RK(64':W4>Q
MKQ>XUO2Y?[%N+>>"SCA\5EIK1F+3PL7E#O,Q.5W'HO P0,G''M5-\M,D[%R3
MN/'4^M 'B^IVVB2:)\4Y/*L3)'*QA.%RC?9T/R^AWCMW'M6_I.N6,?CG4%\0
M75NL-WI-H--EN7'ERQ;6\Y5)X)+D9'4@#TKTG8O]T?E2-%&Y4M&I*'*Y'W3[
M4 <;\))89/ACHRPNK"-'1@#]TAVX/IVK'\:ZCI_]NZ_8,T5K>MH!4R3DLUTA
M\PB.%,XR#G<V">1QQD>F*JHH50%4#  & *0HI8,5!8# ..: /)=,?1]2\1?#
MUYFL[AGT*42%]K;V5(<!L]<$-C/<'N*72-(36_ >KQZ.8#?:3KUW=:6$P5C>
M.9G10!T5AD>F&KUD(@  51C@<=*RM;TW5+\6\>F:N--BW,+G;;"1Y$(QA23\
MA'8X/TH H^$+DZY:R>)Y+=X'U)$$,<@P\<" [5/U9I&^C"J/Q"GEM$\/W4H/
M]DPZM$VH'^%8\-M9_P#8#["?3 -==;6\5I:Q6T"!(84$<:#HJ@8 _*I" P((
M!!Z@T >3^*[7[3?>.;K2]DVFR^&S]I,.&1[L;]I&."XC SCG!7VJS=76BZGX
MD^':)-9W%L\-U\NY2C'R5QQT/S#'U'J*].CC2*,)&BH@Z*HP!0$0  *H X''
M2@#Q9=0AT_1=1EMYBFD6/C&1KS[(JN(+<KPVW!&T2%6Z'I4WBR+PS+X&\5ZK
MINI-J"WLEJ\MR[)Y/G*ZC]WM50'V_>(YZ9[U[)L7!&T8/48ZTU8HTC$:1JJ#
MHH& /PH JZ9I^FV%NW]EVMK!#.WFM]F1561B -W'4X Y]JNT 8&!10 4444
M%%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4
M444 %%%% !6?JVL6NC0027.]FN)TMH(XQEI)&Z*,X Z$Y) XK0KG/& UDV=A
M_9%M+<QB\0WL5O(L<S08.?+9B #G;W!QG!% #)_'>CVNC7FIW*W44=E=_8KF
M,PY>*7*C#8)7'SK\V<<CFDM_'>DS7M_92PZA:W-G;FZ,5Q:.CRP@X\R->K#/
ML#[5P6NZ9J6C^"/& N=)-K#<ZS:W=L/.1MZM);@+P>N5.2>YX)ZUUFLZ9<ZI
MKDNO2V<MG;V&CW,"B8KOE>0 GA2?E4*>O4MQTS0!<L?B'HM_>:7 L5_#'JJ
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
M9172W$ZR1@(9%0+P6#'[IS@4 -'Q%T8Q&?R-1%LEZ;&:X:U(2&7>$^<GH-Q
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
M5)/EVKM&<EMRXQG.17%Z)X>\0V>B>"+2?1)5?2+^22ZVSPD*A610P^<9R7'
MYP#3M5\,>(;U_$ES:Z<T<YUFTU2Q2::,+="%8P4)#';DH<;@.U &S8ZG<W/Q
M>:V=-0MH?[#,IM;B3*;O.4!U"LRYQQQSQ74:AK-MI]Y:63+)->7F\P6\0&Y@
M@RQY(  R.2>XKFK"/5[[XC6^N3:%=V5D=(:T8SRQ%DD,H?D*YXP#R/R%-\9_
M:U\3Z#<Z7IT][?VD=Q(WV6:)9$B8*N"LA"E6..^<KQWP :$/CW2)[.&[2*]$
M,EZNGEGMRNR=GV;3GT;@D9Q^56+[Q)IV[7-/G%[$^G6HFN3$AW>6X;#(5).?
ME;T(Q7'RZ=/>>$C9Z9HFHPZEI^K0:I<6EZ\0EN29O-=@RML);#8Y'3&!Q5YK
M#7;K7/%5^="N(XM2TB*"V1IX=_F*)1M;Y\ _..Y'O0!T-AKNGV^AZ$EK]LNV
MO[5&LXG(>>5 @;<Y8@9 (RQ/4CG)&>=\(>)4L[#7[C4);^3=XCDLK6"X8O*&
M98PL0W' Y)[XZG..:@L]'U_19O!VKII,UR;'2!I=_9)+%YL7"?.F6VM\R8/S
M=,5'#8>++.RU=[?1[A!>>(OMDL4=Q$)I+1E4,$;?A7RH[CC.#WH ZBY\=:39
MZ+J>IW,=Y$FF7'V:[A\G=)&_RD9VDC!#*<YQSUJQ:^+M-N-4N]/E2YM);:V^
MUEKN(QJ\ .#(I/8'KG!]JX._\,^()/#OC;3[;0)%.J744]HHN8CN&V(')+]1
ML;.3UZ%NM;/B7PYJGB'Q->;+&:WL[SP[/IWVIY(\1S.X8 J'+$#'. : .CM?
M%EA<:E:V3Q75L]Y;M<VLD\859HUP6(Y)7 (.&"G!Z4D/B_3I-1T^T>*YA74E
M8V-Q*@$=S@;L*020<<C<!D=*R](?Q)K.A'1]7T4Z6RVC6UQ=&=)%E8H4!B"D
MG&3NRV,8QSU%+P=8:M;)8:=J?@^RM+C3U"2:HIB9)0HP&C ^?<V!G(&,GZ4
M=EJ6K6VF&W24/)/=2>5;P1@%Y6P6(&2!P 222  .M8>I>,8E\.:_=6,$_P#:
M.DQ2>?:2HH>%Q&64L,X*D8.02".F:3Q7I6HR:]X=U_3H#='2II1/:JP5I(I4
MV,R[B 67 ."1GFLN_P##^I7:>--5BT^7[1K&GK96MH7C#G;$ZAV);:,L_KD
M>^* -7P=9/+9V>MR7&JK-<6,:3075QOCE?"MYH7)VDY(X(X[=*ZJLSPY%<6_
MAO3;>[MGM[B&UCBDC=E8AE4 \J2#R/6M.@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBN1^(EYJ5
MEHEB^G7:6[2ZG:0R%HRQ96F48^\,#U]1D<=: -+5H-!\323>'KZ=;B6,)/+:
M17+(Z@,"I;801\P!&?2M2YLH;NPDLIO,:"2/RWQ(RL5Q@_,#G\<UPMTFK_\
M"UKA-/FL5OO^$=BW33Q,8\B>3H@;/)_VN/?I4^F>.KG5])\/F&W6&_U2SDNI
M=L+S+$(RJ-A003EF&.> #UH Z_2],M=&TRWTZQ1TM;=!'$C2,^U0, 98DX%1
MWFNZ1I]R+:\U.SMYL ^7+,JD ]"03QFJOAC4-6U'2W?6K#['=Q3O%PI59D!^
M615))4,.Q.1S7'ZG<:UX'US6M1ETDZYX9U2;[1<M;@-<6IV*C!D/WX\+^ SG
MW .YN=?T>SB@ENM5L8([A0T+2W"() >05)/.?:G6>N:3J-P;>QU2RN9PF\QP
MSJ[!<@9P#G&2.?>O/?%-QI[^&?AW-H9^U6":U9+:8."R+'( .<8/&.>AKJ-0
MU74(8-;U&71C;S:;IC2VDCNKF0D.S+\IQC,4?% &S=:[I%E<M;76IVD,Z@,T
M<DRAE!Z$C/ ]S5NWN8+N$36TT<T1) >-@P)!(/(]""/PKEOAC;QQ_#W2;G=Y
MMQ?0_:[J9N6EED^9F8]SSCZ "NBTS3+72+/[)91B*#S))%C P%+N78 =AECQ
M0 ZWU&SN[N[M;>YCDN+1E2XC4Y,98;@#]0<U:KS_ %+QAJ^GV?CB>*VT_P [
M0FC:+*-B13"LGS\Y)P0.,=*T['7]93QC9Z3J26+6]_8/=P&W5P\3(R JQ)(8
M$.#D!>G2@#H[W4;/35A:\N8X!/,D$1<XWR,<*H]S5JN<\7:S=Z,NC-;0VTJ7
M>JVUI+YRDE5D<#<N#]X>]8]_XE\2_P!J^*[.P72D718(KB)YXY',@9'<J0&'
M)VXSGCT.> #NZ*\_77-6U;Q9X.EMKJ&WLM2TJ6]:V:$OAML1Y(89.)"!Z<\'
M/$UOXNUO4H]/U+2M-^U:?<W?EO +9U=8-Q7S1*6VDC 8KM[XSQD@'=45PVG:
M_P"*M4O=9$,>CI;:5J$MJ^]9-TB")67&#P<L,^H/;'.;:>./$JZ1X9\07UII
MATG5I8;>:* 2":%I>%<$G!7=C*XS[GL >ET5P%IXOU\V^N:K>QZ8NE:)=W<-
MRD:R>=*D294H2< YQG/7/;'-V#6O$\VI6T(LXC:7=M(S70LW06<H7<N[<_[Q
M3R.-IR/>@#J+_4;/3(%GOKF.WB:18@\AP"S'"C\215JO,=*\2:W9_"W0-9GD
ML[V:\N+99#-"P($LH4G[W+ MD'@#TK9O=?\ $<GB;7=(TX:7&MA90W4,L\<C
MD[]_RL PSG9U!&/>@#M:*XNS\9W6IP^$4@@AMYM?M7N&DD4ND12-6**,C));
MCGHIK0\&ZWJ6NV%[/J,5LAM[R:T4VZL%D\IRA<9)X)''IR* -^YN8+.VDN+F
M:.&"-=SR2,%51ZDGI3;.\M]0LH;RTF6:VG0212(<AU/((KB;>ZU:Y\6^-K:Y
MO89+.UMH5CA\@@JK12, #NP#D\D@Y]JSO!NMZOI>B^ K29;)],U.T6V545O.
MC98"ZL6S@@[2"-HQGJ: /1+34;.^ENHK6YCFDM9?)G5#DQO@':??!%6JX/\
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
M:SN[:1FN19N@LY0N5W;G_>J>1QM.1[UD^%_%&IQ>"?##74Z76H:R6V.+=F*
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
MG':@#O**P_!KW<G@W1Y;V=)Y9+*%]ZH5.#&IYRQR?4\9]!6Y0 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !6-XGT#_ (2/2!9+=-:RQSQ7$4P0/M>-PZY4XR,CIFMFB@#G8O#EW%XI
M?7CJ:23/IZV)1[;C"L7#9##G<QXQTX]ZQ8_AQ-::+HEOI^O2VFIZ-YBVU\EL
M"&CD.622,MA@>.XZ"N\HH HZ58SV%GY=U>R7MR[;Y9W4)N;@<*.%    'ISD
MY)S5T76;66^^PZW"L5U,\PCN+/S?)+=0A#KQW^;/)/TKH*YZR\4/J-OKK6FD
MW+W.DW#6WV8N@:=PBN-IS@9W#J: ,RY^'\8T7P]I6FZ@+6WT.ZCNX?,@\UI)
M$W?>PR\$NQ(&.O&*W8]-U.:_BFU'4H)K>)6 MH+4Q*[,,98EV) !88X'.>PI
M^HZTFG+81O"QO;^7R;>W+ 9?87(+<@ !6R>>G&<BHM!UF_U9KD7N@WFEB$A5
M:X=&$IR0VW:2<# Y.,@C% &=H_A74/#<36.B:Q%'I.]GAM+NT,QM]QR51Q(O
MRY)P&#8]:Z2UM_LT C,LDK9):20Y9B>I/;\!P.@J:B@#C;_P-+?Q>*8FU557
MQ!L$F+;F$*@C^7Y^?E Z]_RK0'ANX/B32]8DU",M8VCVOE+;D"0/M).=W!^0
M8Z]ZZ*B@#$\2Z!)X@BT]$O%MOL=]%>@F+?O:-MRK]X8&>M4G\)W#:CXCO!J4
M8.MV\<#*;8GR0B,@(^?GAC^.*ZBB@#DK?P7+;/X:EAU9DFT2T:RW+;C]_$51
M>A)VM^[7GGOQ4>D^";S1;R2"T\17*Z T[3KIA@7*$MN*"7J$+?PXZ<9Y-=C1
M0!S-AHI\.P>(;NXU"*2+4)Y+Q\Q>6(F*!<9+'(PH_&N=\!:))K/@#PJ+V^BE
ML[(17"VZ0[6\U.55VW'(4G. H.0,]\]/8>,+"^\77_ADP7-OJ-G$)2)@NV5#
M@Y0ACG&Y<@X/-.\2>+K#PS<Z5;745Q/<ZI<K;6T, 4DL2!D[B %R0,Y[B@"'
M3/"*6NG:]I]]=+>6NLW$T\R"'R]OFC#*#N/&!QWIGAWPMJ>CK%!?^)+G4[*U
M4I:PO D;*,;1O<<R$*2!T'<@G&.G4DJ"05)'0]JC^T0BZ%MYB^>4,FS/.T'&
M?IDT <;'X GC\'67AP:V6@L[B*6&1[49"QN'12 PR<@9/<=A6I_PC-R/$&JZ
MLNHQ[]0M([4QFV.(PF[!SOY^^WZ5T=1SR/%;RR1Q-,Z(66-2 7(' !/'/O0!
MY=KFFIH-KX:\/7.M_8[;3[9S'?7.FB:VE881%93D!P-QSD=>!SQV'@U[_P"P
MRQ7%U;7EG'M%K<P61M%<8.0$R00.,,.#D^E;UE/+<V-O//;/:S21J[P.P9HV
M(R5)'!(Z<5G:YX@30[G2H9+2:4:C>I9K(A4+&S D%LG/13T'Y4 4I/"TRZ]K
M.IVNIF)=5@2.:!H X#(A16!R#C#=/4#G'%5+;P3-;6?A>V&J(5\/L#&3;<S
M1F/GY^/E8]._Y5V%<]=^*TMO%(\/)I-_<7K6INU,1B"-&&"DY9QSDCC% %>T
M\*W]C)JLUKK*QS7^H+?;OLN0A 52A&_YE*J!V/)Y]+^@>'8="GU.Y1HS-J-P
M)YA#%Y488*%^5,G&<9)R<DDT)KEW-:321:%?>?#=I;O;R-$K8.TF0$.5*A7S
MP<\$5M4 <[_PC4__  G?_"3_ &],_8?L/V;[/QY>_?G=N^]GOC&.U3>(?#BZ
MW)IUW#<FTU'39_/M;@)O"DC:RLN1N5E.",@^];E% ',77A WMEKPGO4.H:U;
M?9)[E8,+'$%*A43<<8W,>6/)],"@>%)_[1\-W;:BA.B0O$%%OCS@Z!"3\_'
M'KS^5=/5>_GFM=/N+BWM7NYHXV9+=&"M(P'"@G@9]Z .7TGP3=:+>30V>OSK
MH,EPUR--\A<HS-N9!+U"%OX<>HSR<P&/2?%_C>PU"S6X8Z*9HKF4Q/$C/N7;
M$=P&_#+O&,@%0>XKM(7:2&-WC,;LH+(Q!*G'0XXXK*U/Q FF:]HVE/:3.=4D
MDC292NQ"D;.<\YSA?3\: &&'5_\ A,5F2^9M(-H5DM&MP%23/#+)U)(SQT '
MJ12>(M DUV32F2\6W_L^^2] ,._>R@@*?F&!\Q_2MRN;F\7B/Q)=:%#HNI7-
MY;6ZW+>480K1L2 06D&>0>* *EQX*FN+;Q3 VJ(%\09\PBVYA!C$?'S\_*!U
M[_E3)_!-]'JEIJNDZ^VGWZ6B6=VPM5DCN8T^Z=C-\K#GG)K>\/\ B#3_ !-I
M2ZCISN8B[1NDB%7C=3AE8'H0:U* .=N?"\DVM:#J":BW_$I$ORRQ;VG,B[69
MFR,'OP.OMQ6->?#NXN=/U738]?>'3[Z_&H)$+52T4AE65@6)^9<J<# QGDG&
M*[>XGBM;:6XGD6.&)"\CL<!5 R2?PJ0$$ CH: .1F\&74>LZG?:;K1M8M6B"
M7T$EL)0[A-GF(=PV-CKP0?2FV?@B:SC\*HNK>8/#ZLL>^W'[X&,Q\X88^4^_
M/K75R7$,,L,4DBJ\S%(U)Y8@%B!^ )_"I: .*N? 4MUH'B/27U90FN7;7,D@
MM>8BP4%5^?GA!U]ZP/$,BW/C&Z2]UZWTR:""*WB2_P!'%Q'/QN9X=QX!+;2
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
M#YF]D! 4_,,#YCFI-!\2V/B'[9';)/!=6,WD75K<(%DA?J,X)!!'(()!K8H
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
MZB_PJO;J0RW$ZM+*YZLQLF)/XFNOF\'Z!<7$$\^FQRRP6_V9&=F;,79&R?F
M[!LX[4L/A'0K9-.2"P$:Z:2;0)*X\HD8)'/)QQD]N.E &W7E^LG75^*'B"3P
MZUK_ &BF@0M&EQ&6$A\U^ 0PP?0G(SC->H5F1^'],AUN364MV&H2)Y;S^<Y+
M+G(4C.,>V,4 <#8ZEI_A_P"#<^J:!-.K/,&NY;DCSHII)E2=I !PRY/;C:#6
MK/I.LVLFHS6'B&&!+[3&6VMY+B295G! 6=7<DJ/F ...0>M=,OAG1DN+^=;"
M,-J&?MB9.R?(P2R9VDD=\55T_P #^&]*T^ZL;+2HHK:[79,FYF++_=R22!R>
M <4 ><^)+X7O@?Q?8:A9ZGIFJ6]C#)+8SWCS18#,!+$^X[E8G!'JHR,UUNLQ
MK_:T6E6M[?2R1Z7+-]C%W)&(P6&)WFW%R<@JJ_-^&,UTA\-Z2]M=V\MIY\=Y
M$()S<2/*TD8SA2S$G R<#/!)/6J[>#?#SRVDK:7"SVL1AB)+'Y"<E6Y^<9YP
MV>>: .!TPOK>H?#&_P!0N+F2ZN-.N3-*MPZ%B(D.?E(Y.3D]^^:O6\FJ^)[#
M4=1M]:33KW3]4F1I#/(1;I%*0(WB!"$-&!G/7=FNPC\&>'8K2QM4TJ%8;!R]
MLH)_=DC!YSD@C@@Y!  [42^"_#D^O_VY)I,!U+*L9N1N9>C%<[21V)&1B@#A
MM2BNI[;XCR-J^JJVE$S67EWLB>4PM5D&,$9&[^$\>U:5M+=V?BWP?<+J%],V
ML6-PU['+<,T<C+$CJ53[J$$G[H'6NL;PMH[KJ2M:L1J?_'X//D_?\8^;YO3C
MZ<=*<OAO2EN-/N!;/YNG(4M&,\A\I2,$#YNXP#GL * .)\.OJOB/1M!\31ZV
MEK*URK7@\^1UD#,5>W,9.Q3D@#C(('J:R+Z2_A\(>*M876=5-WI6O2):$WC[
M4198QM*YPZX)&&R/3'->BVO@OPY9:Y)K5MI,$6H2,7:5<XW'JP7.T,<GD#/)
MIS^#]"DL+RP>R+6MY-]HN8C/(1+)G)9OFY)(!]\#TH P=#LH1\6O%<VZ?>MM
M8N!]H?:2PF!RN<$>@(P.V*[JLU= TM=735A:*;]8A")RQ+%1G&<GDC)Y//)Y
MK1(W*0<X/'!Q0!XU;I/8>$)=:M;^]BN8/$\B(D=PRQ%'O=C*R [6!#'[P)],
M5NR-J?BJ7Q*EOK TV\TV_,,4OVB1?LJ(%*L8P0K*PW$ELYR1T QUG_"':"=.
M;3_L3?9&G^TM%Y\F#+NW;OO==W/UYZTE[X*\.:EK$>K7FDPS7R!5\YBV7"]-
MXSA\8'WL]* .;L[*XUCXA:U:W&LZFMO;VMA=1QV]T\:"0F0G [*=O*]#GGD#
M%31'U7Q-H^G^(8]:6RN([XFZS/(P($A5K=HL[1QM XSG!ZG)[V'1-/M]8GU:
M*!EOKA0DLOFN=ZCH",XP,G''&:I1>#/#D.OOKD6DP)J+OYC3#."_][;G;N_V
ML9H X'4-1OX?AWXQG74KY9['798K:7[4^^-!+& H;.<88C!XYK4O;2?4?&'C
M&SEU75([:#3K:>&."\>,1R,)>5VD$<J. <'N#@5T]WX(\-W\][-=:5%(UZP:
MX!=MKL,?-MS@-P,D#)Z&K2^&=(2YNKA+5DENXA#.R3.-Z 8"\-T )QCID^M
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
ML-#AUSQ-XNN60MHFJVL%J3C"SN$8.Z^N%91N'4CVH ['^TK,2VT1N8Q)= M
MN>9 !DX]>*K0^(M'GNFMH]2MC,L9EV[P,H.K G@@=R.!7':%8:_J7A#4;>^1
MXM5L;&?1[25CCS7 (\X'T?$7/JI]:A\*W6AZM+HKRZ5JT6LZ1$RRK=^>B6)\
MO:_+'80<8 &<@@X&#@ ZK_A.?"H7=_PD&G;?+,N[[0N-@;86SZ;N,UJG5+%6
MM%-U&&O/^/<$_P"MXS\OKQS]*XSX>:597WPV33[VS \TW<-Q')$4?:\SG!R,
M\J5/Y5+X$M]4DD:'6 6;00^F03$_\?'(/F_]^Q$/7.^@#N:SHM>TF:^2RCU"
M!KARRH@?[Y7[P4]&([@=.]3:G#<7&DWD-I)Y=S) Z0OG&URI"G\#BO,XH9-7
M\ ^%="M[::WUW3KNT66)HRKVK0L!)(?12H;!Z-N &<T ;\_B*[UWQ-J^AZ-K
M,-A<6"0>0QB659Y&WLX<$9V@*!\I!Y)R>!7;,K-&5#[6(QN Z'UYKC?#LJ_\
M+*\7DA@LRV8B=D(60I&P;:>AP3SCI79.ZQHSNP55&23T H XOPEXN>X\/WFJ
M>(]2LX%BU":S1B!$IV.5'4DECCI^E=-I^O:3JMS<VVGZC;7,UL0)DBD#%,],
M_D?RKR,*9/@[X@M#;S&>76'D2 PMO=&NE<$+C)&T$Y] :Z#Q);7&H^,=8@TG
M(FN?"DEM;RH"$,I=BJ!N@.#GKP#F@#N[37M*OKS[):W\$MP4,BHK<NH."R_W
M@#QD9%)'X@TB6^^Q)J-N;C:S!-X&X+]XJ>AQWQT[UR.D:G9>)M)M8;'2+BWU
MRSL)+??<6CQ'3W,>TJ'90#E@HPIZ<]JH>$9='U*+0K6[TG5H]=T9 LD5R9UC
MLV5-CON)V%2!P!G.1QC) !VL7B_PY//:PPZW8R273F.!4F4^8P)&!Z\@CW(.
M*K1^,=)O;[6=/BOXK:330%EN)2 JL5R3S@$+D<YP:\]BC"?#:UC6WD6X'B47
M!00L'"_;"^_&,XV8.?2NB@E^R^(?'\4\,X%VD4T#^2Q21/LJKD-C!^8$8SG-
M '4:?KEA#9:1;W>MVUW=WL"F"; C-X=N2Z*/7K@=*OMJM@C72O>0J;7'G[F
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
M36HS,D<@)0>I]N#S5>Y\6Z':V%U>/?H8K6 W$@4$MY?9@.X/8C@URVJM:O\
M$2>1H))K)O#$T+B%#A_W@81@CC<5R0.M9D$&K#3-;T:WO&UW3&T"X%E=O!MN
M8&*[5MY" -Q(YY ;Y>10!WEGXHTNZT>QU%[F.-;M R1YW-NVABH &20.N!4S
M^)-#CM[2X?5K)8;S_CV<SKB7O\O/.,'/I7#PZO'Y?@P?8KN!/L+Q?VB+&1Y8
MG"1@Q*I4[2Q'WBI'R$#U&)I:X\(>";2XM+E9+/Q%(\Z36[ QJ'N#N.1T&].>
MF3UH ]5LO$&CZE83WUGJ5K-:V[,LTRR#;&1R=Q[<<\T^UUO3+U;DV]]"WV4
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
MT-QD9.#C\J )R0.IQ02 ,DX%>27NL7GB#P/X.UW4;1/M,FN6<L?DMDL#*?E
M.,= ,$]ADUU%UXLCNM*\56FJZ%,'TJVW75F)D<30/&S AL@<JK CMCC- '9]
M:*Y:W\2V\,>C:;I]G"L]UIRW5O:RW C C 4!$.#N;GIQP,DBNAMI/MNGPRS0
M&/SXE9X9!DKD<J?SQ0!8HKPF*./_ (0SQ%_9:WO_  DD6N7,>G&S\PRKME 5
M<CC8!G(/R@5ZDGB&],DVGVUBM]J6GVT4E^HF$:B1UR$0X.6."<' P1SS0!TA
M(&,GKTI 020",CK7G=]JVG^(_$'P\URP!,5S<W(4NN&7%O("K#U# @^XK3MO
M$FD:=?>*[IM+EM)[.Y@CNF!5GNI'11'@ XR0R*.>_..: .RHKFY_$>IVKZC#
M+X>N&FM+474?DR;HYUYRBN5 \P8^[].:ELO$RZC9:#<VENLJZNOF ++_ *I-
MFXL>.<<*?]I@/>@#?H) ZG%9.NZ]!H8L5E\OS+ZY%M"9I?+C#E6;YFP<<*0.
M#DD#O7)>+KF::[\&W\^F217B:XT/D*P9B!',.&.!AMH8$XX(S0!Z'17*6WC-
MY;'5FFT:Z74-,NDM9;*)A*6:3848,/X2'!)QP ?2L_7M=BUSPKXWTJXM4CNM
M+L9/-"2^;&2T+.C*V <C'0@8(H [K<..1ST]Z4D 9)P*\V2)!XB^&4P4>8;&
M=2W<@6JX'ZG\ZT_BFB?\(C%,T9=X=1LV3 R<^>@./<@D4 =M17(Q>.X[;4M0
ML=>TR?2);2S:_1I)%E66W4X9@4)^8'&5]^]2Z=XUAO/$5MI$MO&KWD#36\MO
M<K.HV\E)-H^1\'/<'!P>* .IHR"2,\BLO5=:33KNPL(HO/O[]V6WAW;1A1N=
MF;!PH&.Q.2!CFN(\,ZQ!H5]XTN[ZW6U)UB*)8!("#(\4:C#' P2<Y., Y.*
M/2Z*X^'X@V"/JL=]&D3Z>D<F^WG6:*=9#M78_P HSN(4AL8)'..:BE^(<-L^
MK12V FFT^P;4!]BN5FCEB7.X;SMPPQRI['(S0!U]U"]Q:2PQR"-I$*ARN[;G
MOBJ'AO11X=\/66CI<-/%:1B*.1E"L5'3..]8B^-[DZAIEHV@7(_M6V::Q83H
M?,955F5A_ ,-G)[#IGBI+7QU:R:-/=WEL;.ZAU!M,>VDF7'GCMOZ;<'=GT!X
MSQ0!UE&1G&>?2N/@^(-CY6K"Z@VSZ<\2;;:43)<F4XC$3\!B6^4@@8/7CFJ%
MJURWQIC:[L8[:5M D):.;S%<>?'WP#D=.GIR: ._HKEO$>NZIIWBGPWIMC:P
MRPZA+,)6>7:6V0NVW[IP,X.?;'>G7OC#R;75KZSTY[RQTB5HKR1)0KY0 R>6
MI'S;0><E>00,XH Z>DW+C.1C..O>J]M<6NJZ;%<PLLUI=1!T;'#HPR/S!KS+
MP]>6&G_"30/[0TMK^V?4O*50P C<WC!'.3GAL=,T >K45R=WXRN8]4US3K/0
M;BYGTF&*9R9T19%<.<@\XX3@=3GM3;+QTMY<Z"YTFXAT[6UQ:W3R+G>8S(%9
M!R 0#SGJ.F.: .M!!) (XZTM><:QXH&DZ!XXU+1='6UU&PG"W#S2#]XYC7$N
M!D<*5P.^.<5Z#;23/;(]S$L,N/F17W@?C@?RH FHKD9/'<$6E6^NO9-_8$\X
MA%Z)!N4%]BRLF.(RV.<YP0<5+'XNN[GQ+?:-:>'[J9K"X@BN9C-&JHDB[O,P
M3R .<#GKTX! .IHK"\2^)/\ A'3IH_L^XNS?WB6:>4RC:[ D9R?]D^WJ16?+
MXTD@C6WN-/@M-66W-Q-975_&FQ=S*H#C(9FV$@#C'4CC(!UM%<E9^.[754TP
M:;;;KB_M'NX[>ZE$#$*VTH.#E\YXZ<9S3(_$NKS^.[;2ETY$M&TD7K(TN)-S
M.HY!'5<$8SSGDB@#L"<#)H!R,CI7"Q^-9-:\/W]Y)X6O)-)2"[2Y+3Q<F(E6
M3;N&<@'D<=1S6EINOP&PT73]'T]?/N-,CNXK5I=B6\&U0H9\$]2%& <X/3%
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
M-.?,V[AGD<@XSBKUYXL;;J#:3ILNIC3HTDN1&^UCN4.$C7!+OM(../O 9ST
M.EHK ?Q(]Q?2V&EV#7-W!:QW4\<TGD^4),[$/!^<[6X( &.2.*SX_'UK<6>A
M7UM92-9ZM=?8S)(X0VTV2-DBX/.5*\=\>H- '7TC#*D D9'4=16!?^*8=-:[
M-S$BQQ7,=I$YF"B65U#;>0 H .2<]CU(Q6+=?$NWL]/UF>337FFTIHO-%I.L
ML4B2$!723C(!X(QD'M0!VEK:PV=N(8%VH"6Y)))))))/)))))]ZFJAI5[>WT
M4[WNERZ>R3%(TDE1S(F 0_RDXSDC!Z8J_0 4444 %%%% !1110 4444 %%%%
M !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !7.>,]&O]=T
MNTMM/%MYD5_;W3F>1D&V.0.0,*W)QBNCJEJFK6.BV+WNI7"V]JGWYG!VKVY(
M''XT <AK7@F^\0:KXD^U/;PV.K:;#:1O'*S21O&S,&*[0",L._;WJ^FAZOK%
MYH$^N1VL1TAS.QMY2_VB;84! *C:OS%N><X'O746]Q'=6\<\))CD&Y25*Y'K
M@\U+0!YO/X,\0MX)U3P['_9I\[46N;>9IW&Y#<^?\PV':1C;@9]<C'.Y-HFK
MOXWN-<6*R^SR:0+%4-PV[S-Y?)^3&WG&>OM7644 >>V'@_7+31_!5FPT]GT*
M;?<,+A\.!&Z?)\G7Y\\XZ56U_2;O3M,\6M?_ -EA-?O8$LUFF8KN*I& YVC:
M?E+!AG!YYQSZ76;KD^E1:;MUB..6SGD2 QR0F579V"J"H![D=>!0!S/AXZI8
M^)$75M'LUN;V'ROML&IM<R!(P6 *NBD)DGD?Q,,Y)S6IXJT;4-7N] DL1;;-
M/U)+R;SI60E51UPN%.3\^><=*U=,T/2=%1TTK3+.Q5_OBV@6/=]<#FK] ' 7
MGA'7+G2O&UHJV ?7I&:V)N'P@,2Q_/\ )_LYXSUKMK"*6+3;>&<(LJ1*CA&+
M+D#'!(&?RJS63<^)=(M-3.FSW>V]$?F^1Y;ERF<;@ .5SQGI0!QMKX-\10>#
M_#NBL-,9]'U&"XWBX<"6.)RV?]7PQSC'08ZG.!H7WAC6KB_\9S1K8[-<T^.T
MMMUPP*,L<B9?Y.!^\SQGI[UUNGZI8:M T^GWD-S&K%&:)PVUAU4^A'H>:MT
M<+J'A*ZU30=/TG4]*TZ^AM[!(E87#));W"C&^-]F0" ,G@\#@UU6CVEWIWA^
MQL[JY-[>6]LD<D[DCS7"@%B>O)[UH44 <KX&T+4_#]GJ<&I"TS=:C/>H;>5G
M $C;MIRJ\BD31-5T?QCJVL:8EM=6VKQQ&:&:8QM%-&NP,"%.5*XSW!'&:W+S
M6=/T_4+&QNK@1W-\YCMTVL=[ %B,@8' /6KS,J(SNP55&22< "@#@[3P/?Z5
M_P (C%9O:S1:1<3W%V\DC(9'E5PVP!3QND)&2. !4>I>!]5U4^+@\]K:MJEQ
M;75C-'(SM%) J!=X*C@F,=">#73-XNT%+9KI]05+0#/VMXW6!O\ =E(V-[8)
MSVK;H Y_2KK78;=[SQ2VEV$<4>TK;3ED8Y&79G"[?0+[G)/&,OP/HD5C?ZQ=
MVMSY^F?:I(],48VPQL0\H0C^$R[A_P!LQ76WEE:ZC9R6E[;17-M*,20S('1A
M[@\&GP00VT$<$$210QJ%2.-0JJ!T  Z"@#)\2Z;)JUG#:'3[+4+)Y/\ 2[:[
M. R;3@H=I^8-M(Z=^17+6_@K6+.R\/6L,L$L.F:L]\([BY=C% 0ZI"K;26VA
M^IQTQ[UZ'10!Y]?^%?$LDWB>>RELHFU.]MKB)/M#CS(XU17B<A,KO"GD9ZXI
M/^$1UW_BK@D&DP1ZWI\=O!%%,X6!Q$T>#\GW1NSD#G'05Z%10!Q:^'-8&I>#
M+@I9;-%@DBN@)VRQ:(1_)\G/3/.*U?&6B77B#PZUE9/"MRMQ!<)YQ(1C'(K[
M20"1G;C.#UK?HH XS5O"$_BJXO;G5O+LS+I<NG01PR>88_,(+2$X&3E5 'H#
MSS@7?#<?B]1##XA;3%CMEVF:T=V:Z., L&4!!W.,Y/H.NV^IVD>K1:6TA%Y+
M"TZ)L;!12 3NQ@<L.,YJW0!ROB?0M4N=>T3Q!HQMY+S3#+&]M<N42>*4 , P
M!VL-H(XK"G\%>(;Y=?G,UA9WMUJ-OJ=@Z2M*L<L2( K@J,J=I&1Z].U>CT4
M<7J&B>)O%/AB\L]7EL--O&$;6HLW:54EC=9%D8L ?O*!M X&>23PMQ8>,=;\
M+:M8:K'I%O<W-C+:1I;S.T;NZ[?,9BF5 [* >IR>E=G10!QH\.ZQ_:W@^Z*6
M0CT>WEBN0)VRQ>-4^3Y.0-N><=:RY?!.OO8:F\,]C;:E_;QUK3V\QI(\[0OE
MR?*" 5W XSU]J]%+!023@#FJ6E:Q8:W;27&G3^=%',\#-M9<.IPPP0.AH Y7
M6- \3>*?#4D>H2Z?8:G%-#<644#M+$DD3;@78@$[NF .!ZU/8Z7XBN/'%IX@
MU&UT^VB33'LI8H;IY&#-(K[@2@!'R]/?J:[&B@#FO$FBZE?:YX>U73?LK2:9
M<2M)'<2,@9)(FC)!"GD9SCOZBLR'POK.F0^)-,L?LDUAK,TUQ%-+(5:V>9<2
M!EVG<H/S#!'7!QUKH5\3:0VJP::+L_:9WDCA_=/LD=,[U63&TLN#D Y&#Z&M
M.XGCM;>2>9ML4:EF;!. /I0!5TK38]%T.STRT^>.SMT@BWG&X*H R?PKAXO!
MFO1_#S3= (TXWEKJ"73O]H?RRBW!FP#Y><]NE=:GBO1)+72KE+X&+57"63>6
M_P"]8Y('3C@'KCI6S0!R,>@ZO'XD\3:EY=D8M4LX((%^T-N5HU<?-\G ._MG
MI6?;>$M;@TCP39E; OH,J-<D7#X<+$T?R?)S][/..E=]10!Y]?\ @O5]1TOQ
MO9N]E$==D$EJPE9MI$:( _RC'W,\9ZUV]HMU-IRKJ,4,<[H1+' Y=%SV#$ G
MZX%6J* //+?P3JO_  A*^";MK:32XYE5;T2'S&MEE$@4IMX? VYSCO[5O:+H
MVHV/C#Q%J=RMJ+34C 8?+E9G7RX]AW J ,]>":Z6B@#F_%NC:CK$FAMIZVQ%
MAJ<5[+Y\K)E4##"X5N3N[XZ53UC1_$5GXN_X2#P[]@G%S:I:WMG>R-&#L9BD
MBNJGD;V!&.E=A10!QGB#PS>Z_:1VFK6&GZDGD$K+YAADMK@DG=&P4D* 5&<Y
M^4<')I+'PUKNF^(](U(W5M?F'1ETZ\EGD99&=7#^8 %.[.".2,9SSTKM** .
M*TCPUK%CX!U70YULC>7+79A9)V,?[YG8;B4!&-_8'I5-/"_B72)] U72O[.F
MOK/2DTN^M)YW6*5%P59'"9!# GE>AKT&B@#D=5T+7;N\\.:FDEC-?:=<RRSQ
MN[1QE9(V3"$*2=NX8R!NQVS6IXNT:;Q#X0U72()(XY[NV>)'?.T,1QG'.,UM
M54T_4[35899;.0R)%,\#DHRX=#M8<@=".O2@#FWT77KKQ-X;U:XAT^-=.M[B
M.XCCN78YD" ;<H,XV=\=?;G%'@KQ);0/?64VGQ:M;ZY<ZG:JTKO%+'-D-$YV
M@@[6Z@'D5Z310!FZ-_;#V[3:T+6*X<C%O:N72(#_ &B 6)[\ =![G,T[1M2M
M?'>M:Q*MK]BOK>WACVRL9 8M_)7;CG?Z]JUM,UG3]8-V+"X\XVDYMY_E9=D@
M )7D#/##IQ1;:SI]YJUYI<%QOO+-4:>/:PV!\[>2,'.T]/2@#@=4TB\TCP?X
MALM2_LL2ZWK)>T62=C&3*ZD*S;058!20PS@@'G&*NZ<FLP:C=6U]HM@+_4;1
MHENX]4>=L(IVAPT8*I\QY /+<C)S7<WEE:ZC:O:WMM#<V\@P\4R!U;Z@\&J^
MF:)I6BQO'I>FVEDCG++;0K'N^N!S0!Q]GX2UNVTWP1:LM@6T%P;DBX?#@1-'
M\GR<_>SSCIBMKPGHNI:')J\%W]E:UN-1N+RWDB=B["5]^&4@!<9QP3GV[]!<
MW,-G;2W$[[(HE+NV"< >PJ+3=1M=6TVWU"QE\VUN8Q)%)M(W*>AP>: .?;0]
M3TOQM?Z[IB6]S;ZG;Q1W5O-*8V22+(1U.T@@J2".O?GI65;^"-1TU_#)M6M)
M?[/O[B^O6>5DWO,KA@@"G@>9QG'"CUKOZ* *6L:9%K6B7^ESLRQ7EO) [+U
M92I(_.N4M_#&L7VE>'M)U@6@BT:YAG:YAE+&Y\D$1X4J-N3M+9)Z$#.<CL1>
MVS7[V(G0W21+,T.?F"$D!L>F5(_"IZ .$'A765TSQ+H8^R"SUJ\N)OM@E.Z*
M*;AQY>WE@,X^;'.>.E:%KX>O[#QNVJ6\=K_9R:/'IT*&=O,RCLP)&S&.<=>V
M:ZNH+V]M].LIKR[D\NWA0O(Y!.U1U/'- 'F4^C:AHO@KPUX9G.E-K"Z@98 ]
MRZ*P1GE)23:&1AN4=#U([\6S9>(;O3=9T:VL;+3=8NMEV]U#J+SB?#J&21]@
M>/<BE1@8P#C&*ZN_N_#FM:=I:ZA#;WUGJI4V:SVID60E"ZG!4[?E!.3BM33]
M,L-)MOLVG65O9P9SY=O$L:Y]< 4 <*?!>LW$WB<&'2K*VUG2$LXXK>1F$$BK
M(H'W "O[S);CIC'>K\^@:_=Q^$FEBTY)-(N%EN%6X<@J(FCPIV<GYL\@>G/6
MNUJA9ZSI]_J5]I]K<>9=6!07,>UAY98$KR1@YP>E '*1>%=8TZR\2:/9&TET
M_6)IYX9Y9"'MC,,2!EVG< 22N",YP<=:M:=X7O=(\66MY:);-IEIHB:7$'F8
M2DHP8$C9C&!CK70W&LZ?:ZO9Z5-<!;Z\5V@BVL=X49;G&!@>IJ_0!SO@;1;[
MP]X2M-*U'[.;B!I,M;R%U(:1F')4'^+'3M6#%X.U>U\-:SX3A:U?2[Z6;R+M
MI")((IB2ZE-OS,-S8.<'(SBNWU#4+72K*2]O9?)MHANDD*DA!W)QT'O5&R\4
M:'J-S#;6NI0//.GF0QD[6E7KE <;ACTS0!EGP]?P>-]*U*UCM?[,L=.>QP\[
M"7YF0@@;,<;,=><U:\::+>:]X=-KI[0BZCN8+F,3L51C'*K[20"1D+C.#70U
M0O=9T_3[^RLKJX$=S?.8[=-K'>P!)&0,#@'K0!B1:/K0\=G7Y8K'R6TH69C2
MX?<)!(7[I]WG&>O?':N=L/!?B?1=%\.3Z?+IQUC1Q<0R0/*Y@N89GW$;MH*L
M"%(XZBO3** *.DC4OL>_5C;BZD;<8K<DQQ#  4,0"W3.2!R3QBN<A\/ZKX=\
M3ZGJ>AQVUU8:LXFNK.:4Q-%,!@R1MM((;N#CGH>U=C10!ROB3P]J7BKPY<VD
M\\-E=%HYK18R9$BDC8.I9L G)&#@<#UILNBZIJVMZ=K.H6UK!/IMK/'!!'<%
MP\LH568MM&% 7 X).[MCGK** //+7P=KMOX6\':61I[3:'>Q7$[?:'VNJ*ZX
M7]WU._/..E4?&NC:C8Z#\1=4N5MA:ZE:1&'RY69U\M-AW J ,]>":]1JM?Z?
M9:I:-:7]K#=6S_>BF0.K?4'@T <U-H>IZUJ6DZC<^19/IEM-]G:.0REIY8]F
M[D#"J,G'4D]L<X^D^$O$EKJ7AB^N8=)$VF)/'>2+<2.]RTB*IF+% 2Q*YP>F
M>O8>APPQ6\*0PQK'$@PJ*, #T%/H \Y_X0S7_P#A"SH^W3OM)UC^T-WVE]FS
M[3YV,^7G/;I[U<\3:;::_P"*-%6SOXA?(TMMJ,,+ARUF5W21OCD#<(QS_?\
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
M3+$:9I5K8"5YEMHEB5W #,%&!G'&<"@#SGPKXBU&T\#^%DDO//OM=NVA6:9
M?*RTCR/Q]XG!QGN1V&*ZG2M9OX?&U_X9U"07(2S2_M;D(%8QEBC*X'&0PX(
MR#TXJO#\/+&'P];Z0-1OF2RN1<V$Q*;[1U8LNW"X(^8@[@<@X]*V]/T1+/4K
MC4[B=[K4+B)(7F90H6-22$4#H,LQ/4DGKT  ,"^?4'^+NFVZ:@Z6O]DS3>0$
M!7(EB!_$COV[=ZY:PU36-!\/ZQJ]G<VXM8/$]Q'+:M#N,RR781OGS\I&[(P.
MW.<X'H=_X<CO?$=CK:7MS;7-K"]N5BV[98V96*MD$CE1R,'K63)X @D\/WVC
MMJMYY%Y?F_D<+'O$AD$I ^7&-P':@"#4-=\0:E/KD7AV!C/I<XMX4*Q&.:01
MHY$A=PP!W[1MQC&<GH.NC-S<Z;&SC[)=21 LO#^4Y'(]#@USMWX($OB";5['
M7-2TV6\5%OH[5D"7.T8#893M;'&Y<''IUKIE@$5JMO;GRE1 B8&=H P.M 'E
M/A_4M4T/X4:9J<%XDCG4A$(Y(5( DO&C<YZY.XG-=FNKWK>.-6T621'LXM+B
MNXQLPRL[R*1GN/D'YU%'X"M8_!+>%SJ-V]NLGFPW!""6)Q+YH887!P_J.G%3
MVOA!K?6KC5Y-:OI[VXLELY6=8]I +$-M"X!&[@# ]<DDT <1IO\ R3_X6_\
M82MO_14M=%=:_P")=435)_#EHTLEA?-:Q0.(A%-Y9 D#LSAE)^;! &..M7HO
M <$&C:!IB:G=^3HEPMQ;,53<Q4$*'^7D88],4LO@6(:[>:A8ZSJ5A;W[B2^L
M;=U\J=L8+<J2A(&"5()]10!1G\67,7BUM(OKIM)G>ZA6RBN( 8+R$A"X67'^
MLR7&,CH!@]:F\&/J$WB7Q:;K4'N(X=2\I49  !Y,9&,= ,XQ^)YK1O/"46H;
MX+J^FEL&NTNQ;,B_NW1@P5&QE5RH)'7D\@&K.F^'8M+UW4]3@O+DKJ,@FEM6
MV^6L@54+#C=R%'!..O'H 9^JZSJ-QXCN="TL31R6]DER\L21,VZ1G51B1@-H
MV$G')R.1WR=7\1>*- \,Z3XAU:WA@2%PNM6,6UV"DE=\39QUVDKD\'J"*V]>
M\'IJVLVVLV6JWNDZG#$8#<6FP^;$3G8ZN"" <D<<9JY'X=A2:S+W4\\%M$ZB
M"?:ZR._WI6)&2YRP],,W'- '+>+)M87P?HLS:LOGW.J67FO;HI1D>9<*#W4<
M<_Q>P.*MWVLZ_>7FM:=H@=[O25CC5_+BVSS-&)/WFYP0A#*/EY')SVJQ%X M
MXO"J>'QJU^;>"Y2YM)3L+VS(X=57Y<%01P&!XXI]YX&$NM_VO8:]JFG7<T20
MWKP-&?M848#,&4@/CC< ,#IB@"D-7\47OBV#1?.L]-,VBK>R+Y'G-!-O"LH.
M[#8.<'I[&L3^W=9U_2_ 5Z]\+66\U&2&Y2&,;'>-9ANP>V4SCIS["NUC\+16
M_B*/6;>\GC>.P&GQPX5D6,'<#R-Q;(ZDUGP?#^VMM$TG3H=5OD;2KQKNVN0(
M_,#-OW @J5(/F-V]* +_ (UU._T3P5JNIZ?)"MW:6S2JTL>]3@>@(_SV-9,N
MKZ]87.FV5S=175QK$C/"+6W5&MXTBW.HWOAVSC!..,G!Z5T6OZ)'K_AZ[T::
MXFAANHC#))'@OM/!P2",^]4-:\(0:YI5A;2W]W!>:>ZR6M_ 526-P,9Z8((X
M(Q@T 9*^(/$FGI;Z=JEM'%>W^J?9+&Y?8=T&PN9'1&(W@*PP" 3@],U3U?Q'
MKND2^,+=;^.;^R-+BOK61X%#%F$A*OC (^0= *VKWP-#J.CQ6UWJVH2ZC#<)
M=Q:GN03)*HPI "[0H!(VXQR>YS6'I^AB\\9>*M*U.XO;R"_TFWM9+N6,)YI_
M>API50@(##@#CW.: -MM<U%?%GAZP$L?V?4M.GGE4Q\JZ"/!!]/G.1[5@2^+
M_$*^"KC4TFLC>PZZ=/;,!"-']I$0P-WR\'.3NKH++P4UMJ>DZC<:[J%U<Z;!
M);Q%UB"LC!1@@+_LCD<D]^@J)OA_ ^@SZ0=6O1#-J']HM(%CWB3S/-P/EQMW
M#/2@!DFIZ];:S%X>EN_M=Y)!->M<V=M'&RQ!U5%"R/MZDY//0#'.1#8^(/$4
MM[H_A[588K'5KE;B:XFCVM^YB("L@RRAFW+P<@8;CI6MX@\))KEU8:A%J5WI
MVJV(98KVUV[BK8W*RL"K*< X(ZU!>>"(;AM-NH=4OH-6T]W=-1RC22[QAQ("
MNU@0!Q@ 8&, 4 4OAXD\=YXO2YF$TJZY(#(%V[OW,6#CUQC/O5*2VUFZ^)GB
M:/1=0M[&?^S[(F6:W\[)S-@8R, ]SS]*ZCP_X;30+C4YEU"ZNGU"Y^TR^>$
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
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !117"_%R[UVP\"37>A&4/#,CW9A<K)]G&2^UAR/X<D<@9H [JB
MO,?AKX@_X2;Q-K.H:1=3?\([]G@5;2YF+R17&,MA2257&0>Q/(S@UZ=0 444
M4 %%%% !117DWQGO[K3+WPI+;:E>64=QJ BN3!=R0J\>5R&VL!Z\T >LT5Y+
MX8U^^LO'_BB1=1N[GP/96OG+=W4KS)'(%4L(Y&R6'^LX!/0>V>JTKXA:=J=[
MI%K-:7-F-;A>;3GF*XF5>H.TG:V,$#T/7/% '845X/IVN7"_#_Q_)JNJ:TUM
M:ZPT"36UR7G@CWJ $+MTS@$9Z$UZ(WC>RTNPT^RMH+[4[TZ0-1,>Y?-%NJCY
MW)."['C SDYZ4 =I17$_\+,TS[;X<A^P7ZQ>(%!L[AU14!/56RV0PR.@.<C&
M:ZC3M1.H-=@6LL*V\[0!W*D2E>I7!/&>.<<@T 7J*Y#XDZGJ5AX,OXM%#-JD
M\$GE;#AHT52TCCOD*,#_ &F7UJ;P3XNM_$G@*S\03RHA6 _;">!&Z#YR?0<9
M^A% '4T5XEXT\<W6MV/A/5M'CU;3K*[UA(8[@7'EK<Q!BK!D5L\D<!AR*[K4
MOB+;Z?XGU#P]'HVHW=_969O3Y/EA'C&"3DL,=>_TY)&0#LZ*\^MOBWI5U!H-
MVNF:BEAK-P+6*Z=4"I-G;M(W9(![@8^O-1Z=KEK!\2?&/[[69KFRLXY9;.61
M#;JJJ"#$-W!((/..IH ]%HKSW3OBYI>H'0)1I.I06>MW#6MM<RK&%$H;;M(#
M$]<<XQS['%2#Q7IFC>.?&UY=W>M$Z=:Q27%K*RM BA1M\D ]6R.N.IS0!Z;1
M7$W_ ,0&M_"&I:[;Z1-*MK:1W41$T;12J^[!#JW1=OS#K['K6?#\2SHGPZT3
MQ#XATZ\/VP0Q-)&8CO9TW;P _"G!ZX(QTH ]&HKC)?B+9VL+R7VD:K9;K^.P
MM1=0>7]I=QE67)X7KDGI]>*A;XDV\GA_Q-?6^F7!OO#[O'=6CNH^9<\ALX*\
M'WX/'2@#N:*\<U/Q;-J'P_\ "FI:X=:L'N[^ BXTZ2)?/<@D C?D1GG@\_*.
M*[75OB!8:;J>JV,-I<WKZ/:B[U!H2H$*$9P-Q&YMOS8].^>* .NHKC=2^)&E
M6%QX>CAM+R^37U+6,ELJ$,>."&8$'YAUZ=\8-7_"'C"T\76]^T-K<6EQ8736
MES!/M+(Z^ZD@C_ T ='1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %<A\1/#VI>(M&L(
MM-97:TU"&[FM7?:MU&A),9/3T//'%=?10!YE8^#]9TOQ9XH\5Z+806,U[9>5
M9Z?.ZXDF^4M(X0E5R5X /.23C-=]HCZH^B6;ZU'!'J9B!N4@.4#]\5?HH **
M** "BBB@ KSGXG^%]:\37WAQM*LUE33;T74S/*J @%>%R<D\'T%>C44 8WB;
M1O\ A)O"6HZ0S&W:]MFC#-SL8CC..N#C.*X+3/ NM7.I^!SJ-LMI!X7MG65Q
M*K_:9,*%\O!SM^4$EL=<8KU:B@#Q4?#_ ,2GP+XUT<V""ZUK4A=6W[]-H0R*
MWS'/! 7WZBM(^$O%.B>*_#_B?2+&&\>/2H]-U"QDN5C8;0!N5^01D _A[\>L
M44 >=?$K2CXE\)"Q-S:6_B:T,=_:0139=&W[1CHQ!SMW8 +8^E=UIEE_9^FP
M6ID\QT7]Y(1@R.>68^Y8D_C4,^@Z5<ZU#K,UC"^HPQ^5'<$?,%SG'OSR,]#6
MC0!S(TF?5O$=[<ZI:7<$$48@LGAO6C#)U<D1N#EFQP<C"+T.17$^$? .N:&W
MBSP^UOY/AG6%F%HYG5I+8LI497//RD#.2?E'J:]<HH \/;P)XRF\(>%M ?2[
M4/H6I"=Y_MB[9D#,P*C&1P<<\]./3IKKPKKC?%#6_$"60:QO-%:PB(F3<9,*
M1D$\#*D9KTJB@#Q"#X=^)X?!7@[2381FYT;53>7.+A-I3S"PVG/)PWMTKI(/
M"NN1?$#QGK1L0;35K 6]KB9-Q=8U7YAG@$@UZ710!XC9?#SQ/;>'? EB]C&9
MM"U1KNZQ<)@IYP<;>>3C/7'(K?3PEK:>.O&6KOI-O=6.KV\<,$,\R[90H565
MQGY0P#8/...*]/HH \BTOX9ZE9>'_&>DV!EL],U2%5T^QO)UD,4F#N)*D@*3
M@ Y)( STHU_P7XFU?X4^'?#RZ= M]I\\!D7[2I79$A4G/J2> ,\=3VKUVB@#
MD/'UCXFU31+*'PX$60W4;W<;S>4YA')57&=IS@$KSZ5R>C?#W7;6T^(%C-;6
M-M%KJL;,Q3ED0D/A<;0<#=C) Z=*];HH \=U3P3XHU#X<^%-#&FPK=Z3>0RR
M@72D%(U89SQR=W YZ<FK^J^"=9M]:\:7.G6HNH?$^GB%,RJAMI2I0[\GE?F)
MRN3VQWKU.B@#R>;X>:O87GP\ALXUN;?P]O-Y-YBKN+E2=@)R<$,?IBMOX<>&
MM6\/:AXHFU.V6)-2U)[R K(K?(Q)P<'@\BN]HH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HH
MHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB
M@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ K/
MU-M5W6T>E"U4LY\Z2Y5F5$ /0*1DDX[],UH4C,J*68@*!DDG@"@#B- \0^)]
M<35)(TTHC3=5DT^2(12 RK&RAG4[S@X)(!!Z=:O>&?%+7S:G#K-U8P3P:O-8
M6P4^7YH0+C 9B2WS=JROA==VUP/%HAN(I"?$=Y( C@Y4E<-]#ZUQNJ2:4_@+
MQ_>![1KI=>D:*7*EQB2(KM/7LV,>] 'L/G7/_"0>3]KL_LOV7=]FP?/W[OO]
M?N8P.G7O4UOJ5A=S/#;7MM-*@)9(I59EP<<@'CFN&N;K31\6KN0318D\-,9#
M Z[W_>YX(ZG;R/:F>"KFZM=>L=*:ZL=:L%TQC8:I;#;+%"&0"*91QS\N#P3M
M/'7 !M^(=>U;3_%^@:+8_8O+U87'[R>)V,1B0/V89SG';'O3_#'BN75[W7-,
MU&WBMK[1IUCN&C?,3JREE=2>1D Y!Z>M87C2>T?XH>!H);U8&7[=O*S!&3,*
M[>>V3P/6E\8Z%;^'/#*3:9:RM;-J]M>:PQ9I9)X1(#(7)R6' R.F >U ':G4
MH+S3[F;2KRTN'C4X=7$B*P&<-M/Z9%86A:]J.M>#_#FK-<Z?:W%\T3W"RJ0K
MJV=R1C=PQXQG/T-9DTMO<?$235],NH'T\:)(NH7$4@,3'>#%EAQNQO/J![$5
MR]K<V ^''PSDDFMQ)%J=HNYF7*8#;AGMCC/X4 >NW&I6-I/%!<WMM#-*<1QR
M2JK/VX!/-+'J%E-/+!%>6[RQ9\R-95+)CKD9XKS>/4]#_M3Q=X<\7J3<WM_Y
ML$#AMUW;E4\H1%>205(PIX.?>M'Q%%?^'/%=OK&D6I)UV$:;<(!GR[D F"5O
M4#YE8^@% '=P7,%U")K>:.:(]'C8,I_$5DZKKT*:%J=UI-[8W%W:6TDP7>)%
M!52?F"L#CC'6I+JQL=+\(7%BQECL;>Q>-FC/SA A!(/][&3]:\]M[^ZM-/UG
M3KZ\T[5;6+P_*UIK-MA&\K&U8I@"5W'.5(ZX;CK0!W_AS78=7T?37ENK8ZC/
M8PW4UO&XW+O123MSD#)K0CU.PEO&LX[ZV>Z7.Z!95+C'7*YS7E^E/I=KJ'PL
MDMFM(Y9;*5960J&?-J.&/?YQW[^]9^GZWIMQ=>";JUECM+>+5KA#8KN>2U+I
M-E97.6\QF.=O'7 !QF@#KG\6:TGAOQK?8L3=:%<SQP?NFV.D<*2#<-V<G<><
M_A74->W3>%Q?Q&(71LQ,-ZDINV;N0"#C\:\XEOK1O!_Q5 NH26NKO #CG-M&
MH_,@CZBN_LW6Y\#PM PE#Z< IC.[=^[QQB@"+PGXDBUS0-)FN;JT&J7=C%<R
MVT;@,-R@DA,D@<UKG4K!;\6!O;87A&1;F5?,(QG[N<]*\DTC3M,O?"OP_&CQ
M6O\ ;MM<VKSO;A?-B15_TCS2.0, J0W<@=:FT.XTG5+:#0]>U"_3Q%8ZHTYT
M]$59&G$K,LBMLW%"#DMNQC.>* /6KBY@M(6FN9HX8E^\\C!5'U)IL-[:7-I]
MJ@NH9;;!/G)(&3 Z\CBN8\>:E9:<FAO>I$H;4T\J[N'98;5PCXD?!&>X ) R
M0<C%>?'4?(T/6R)9+BR@\7I<:F!$<FS/ELS%0/NE@#C'(!ZC- 'HEEXJ-WX[
MN]+CN[";2XM,6\6:%LE6,C(0S;B. N>@ZUOIJ^F2R^5'J-H\GE"?8LZD^61D
M/C/W<=^E>8:WJ>@W_C'Q%<07=C<6UQX4.94=621A))CGH2!M_(>E16T6BD?"
MO*V.9(")<[?FS:'(;U^<#KW'K0!Z9>ZDEQX?N;W2=3T\'RV\J[E</ K#NQ4C
M@?6K,FHV=J@%W>VL3B+S6W2!1M&,MR?NY(Y]Q7D.JRZ9_P (9\4+9'M?*2^=
MX8P5P&,,?*CU+ ].^:Z&4Z-=?%31'E-C*'T&5LL5(8^9'M)]> V/8&@#M+Z]
M=[:PGT[4-/2*:XC!DF.Y9HR>5C((^<\8//TJT^I6$5V+22]MDN6( A:50YST
M^7.:\:M+G35\$^%OW]J/L_BW;%\Z_NX_M4AX]%VD'TQBN@NKN;3_ !-)+87=
MIJVG76LQK=:7,,75K/N5?,B8'+*-H;!'W0><9H [G2O$NDZU>7]K87L,TEE,
M890K@Y(522/4#< 3Z@BK4&K:;=1S26^H6DR0?ZUHYE81_P"\0>/QKRVYFDCT
M;XB6-BK/J2ZJ;EK6)<RM;;8"^!CHR!P.QYZU+J-SX4U[1M>URPU2749_["GM
MY7D5$CC7!*(X"*/,W?=!Y&#0!Z='JNG2I,\=_:NL"AI6692(P1D%N> 1R,T^
MWO[.[M3=6UW!-;C.9HY R#'7D''%>7WHL-'\%>$=;LXEAT]9+5]5NK*%'?8(
M657?Y3N"2,"<@D'GK4.MOI4>C76N:)=7>HZ7<ZO97&LS@!HI(4;]YM55 . $
MWX&#W[T =I8>)Y+_ ,?W&CV]S8W.FKIJW:26YW,',A0JS!B#P,]!UIUSXDFL
M/'K:5>SV<&E#2FO?.D^1D<2JF&8MC')[#K6-IFJ:3?\ QDEN-.N[6X2?0$ E
M@<,LC"9NXX) Q^ ]J=K4>ECXM6<FM+:"T;1)$C:\"^6T@F4D#=P6VY..N,T
M=HVJ:>@@+7]JHN!F$F91Y@_V>>?PJ9;JW:Y>V6>(W"+N:(.-RCU(Z@5Y=8>%
MKJ3P!>2:9"8YK'5Y]2T!&'W8U?*( >0KC< /1P:[3PC.=7LI/$DD#POJH1XH
MY!\R0*,1J?KEG_[:4 .N/%5C-<ZOING7MJ^IZ? '9'.Y=Y#';@$$D!><=,BC
MPGXCCUSP_I$]U<VHU.[L8[J2VC<!AN4$D)DG;DUS,=Y9V/CCQW%=3102S6EM
M+$'."R"!PS#V!X)Z9('<5@:*VEVNF_"J>%K2*X9MLKJ5#'-LZL&/7[V!SWP*
M /6SJ5@M^MBU[;"\89%N95\PCK]W.:S_ !1XC@\,:0+R2%KB>:9+:UMD.&GF
M<X5 3T]SV ->=:+<:3JEO'H6OZA?IXALM5>?^ST15D:<2LR2(VS<5((.[=@#
M.>*Z;XFZ=>3Z?HNK6=O)<_V+JL%_-;Q+N=XE)#;1W(!S^!H U[V?Q38Z5)>*
MNF7<Z)N-I%%(F/7:Y8[B!VVKN]JV+G4K"RECBNKVV@DDXC2655+]N 3S5"V\
M5Z'?6\<NGZE;7KRC]W#;R!I'/IMSD'USC'?&#7&PW-G'=^/=,\3-$D]S,TD0
MG('GVAA58Q'G[V"&&!T8^IH ]"N-0LK1F6YO+>%EC,K"255(0$ MR>@)'/O3
M!J^FL]L@U&T+70S;@3+F8>J<_-^%>7^'+5(/&7A>WU_[.VIIX987(GVE]XDC
MVA\]6"@]?0UD(='@^%IN(39)-#XB'E2*5#(HOLC:>H 0D_0F@#V>YU;3;/S?
MM6H6D'E;?,\V95V;L[<Y/&<''KBGKJ-B]Z+);RW-T4\SR!*N_;_>VYSCWKS<
M+H<WC/X@F86#J=/MF.[81DQR[C]>5R?<5FZ9)IEOI/PKN(WM8[EG599 RASF
MV96#'K][ .>^!0!Z%=^(H=!TS6-4UG4K%K2TF81BWX9%V@B-LDYD)SQQU'%3
M'Q;H?]LVFE+J5L]S=1--&%F4C:&"]<]26P!WP?2O,K[[++X#^)\%EY3A-3DD
M$<.#A=D.2 .W#<^QKIY]3TQOB=X=OTN(39W>DW,5M,OW9I/-B(5#_$< D8H
M[<ZE8"_%@;VV^V$9%OYJ^9C&?NYSTH;4K!+Y;%[VV6\<96W,JB0_1<YKRKP_
M<:3JMK9:)KFH7Z^(]/U,S-IZHJR?:!(Q$BD)N*$'<6W8P3FC2[C2=2AD\/\
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
MM!A#(?-E5?E! +<GIDCGWI/[4T\72VOVZU^T-C$7G+O.>1QG->:PZ7H"^/\
MPWIDD$<MN-!FB2&_"M(Z[XQ&'!ZG9G (R!VXJ59WTKQ+&FG7-GJFDW&M>5+I
MSJ%NK"?<5+QD=4&"V".%]J /2[FZM[.$S74\4$0(!>5PJC/N:C&HV+6L=TM[
M;FWE(6.42KL<DX !S@DGBN8\;ZG9:=?^'#>"&$O?-Y-]<NP@M7$3_,P! 8D$
MJH) R<]N?.YKC39/!VH07$T3O#XQ!!F4(P5KE23@@;<KDD#'% 'MEK?V=]YO
MV2[@N/*?9)Y4@?8WH<=#[5SE[XJ9?&V@Z187=A<6M[]H6Y5&WRQM'&6'(; R
M>Q':N+\1%H-;\=6OAHQ)>2:#;&.*TP&9@T@;:%_B"'MSR/:KS:WX<U+QG\/[
MC1[FT:%([J)5B(S"#  L; ?=.>-I[T >E75[:V$/G7ES#;Q9QOFD"#/IDTT:
MC8GR,7EN?M',/[U?WO\ N\\_A7*^+M4L=/\ %/AQ+HQ6L\GVCR+^X8^7"=JA
ME"Y :1@<+GI@X!Z'A=-O+6W\!>%9I9PD&F^*7-U+*-@MU,MP!OX 7[RYZ8W#
MI0!ZMJ_B?1]%TF]U*[OH/)LP?-"R L&[)C/WCT K+N_%+P>,-*LTNK%M'O+*
MXN'GSRIB*#[^[;M^8]NW6N!\17=KJ-G\4FLW6<206<L909WH(ERZ^H]QQCGH
M:Z34;W1=5^)/A1UGL[FV;3[QDRRE&),6TC/!S@D'VR* .]6^LWLA>I=0-:%=
MXG$@*;?7=TQ3$U/3Y;)KV.^MGM$SNG692BXZY;.*\@TR]2UTK2YDDC.A6/BN
M[^UB,@I#&7D\EFQP$#,K9Z#@U-XVBMY5\>7]J\#Z3-I$0=P08Y+T%L%3T+A-
MF<<\B@#TZ^U(21QC3=4TU)$NXHIS,X<8)&Z,888D(/&?7I26OB;2;W7+[1[>
M]A>[LE0RKO'#-N.WKR0%R?3(KB?%]MH-CX>\-7=I#I\(EUG3Y?/C5%+@.N6W
M=\*.3Z5H:5<:?#\2?&-M>O OVF*TE1)<8DC$+!FYZJ#P3TS@=Z .ITZ_:+08
M;O5M1T^1PO[VZMVV0$Y(X))QZ=>M6O[3L!9+>F^MOLCXVS^:OEGZ-G%>-Z#J
M\6E>#_A_?W-Y+;Z-"ES#<W,*JXMYF($9<%6 XWKG'&[WK>:RTF/3K2?P[XAD
ML99M5EO+*\O%5K:>9HR'4+A1L8,P&W'(./< ],M[B"Z@6>WFCFB;[LD;!E/;
M@BI*YSP/?3:AX92:XL8+.87$Z2+;L6AD82MNDC)ZHS98?6NCH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHK'\1>([7PS8PW=Y!<RQ2W$=N/(3<59V"@D9Z9/;)]J -BBN=3Q;&R
M(C:5J$5Z_F%;*81QR;$(4ODOMVDD8^;G/L<<[K'B"U\00^"]7TNXN4AGUQ()
M(R[(>$EW(Z X)#*/7IP<&@#T2D5%4DJH!8Y.!UKFY_&MA;W)1K6\-LNHKIC7
M01=BSM@ 8+;MN6 W8QGVYJ&S\6RR>*/$5C>64EK8:1'$SW+NA5049V=L-G!
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
M+"#ABA1R,@]02#50_$>Q72(]5DT?68["5;9HIVMUVOYQ 7'S9."0#]1C((-
M'9$ C! (]Z7 &>.M<ROBRTO'UBPN=.U*VGL;83R0R*H>6%@P#QE6/]T]2"/:
MJECXNTK3M(\,6]I9:G+!JML/L(V^8^!%O"N2V=V!UR1ZD#)H [$ #H*0*JDE
M5 ).3@=:YJ#QQILFAWVIW$%W:&QNOL<]K,B^:LV5"H-K%3NWK@@XYZU:LO$T
M-YXAN-#:QO(+V")9I!(J% C9VMN5CD$@CZB@#:9%;&Y0<'(R.AI2JD@D D="
M1TK-U#68;2_@TV.":ZOIXWE6" J&$:X!<EB !D@=<DGCOCC_  /K\=EX<O);
MLWDDL^NW5K;6\K[YV;S#MCRS=0H.26P IYH ]!*(4V%5*]-I'%.KG5\9:9'_
M &G'?+/8W.FJC7%O.H+E7X1DVDAPQX&#G/! --N/&,%FVI)=Z7J,$MA9_;I(
MV2,[X><E6#E21M.02#]: .DKG]-\.S67BO6=:ENX9H]1$ $ MRIB\I2H.[<<
MYW'L*>/%5F;[1K46]UNU>W>XMGVKMPJ!R&^;(.".V/>LK_A9&G"P346TO55L
M/MALIK@PKM@D$GE_,-VX@MQ\H;KSSQ0!V+(KJ5=0RGL1D4M<]:>+[*74-1LK
MVUN]-EL;87C_ &Q5 > [AY@*LW VG(."/2H5\;V/]IP:?-9WD,]U;O<6@8(W
MV@(,LH"L2& (.&QQ^- '38'' XZ>U#*K8W*#@Y&1T-<GIOQ!T_4FT9TT_4H;
M36#LM;J:)5C,FTML/S;@2%/.,>]1:9XX:6'Q#=ZGI\]I:Z9?M:HQ:,YP(P%.
M&^\6?/\ = (^;B@#LJ;L7?OVC=C&<<XJG8:BU[-<0R65S:R0%01-MPX(R"I5
MB".WU%4K[Q+#:W-];V]E=W\EA&LETMJ$/E!AD#YF&6VC.!DXQZC(!M$ ]0#2
MX Z"N#\4>*#=V?A>328Y[O3M7OX@TD#(HFC*.WE_,P()*C(.!@$$]JT]0D'@
M;P1JE_86UW<BWCDNUMIYPWE9&2H)/"+Z GOC- '4TU413E54'D\#UKSS5-5N
MO^$J\$7SV^H+)<0W?F6B.#YI$(*G8KE.I."2,9Y(KHK+QGI]YI#7Q@N8)5O&
ML&M)@HE%PIP4^]M]\[L8YS0!T1 .,@''(H**RE2H*GJ".#6-H?B:SUV[U&RC
MBE@O=/=4N8)=I*AAN1@5)4@C.,'L<XK"74)_$WQ&U70C<30:7HEO"T\<$C1M
M<3R@LNYE(.Q5'W01DGG(XH [; &< <]?>EK!;3XM"OY-7;49XM*@LY?/@GG>
M2-""K>8-Q.,*K CZ8'7+8_%UK]NL+6ZLKVS.HHS6;SJFV8A=VSY6)5MO(# 9
M^O% '0$ C!&0:155%"J JCH ,5QP^)&G?V?'J+:7JJV!O#92W!A7;!()/+^8
M;MQ!;CY0W7GGBKL?C.U^TZG:W.FZC:W&GVPO&BEC0M-"21O3:Q[J1@X(]* .
MEHQSGO7(6/Q$TV\O-(B?3]3M;?5T4V5W<0A8I'*[A'D,2&QTR,''!/6K47C6
MPENK-/LMXMM>WDEC;W3(H1YDW9&-VX E& )7M]* .D90RE6 (/4'O2%%9-I4
M%<8P1Q7'S_$?3[>UO[MM+U7[+IUX;.]F\I L!&T;CE\E?F'W<D=2 ,9VH?$5
MO+XIG\/&UNH[J*W%T)'"".2,G;E2&R>>#QQ^5 &P  ,#@452TG4TU?3TO8H)
MH8W9@@EVY8 D;AM)&#C(YY%7: "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH *YCQUIM_JVC6MOIUJ;B
M6._MKAAO5<+'*KGEB.<# KIZ* .)\3:5K,?BBP\1:7I-OJR"T:SNM/GE2-@I
M8.KHS97(.01Z?H:QI.L7T/AJ1-+A22TU9+ZX@MY$"PQA77:"=NYOF';'7VKM
MJ* /,-9\/^*=3:Y-QI<5W<V^MQ7=K<-=J%-JDJLJ1J?N$*/FSC/7+5I7GA?5
M;_5_&%O+!''9:_911K=+,#Y+K"T9&W&3R0>PQGOQ77W>L:?87UG975TD=U>N
M4MXCDF0@$G&/8&KU 'G]CI/B'6="N=&UC0K#29&LY;66_@E23SRT90-&J@%1
MSN.XYXQ@YR*J:7XKNM-\(V5SH<<<VB7\+7$PNT\N5$B>/>F/FYR#@@$9Z'DC
MTJB@#F_'>DWNM^$;FSTZ-9;OSH)DC9PH?RYD<C)X!(4]:HQZ=K&F^-I_$,>G
M-<V^IV4<-S;13)YEO)&6VD%BJLI#$'!X/J*[*LZ/7M+FN-1MX[R-Y=-4-=JN
M3Y(()&?P4\#TH H>#]"ET#1YHK@K]IN[R>]F5#E4:5RVT'O@$#/?!KE+[PSK
M[^%?&FBQ:<DC:I>7%Q:3"X4!Q*5(R#TQ@YS[8SV]$L;VWU&PM[ZTE$MM<1K+
M%( 1N5AD'GGI4] '$:GH&H:OXJMKA[.6&Q?1+C3YI3(A:-Y2AZ!N<!3T[XIO
MA"R\16<5EIFJ^'].MOL*B-]3BE1_M*J, H@&Y6/&=V.^.O'5WVL:?IMQ9V]Y
M=)%->2B&W0YS(Y[#%2W]_:Z78S7M].D%M"I>21SPH'>@#"\4V^M3ZAHYL+;[
M7IBR2?VA:K.(FD!7$9)/50<Y7OQP>E<?:^$?$NGZ;87%OIUL+O2-;N+V*T2Y
M 6X@E9P0IP I"N,9QT.0*]1MKF*\M8;JW??#,BR1MC&Y2,@\^QJ6@#S+5= \
M1ZJ?&LJZ-Y(UO3H+>V1[J,NKJK@[L' ^_P"IZ<9K<ETS4Y/%_AG41I\@MK&Q
MG@N"9(\J\@CQ@;N<;#G'J*Z.QUC3]2NKRVL[I)IK-Q'<*F?W;$9 )^E7J /,
M;GPSKTW@GQ!IBZ8WVJ^UQKZ%3-'CRC<)+R=W!PI&/7'UKHDL-27XB7FM'3Y3
M9R:3':H1)'N,BR.Y&-WHX&?4>G-=910!YGI'AG7;/1? MI-IK>9HUR\EWB:,
M@*4D4%?FY^^#^!JZ?#%^?%L.LZ?83:3>G4&-[-#<+]GO;4%L%XPQ)D*[>=HP
M<G-=O?7]IIEF]Y?7$=O;1XWRR-M5<D <^Y('XUDGQKX95I%.N60:(!I 91\@
M/<^@H XZ]\,>(6\$>)M!CTU));O4IKBUE%P@$B/.)02#]W R#GG., CFNF\1
M0:Y=ZEHSVMB;G2_WGV^S-PL3%B!Y98YPR [LJ"<Y'!Q6S9:YIFI7US965Y%/
M<6R(\R(<[%?.TYZ<X-:% 'EUCX5\16/AK0K;^RX#/I.OR7IACN5Q)"S3<J2
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
M9)/0"@#C_P"R]7A\::/K,5@)(!I+6-PK3*K0L71\]]PPI''?'3K6')X9UY_
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
M$,TUO80W5C<SVK1AF<N-K+D;ER@P1C@]^M6;_P !Q:C'XC2?4IP-<>*20QH
M87C"A"OJ/D7(.<^U7--\+2V/B637)M8NKJYFM$MID>.-4?:6(.%7C[QX'ZT
M<Y:>/+V=_!MP\T"VNK@PWZ_9SN@GY4+G=A09 R<Y/'UKL]#NKJ^LI+NXDC:*
M69S;;$V_N=Q"$\G.0-V>.".*QKCX?:3/I>MV.Z9%U:Y^U,ZMAH7#!QL/8!]S
M?5C6Y=Z;+)'I\5E>RV$5I,CLD**1+&H(\HY'"GCISQ0!<F@BN$"2H'4,K@'^
M\I#*?P(!_"N)T$!OB[XR! (-G8 @]_EDKNJP-/\ #36'BS4]?^W-))J,<<<L
M)B 51&"%VG.<\G.<Y]J .3DCU&T\<^+!HD]K:-;:59,IFA,HPHFVJ%##KCKG
MCT.>-*S\8W^M0:+!90-%=7VD)J4[11K(8]VT!5#,HQN+9//  [Y&NWA=O[:U
MG4TU!E?5+9+9T,0(C5 P4CGK\[=:RV^'GE66B#3M;N[#4=(M_LD%[%&A,D/'
MR2(P*L. ?KS0!O\ AJZUB[T*&37K%+/4@666-&!5L$@,,$X!&#C)Q7+_  ZE
M;4M>\::I>?-?+K,EB-W5((@!&H]!R3[GFNTTVQ_L^R2!KB6YDR6DGF(WR,>K
M'  'T   P!P*QYO"A@U^XUK1M0?3KJ["B[C\H2PW!485F0X(8#C((]\T -\3
MW\'A>VFUBWMXSJ%_+;6*EONLY<JA;'8;V)]0,52OM>UC1O$J:+/+;7 OK&:X
MLKDP$;)8L%T=0W*D$$$$'MSUK3U3PK;ZYHMU8:I=3SR7&PFX3"-$R'<AC X7
M!Y[^Y-(/#4L]S]MO]0^TWZ6CVD$WD!%B5\;VVYY9MJY.<<< <Y .6L_%?B>7
M3?!^I/-IK1ZZ5@D@^SL/*=HF<2!MW."OW<#@XS_%3M0\7>(-+T'QH'FL9]0T
M!D:.?[,RI*CQ+( 4W\$;B,YQP.*VHO XATSPY8)J<GEZ%*LL#&$9D*H4 ?G^
MZQZ8INH>!%U%/$J2:G(JZ_Y8N-L0_=A$"#9S_= SG- %>75O$T?B^TT;[7IW
MEZE8R7$3_96S:M&R C[_ .\R'_V>>?8T/^$RUQ?",-\QLC>0ZX-*NF\EMLJB
MX\HN@W?*2.><UT[^&Y)/$.G:RU^3-8VKVRH(1M</MW$\YS\HZ5F'P"&T:733
MJLNR35/[4+^2N[S/,\S;Z;=WXX[T 5$GUJ3XA^)X8M41(K?3K9H4:WW"/=YW
M3YNN1DDYSQV%4_#/B'5+?P9X2@:4W=_K$982"(;D58R[G!8!FSCG(ZDX.,'K
M/^$94>*+C6UOIT-U:I;W-LJKLEV;MIR1N'WSP#Z5C?\ "N8E\-:=I2:U?I<:
M5()-.OE""2WP" N ,,,$@YZT 1KXE\267D:=J>G;+V\U%K:SG54S+ (VD+E!
M)@. I7&X#)!]JW/#=UK\SZA#K=EY20S 6EQ\JF>,C/S*K-M8'(/0'C JA?\
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
M&Y4E3D''*#D<]:S5\"6\=E?Z3%?2KH=].T\MCL!*[CN=$?\ A1CG(P3R<$4
M=#/.]SHSW%G+Y3R0;XI&3=MRN0<5PWAC5=9B^'GAF[EO[<_;=AN+B5/WBJRL
MV$7)\R1FP.!W/!KT,QHT1CP A7;@<<5QEM\/?L>G:);6^O7RRZ+*S6<QCC.V
M,J4*%=N#\I(R>: .;UGQ'/JOA"UN]1 WZ?XKAMF>.%E+I%<##;.2&(ZCU_*N
MG;Q7<Q>$;OQ7YEO/82JKV%NB_, Q5$\Q\XSN/( &WIR1FF?\*\5;:2W76KMH
MWU<:M^\C0D2A]^. ."W7\,8[V$\!68MM;T^2YD;2-79GDL%4*D#L.6B/5<L-
MV.1GH!0!/I5YXE_X2-K:^LB^DO;;Q=,B1M',#RFU7;*D<@]1C!)KIJY;3_#.
MHZ;IUPEUXGU*_F6W>&UFDBCW6X(QN  ^=^G+9Z>YSKZ!!J%MH5I#JEPUQ>(I
M$DK@!FY.-VWC=C&<<9S0!RD_BW5KGPKJ_BG33;?9=.FGV6<D9S-#"Q#DOG*L
M=K$8&!QD&G6_B#Q#K?BBYL-*N=/@LUL;2_B>>V9G*2LV4.'ZX7KV].<B^? \
M*0ZM86]_+%I&JRO+=680$@O_ *P1OU57[C!ZG!%7[+PVMCXHN=:BNB!/;1VO
MV81@(B1DE<'KGYC0 [Q5KS>']'2>)$>ZN+F*TME?.WS)'"J6QV&<GZ5SD,&H
M1?&$+/>13N?#TGE2&#;M/GIG(!Y&>>H]/>NH\2>'K3Q/HDNF7;RQ*S+)'-"V
M'BD4Y5U/J"*S;+PG>0>(8==NM>N+J^CLFLN;>-$92P;)4#/4 \$?EQ0!ST'C
M+Q!<>#?"^J1G3Q=ZIJ@LK@-"VP R2*"OS<8"#KG.>HK1.L>)#>76AI+#/J=C
M:I--<V]JNQWD:3RQL>0;0%09P3DG@C',T'@$6^@:-I*:K+Y>E7POH9#"NYW#
M,P#=L9=NF#TJWK7A"34->AUS3-:N](U)81;S20(DBSQ Y 9'!&02<'MF@"KI
M^OZWJE_9:+<V\6DZK_9OVV]! FV,7**J8.,$JS$Y.!@=3D9NH7/B<^(? ]O?
MW=K:74[W7VJ&WC,D32)"^&R2"05/3L3WP*U]2\$">]T_4M,UB]T[5+.%K<W:
MA)3/&QW,)%88;+9;V)^F+%YX12Y?1IH]3O(;O2Y9)%N?D=Y3(I63=D8R=QZ#
M [#% #/B)<WEG\/M<N;"Y-M<16DCB0+D@ <X]#[]JP=5BU'_ (2[P+''=6YN
MS:WP$SPG:H\N/G8&YP/<5VNN:1!KVA7VDW+ND-Y T+LA^90PQD9[UDKX4F_M
M30]0FU>:>?28Y8U+PJ!+Y@"MG&,<*,8_'- &+8^--3.F1VMPD4VJMK<^D"6&
M/"MY89C($+=2JXQNZG\*Z'PW=:_-<:E!K5EY<,,J_8[HA%:>,C)#(K-AE/&>
M <CBLJ;X>6]QI5Y:2:G<K/-J;:K!=0J$DMK@G.5[%>V#V)Y].@T32KG387:^
MU2XU.\DP'N)D1.!G"A$   R?<DGGI@ Y^6;5'^+T=JM^HLTT8SK 8LCF95;G
M/4[1SV]*K:9XLU9O$7A^QO)+6;^TQ<K<I;QDQP21KN CEZ/C!5NO/ITK?O\
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
M7+;E)R1P><>U9\._2/ 'A755O;\R:PVFVNI7+W<AV0MRQ&3A,Y"EA@X/7/-
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
M3@<9P..35^@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
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
MN,RVX#[O-0#.Y<=1CIZ]J=:^)='O=+74;:]66V:4PJ41BQD!P4V8W;L]L9H
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
M6(&!UKFO#+ZGX<T_P=J]WH^IR65O8W-C=Q):NTML[R*ZR>7C<5(4#(%>RT4
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
M=K:->VB^>CBYC4X89!PK#(R,GZ^L-AX^FNM(LM3GT*:WM=16W6P)N$8SS2G
MCQU4#KN/8$^U6KO0=1U36_[8N8K6*:VL);2T@6=F!>4C>[-L&!A0  #U)]JS
MO^$*U.3P!X?TDSVD6KZ'+;W%M(KL\+R1< -\H.U@2#QQGO0!K?\ "4W*:I?Z
M--I8&KV]I]M@@2XW)=19VG8Y4$,#P05')'.#FGZ5XI_MC1]"U"TM$;^U>?+\
M[F%0I+$_+R5QM(X^8@9[TMEHMU<>+!XBU*."">.Q^QPP0RF0 ,^]V+%5YR%
M&.@/K@1>&_"KZ#J^K3^>'LYKAY+& #_CW63#RC_@4@SCT H S;'Q9I>FZ=K5
MZFEIIQ77#93^;*%62=M@,KN,A0<C)YZ>]6/$VM1Q>%I[C6M 6YMTO8(C$LX:
M-P7CV2AB!D;F';L:AL?#6LVEIK<,UKI-W%J6KO>/;S2LT<D#J%*-F/AAM!'!
M&:H2^ =1A\&ZCH>FM;117.HQ75M:S7+M':1(\;E%;:2<E&., #=WQR =3<^(
M)GU6^TS2;%+VZL(DEN0\_E %P2B*=IRQ"D\X R.>:R(?B%#?MH/]EZ7<W2ZS
M',8BTBQF-XA\R.">"#P?H<9Z&RFAZMI7B_4M;TU+2XBU:&$75O-.T9CFC7:K
M*P0Y4J<$8!X!]JSM.\#WVD7_ (6:UDM)8-*-W)=N\C(TDEQRQ10I& 2<9/3%
M %N'Q] ='^U7=HME=+JC:5)%/< 11S#/)EQ]T@<''4@8KI=-NKF[MW>ZM/LL
MJR,FP2;U8 \,K8&01R.*Y&S\+ZQ;V>K6UU9Z1>V^HZQ+>S6TLK,CP.N-IS'P
MX8*1QCCJ*V?!OAZ3PSH\UBTG[AKF26WMQ*TBVT1QMB5FY(&"?QQVS0!;U36U
ML-0L--AB$^H7Q<PQ,^Q0J#+LS8. ,@< G+#W(YW6/%]U/X2\5BTMOLFLZ-!*
MMQ$TW^J_=%TE1@OS C!&0.G.*T_$.@7MUX@T;7]+>$WFF^;&\$[%4GAD ##<
M <," 1Q]:S[WPEJ%UIGBZ5?LBZIXAA\@J96\J%!$8D^;;ECRS'@=<=LT 7O"
M&BVEO8V6K'3H+74);&*%Y()"WFQ@!@6X +9SR03[U'JNMZM!X_TC1;>VMVLK
MFUGGD9IBK,5*#IM.,;LX[^V.=W1K>YM-&LK6[6(3PPI&_E.64E5 R"0#V]*R
M=7T34I_&.C:W8-:E+6">VG2=F4A9"A#+@')&SH<=>M '':!X@;PGIWB.X32&
METN'Q'<)/*DJIY*M(B#:G\6,C(XXZ$]NJN=9T^R\<7ZS:4RWEKHWVIKX$%I(
M Y_=J!S]X,><5BW7@O7KCPAXDT@'35GU75'O8F^T/M1&D5\-^[SD;,<#O6Q<
MZ)KC^,KK7+<V,:R:-]AB#2LS+-O9PQ&S!7)QUSQG':@#2T+7I=;2&=;6#['/
M;B>*YM[GSD/(^0_*,,,_YP:=XLBCF\(:RLB*X%E,PR,X(0X(]Q61X=\)/I'B
M>XU>*UM=,AN;7R[BRLIF>*:?<#YNTJH7 !' R=QSC'._K]I<ZAX?U"RLQ"9[
MFWDA3SG*J"RD9) )[^E 'E.CP2MIGP]F\,P72:FWV=]4ECB=8GMC'F4S$C:Q
M)QC.3GI7=7?CA;?2;S6X=/:XT6RG>&>X27]YA&V/(B8PRJV?X@3M) Z9U/"6
MF7FB^$]+TJ^\@SV5M';LT#EE;8H&>5!YQTQ7-1>#-6M?#FL^%8)+1M)OY9C#
M<M(PEMXIB2Z%-N&(W-@[AG/.,<@$MJ8?^%OWMS:QJXF\/0RYCP/-/G/@Y]2
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
MIO+>"58C D:P$IEMI49()(Z^E &_17(>*=1U"#49H+/4GBV:;).EM:1HTWF
M\2.7!41@# R1DYZXK&BU[Q!J\_@>.'519C6]+EN+HQVZ,5=8XVW+N!P<N>N1
MTX- 'I%%>3-XE\56JMI4FJH]Y9^([?36O&MDQ<02@,NY1@!@#@[<?AUJUJ6L
M^)O#]UXITJ766O&MM%;5[&\>WC5XBI93&P"A2,KD<=* /3Z*\^.JZWIZ>'X;
MG6GGE\0SPH'-O&HM%$)>39QR6( &[.,FJOB'Q'KNA2>*]+CU!I)++2!JMC=O
M"A=!EE,;  *?F7(.,XZYH ]+J"\NDLK&XNW25T@C:1DB0N[ #.%4<D\<"N%-
M_P")-+\3^'8[G63>66NQR121&VC3[+*(C(KQD#)'!!#$_P"%'2=2\3W7PSN_
M%4WB)S<)IMU(D(M(@HDC9RKYQUPF".F#ZC) /2[>9;FVBG57594#A9%*L 1G
M!!Y!]J>652H+ %C@ GJ>O]#7"76KZK-::=Y>J.LLNB_:C!:1(T[3$+^\;>I1
M8QSU(R3CGI65%?ZCK^H_#6_FU&X@DO[6::9( @3S!;Y+!64\G<1SG /&.M '
MJ-%>?'5O$^NVM]J&A3+%+9ZE+;I#,\8@9(I-C"3*EP6 +9!&,CMU[Z9&E@>-
M97B9E($B8W+[C((S]0: '*RN,JP(R1D'N.#5>^T^RU.U:UU"SM[NW8Y,5Q$)
M$/X$$5YCX6UJ_P!/\">$8!J$[W.N7Q@:>8(QA&Z1W*_+RS;<?-NY;/;%=9I>
MJ:C:^/K_ ,-WEP]Y;FP34+:>1%#Q@N4:-MH /(R#C.,YS0!TZ)#:PI'&L<42
MX554!5'8 "J-EKMEJ&LZCI4!E^U:>(S<!XF4#?N*X)'S?=/(XKG/B"EPUWX4
M6"_N;99=;BB=8=N&!21@2&4Y(*C&>/;IC'N8=1'C#QU)8:M+936^GV<HE2*-
MV=ECE(SN4KCCD  GL10!Z;17 67B;5->?1[&%I()[K0XM3F>V,:N6DPOR^8"
M-H.3T[K^/4^&CK/]@VZ>(&MWU--R3/;GY6P3@^Q(QD>N: -:HYYEMX))G#E$
M4L0B%C@>@&2?PKSWQCXCU?28M=O;'4C(=/DM_*@MXD:.%3LW+.S#EFW'A3D
MJ<#.:V5U*]UWQ5K^DVU_+8Q:1%"@,2(S22RH7W-N!^4#: !C/S9[8 -_1M7M
M->T>UU6Q9FM;E-\3,NTD?3M5ZO(O!]]JL6A_#G3;+4FM;74+*X6=5A1S\B;E
M(+ X//TX&0>AFN];\36OA#Q1J(\02M/X>OY88B;:+_2478V)?E]'Q\@7UYH
M],;4(UU:/3C%<&62%IA((B8@ 0,%^@;GI5NN4EU/4?\ A9-MI:WA6PN-'EN?
M)\M?EE62-0V<9/#'CI7*Z?X@\2?\(SX?UZXUMIFGUK[!/;_9XU26)KEXLG"Y
M#  8((''(/)(!Z5;ZA'<ZA>62Q7"O:;-[O$51]PR-C'AL=\=#5IF5%+,P55&
M22< "N'_ +7\0OJWCBRLIA=3V$5N=.A943:SQEBN<<G/3=[5S7B3Q"VL_#SQ
M4;;5]3AGMH(EFL;N%(;FW)8AE;"C*,".1Z'G'% 'KU%<-K+Z\OC'2]!LO$,\
M$-WI]S(\S6T+R*Z,FUA\H&?GQC&,>_-9VM^(-;TF.YN(]7:\>TU2VMF$$">0
ML;-$C)*2,^82S$A"=N5Z4 >D[UW%<C<!DCN!_D&JNF:A'JNG0WT45Q%',,A+
MB(QR#G'*GD=*Y#2(;R;XG^+5&JW86.VLMB$1LJAEFP "O !R1@CD\YK/T'Q=
MJNHZ)X(M;B[*WVNF=KB\6-00L2LQ"C&T$_*.G3/?F@#TJJM_IMAJL'D:C96U
MY#D-Y=Q$LBY'0X8$5YQXA\3Z_H]AXTT^+46:XTBVAO+.]:%"^R3.4<;=I(*G
M!QR/I706=[J]E\1(=*N]3:\M+W2Y+ORWA1!#(DB+A-HSM(?HQ8\=: .O1%C1
M410J*,*JC  ]!3JYWQGKLV@Z-!);;5GN[V"RCD89$1D<*7([X&3]<50>^U33
MO'5MH$NHSW%GJ=C+-#,R1^;;2QE0V"%"E2&'4'!]N* ->/Q3ITNIV]E&+AQ<
MRR00W*PDPO)'G>FX="-K=< [3@G%;)95*@L 6. ">IZUQ/PH@EC\"6TCW<TP
M>>YQ'($PF+B7)&%!YZG)/MBCQ!'<O\4/"T<>HW4,4EK>,8H]FW*B/G!4\D,0
M3Z=,<Y .ET?7;+75O&L3*19W36DOF1-&1(H!(PV#_$*G.H1C5QIOE7'FF#S_
M #/*/E8W;<;^F[VZXYKRJ6]U;1M!\;ZYINIO;FPU^67[.(499_\ 4AE<L"<$
M'C;M(]3V[*YU35H_B-/I<%RKVIT-[N*WD10HF$H4$MC./Q[F@#KJS=<U[3O#
MFG-J&JS/#:(0&D6%Y I) &=H.,D@5S/@[Q'/JFJFPU"[OK?58+3-WI=_ B,'
MRH\V-E4!DSN'!/4=*3XPY_X5=J^.NZW_ /1\= '1V'B72M2U%].@N'2^2,2F
MVN()()-G3<%=02,]QQ6M7"ZMI.H)XH7QIJ:VL4&AZ=<&&VM96D>8E26+,57
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
M2H?;D9 '.* /3:1F5!EF &0,D]SP*YS1=9/B+4HKW3KUWTE+*-V7:F))9!N
M)QD%4P2 1]\>E9_Q(%P;#0A!>W%L'URRC<0E?F!E7KD'." 0.F>H- '10:[9
M7.OW6B1F7[;;0K/(&B95V,2 02.>0>GI6E7G=S97UQ\3M5@M-6GLY5T&VS<I
M%&TC$2RX/S*5'/7Y?IBH]#\6ZMXBL_#UH'DCNKS1S?W$MN8T=V#*GR[P5 R2
M2 .XZ#.0#TBBL?PQ_;2Z*D?B!X)-1C=D>2$C#KGY20  &VD9 XSTK8H ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ K*U[0;;Q#9Q6MU-/''%/'<#R6 )=&#+G(/0@&M6LOQ#K]GX:T
M>74KW>R*RI'%&,O+(QPJ*.Y)- %67PEI]SJ>H7UV\]R=0M!9W,,I7RWB&<#
M4$?>;G/>H-&\$:;HUO);FZU'4+=H6@2'4+DS)%$PP44= "..<G'&<4Z]U7Q%
M8:/-J,NCV<ICC,C6L-TQD0 9ZE,,1W QWQGC/0LZJ5#, 6. ">M '.Z#X)T[
MP_A(+K4+FWC4I;V]Y<F6*W4\%44^W'.2!D9P33-#\":9X>NA)976I-:QLSV]
MC-=,]O;DYY1/Q.,DXSQ73%@.I ^M)YB$*=ZX;[O/7Z4 <ZG@NQ\BVAN+N]ND
MM;>2VMO/=2T*NNQB&"@D[>,L31=>"M-U&&XCU.:[OVFLFL?,G=0Z1,02 54<
MDJIR<GY1[YZ)G1 2S*N!DY.,"EWKN"[AN(R!GG% ',1^!;%+U;UM1U62[%DU
MBTTESN+QDYY!&,CZ8[X)YJ<*O@KPW8V5CI^J:K! 4MHHK<(\J)C@G)4;1@#/
M7D5=DU&;3DU2\U=[.WTZU_>12I(2WEA06+@C .<XQGC%2G6;$75A:F8"XOD:
M2"+^(J%R21Z#('U(H I^%-#BT#0UMDMX[>2:62YFCC.5621BQ4'N%R%'LHJU
MK>AV7B#3OL5\CE!(LL<D;;7BD4Y5U;LP-7RZ!PA9=Y&0N><4%T#A"P#'H,\F
M@#"G\)VEW:ZA'=W=W<3W]M]CGNG*"0P\_(,*%4?,W09YZ\#&KIUBFFZ;;6,<
MLDD=O&L2-*06V@8&< =JM4U71\[65L'!P<X- &'J7A'3]3UIM5DGO(9Y+7[)
M.L$Y19HLD@,!SP6/((//I7+W7ADZ9XJ\%V&FMJPLM,M[J(W:J9#%N6-4#,5*
MX(4C&,#';K6_I^OZIK-V+C3+2UDTR._ELI_,<K*HC)4RJ>A&X$;<9Q@Y[#I6
M=$*AG4%C@ GK0!P/C#P\+?3=)MM/AOYI9->@OKNXAC,DO#?/*Q5< @8P,8P
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
M5]1U-;R[6XU"!;>;!3:$7.W:"O&-S?G6T'1F(5E)'! /2E) QD@9Z4 <E/\
M#O29=,TFTCNM1MI=)4QV=Y;3B.>-",%-P&"N .H-=)IVGPZ98QVL#2NJY)>5
MR[NQ.2S,>22:L>9&0I#KAN%.>OTH9T0J&=5+' !.,T 9+^'8&\13:XMW=)>2
MVGV,[2FU8P2PP"O4,2<_TXK/A\"Z=!I.CZ9'>7PMM(N!<V@WH2KC.,G;R!N;
MCW^E=+*_EQLV4!QQO;:">PS6)X1U^;Q#X<74[N&*VD\^>)D1RRKY<K)U.,_=
MSVH BE\$:-<-K*SK/+;:P=UU:M*?*+X4%U Z-\J\YXQQBH[/P/96NDW>GOJ>
MK7:W,#6IEN[KS9(X6&"B$C"@CJ<9X'/ QTP(90RD$'D$5@>'_$%QJNHZY:W<
M$%N=.OA:IY<A;>#&K@Y('/S=,4 87C+1)(/#'A_2+%=0N$M-3LSYD49>2.&-
MQEB57^%1Z9..];MSX2LM0M=22[N;N:74K<6UQ<.4$GD\_NQA0%'S-T&<FN@R
M,XS1F@# U3PAIVL>'[72+R2Z9;0H]M<I)LGA=!A75E PP'&<5%+X*T^XT,Z9
M<7>H3L9H[@WLMP6N/,1@4;<1@8P, #'7CDU'XB\7)IWA77-6TE8+V3269)4>
M0JN]0I89 .<;@,<<@C(KI()1+$K9&XJ"P!Z9% ',WO@#2KZ?49)+G4574K9;
M:\C2Z(68*I57;ON /K@]P:MIX0L([_3+Y+B^6YL+<VR2"X.98R0VV3U&Y0>W
MITXK=#HS,H92R]0#R*R?$7B&W\/6D#R1/<75W.MM:6T9 ::5N@R> .I)/0"@
M"B/ VDG2-0TR=[J>"^NVO7:20!XYRVXNC* 5.X CTJV/#-NPNGN+R[N;NYMO
MLC7<I3S%BYRJ[5"C))).,GC/08CNM2U[3XK>:XTRSFCDGBBE%M<,6A5W52WS
M(-X .3TZ=*W2ZA@I8!CT!/)H YZ+P98PIH2)=WNW0QBS!9.!LV8;Y>?E)'_U
M^:TM>T2S\1:+<:5?>9]GGVY,3[74JP964]B" ?PJ^SH@)9E7 R<G'%+O7<%W
M#<1D#/)% ',?\(+IYN;VY>_U-[B]LQ97$CW.3(@W<D$8SAF'3 SP >:GB\(6
M<4NA2+=WF=$0QV@+)C:4V'=\O/R\?_7YK?+HOWG4<@<GN:4,I8J&&X<D9Y%
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
M,=Z //=!TF+49/AY:ZW']J$]IJ49$_6> $>2&]1L((KI-,LM+NM?\7:+K=O
ML%G##':1S8Q#8B( &,GH P8DCH<9Z"O0)-/LIKA+B6TMWFCQLD:,%EQTP<9%
M-NM-L+Z6.6[LK:XDB_U;RQ*Y3Z$CB@#RQ(KVQ\$^#?&VJ1&34=)"_;GD3,CV
MDF4+-W+*I1_7AO4UH^--.AB^'-QJ$]M'%>7FH6MW(2H5D9KB, 'W5,*?H?6O
M2I(TFB:*5%>-P596&00>Q%1W-G:WL8CNK:&= <A94# 'UP: /-_%9FT[7-5U
M?R+/6=*2>V6^M6^6[LG 0HT+?Q#YE;;QR3CJ:@UQ[RQU_P"(LNB*5U#^QK61
M/*^]NQ-EA_M8Y'OBO23I.FFY6Y.GVIN$QME,*[AC@8.,\5(EC:1W3W4=K EP
M_P!Z58P';ZGK0!Y]<6]BU]X%OO#:1 W;F.;R0,369A)?S,?> (7D]&/J:YFT
MT[3[;P#I>JPP1+?0>)@D-S_'&AOF4JI[*5)R!P<YKV2WTO3[1Y7MK"UA:;_6
MF.%5+_[V!S^-,_L72O*\K^S+/R]V[9Y"XSZXQUH P?B5=7MGX!U.XL?-#H(_
M-,6=ZP^8OFD8Y^YNY[5G7%G:Q?$+PU)H4=NMG>V5R+]+=1Y<MN$7RF8#@_.P
M /H2*[S:H7;M&W&,8XQ5:TTRPL$D2SL;:W63[ZPQ*@;ZX'- ''?#2RL88?$,
MUM;6R2+KE[$'CC4$().%R.PXXIH@TV'XV7+SQ6B32:+ \3.JAFD\Z0$KGDMC
M R.<8KM;;3[*R+&UM(("WWO*C"Y^N!2RV=K/,LTUM#)*JE%=T!8*>HR>Q]*
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
MU>PMIM@\[SO96S3.-KR&)2S#I@G'-,_L;2_*2+^S;/RT8LJ^0N%)[@8X/ H
M\KU/1]+N;#XIO-:02-:LTL!89\F06BL&7^ZV[N.:U;>RL[/QGX&NK>)([C4M
M/NA>2C[]S^ZC8>8W5^><G->@?V1II$H_LZT_>_ZS]ROS]^>.:!I.FAHF&GVH
M:(8C/DKE![<<4 >07-M9?\*QU;?# 8+;Q4P4LH*QI]M4'KT&TX^E=$(=)M_B
MM<264&G*[:!&UEM1 &E$TB@I[_='';%=\FEZ>EO+;I86JP2_ZR,0J%?ZC&#4
MGV.U\Z*;[-#YL*E(GV#<BGLI[#Z4 >5^$_[%UJS\-ZC_ &V%\06K@36T:(ES
M)/MQ,DHQO*D[B2>PS3/"O]D:[9:!=WFMB#Q'9WH-Q;QI&MVUQDK+&_&\H>2>
MVT9XQ7JD6FV,%[+>Q65M'=2C$DZ1*'<>[8R:$TVQCOGODLK9;QQM>X6)1(P]
M"V,F@#E/B:L2>']/NI0@6VU>RD:5@/W:^>@)SV&.M<[J\VF77B3Q^D4MM(LG
MA^-\(P(9U$V3QU(^7GM@5ZG<6\-U \%Q#'-#(-KQR*&5AZ$'@U7&DZ:L;1C3
M[4(R",J(5P4'1<8Z#L* /-M+L;/3=;^'%U8P1Q75[ITR7$B\-< 6R, [=6 (
M&,].U8<MYI>H?"O3]1OWMO[=36(&O7E($R3_ &H!PV>1A>W0*!V%>RC2=.5H
MF73[4-#_ *HB%<ISGY>..?2D?1M+DN9+E]-LVGE(,DI@4L^"",G&3@@'\* /
M+[E]&UZ^\3Z=XAUN+3[Z._W0$J@G$("F%X&//;@+W)XRW.KIN@Z5J?Q/\1)?
MVB7#16NG7"K+U$H\P[\#C=D#GW(Z$UWTVFV-Q>17<UE;27,/^JF>)2Z?[K$9
M'X4Y+"SCNFNH[2!+A_O2K& Y^IZT <=\3(+.2W\-RWD4#1IKMJK/,H(5"3N!
M)Z \9K,GTO1]8\=>)H;FVMKJS70[0Q1L T8'[[# =.!C![9XZUZ/<6T%W"8;
MF".:)L921 RG'(X-0MI>GO+)*UA:F208=S"N6'H3CF@#S#1'%P_PDNYF#W+V
MTR&1CEF M&X)[\U<L#-I?BK3I)X+/5M,O-5N19:E"-MU;3.)=T<H_C4#>N0>
M HR.!7H2Z1IB&(KIUH#%S&1 OR=^..*6'2]/M[IKJ&QMHKAL[I4A57.>N2!F
M@#C_ (DVUK//X2^T@!7UV&%FW%3M:.3*Y'J0*Y+7K*;PQ)XVC\-1/;Z0MO92
M7,-MD+"[/^^\L#[I\GDXZ @^E>A^+?#]UX@?1EA6T:&QOTO)4N&.) JNNS 4
MCG?U/ITK?M[2VM(/(MK>&&'D^7&@5>>O H XJ6VM[;XC>&9_#ZPQVUW97'VY
M;4 1R0*JF)R!QP[  ^Y%<FRPO\)896V%H_$A*,?X2=0.<?@37KMKIFGV*2)9
MV-M;I)]]88E0-]<#FH_[&TOR?)_LVS\K=NV>0NW/KC'6@#@[RZT.^\8>+='\
M6SV\"M!"+(W4@3%L8_F,3-T(DW$D<Y ]!B37XK?PIJNB^-+6SGE@^SKI]^I0
MM.T;@>4YSSO#A5)ZG?[5WD^F6%U)!)<6-M+);G,+21*QC/\ LDCC\*S+O3-7
MU#75^TW=G_84;1S);I"WG/(AR S[L;=P#<#/ 'KD L>'M+&D:-% \<:W,A:>
MY,8 #3.2SD>V20/8"M6BB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
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 *1E#HRG.",'!P?S%+10 R&&.WA2*&-8XT&%51@ 4^BB@ HH
MHH **** "N<C\%Z=;W<TMK=ZI;0SRM-):P7TB0EV.6(4'*Y)).TCK71T4 ,B
MBC@A2&)%2.-0J(HP% X  I]%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !116!XN\5VOA'2HKRXB::6XN$M;:%3@R2OT&>PX))]N] &
M_17,Z!XPCU;Q'J_AVZM?L>K:85:2)9/,22-@"KHV 3U&00,9'6NFH **** "
MBBB@ HHKF_%OC.Q\)QV<4L,MWJ-_*(;*R@QOF<D#J> ,D9)]: .DHKFYM>US
M3TLY-1T"()<W,-NQL[WSO(,CJFYPR)P-W\.>?;FNCR,XR,^E "T44FX<<CGI
M[T +102 ,G@44 %% ((R#D49&<9Y% !12 @]"*,C)&1D=J %HK*BU^SN[S5;
M*Q)NKO3$4SQQD??8,0F?[WR_AD4GAO5;S6= M]0U'2IM)N9=V^TG;+1X8@9.
M!U ST'6@#6HHSD9%&1G&>?2@ HK \9^)&\(^&+K7/L8NXK7:9(_-\MB"P7CY
M3GEO:N<N_B@-(T;0];UC1_L^DZOY?EW$%SYIA+KN'F*57MGH3T- 'H5%(2 .
M2*"0!DD >] "T4A( R3@>]+0 444 @]#TH **,C.** "BL?Q1K;^'/#=[K"V
MJW*V<9E>(R["5'7!P>:Y&;XJ-8^$M,\5:AH;1Z/?.$WV]UYDL.20"R%%X^4]
M": /1J*CBFCF@2>-PT4BAE;L0>AJ2@ HH!!&0<BD!!S@@XZT +1102 ,DX%
M!11D9QGGTHR,@9Y- !102 ,DX%9VKZW8:'#;RWTPC^T7$=M"O\4DCL%4 =^N
M3[ F@#1HI"0#@D4M !11D9QGGTI,@$#(R>E "T5G7.MV%KK5EH\DP^WWBN\4
M*\G8HR6/H.WU_'%?Q3XDM/"?AZYUB]5FBAVJ$4@%V8A5&3P.3U["@#9HK"AU
MG4TU'3[6^TJ)([TL$N;6Z\Z-"$+X;**<G'& 0>>1T.[0 45RUYXR%E\1-/\
M"3V.3>VK7*70EX4*&R"N/]@]^]:WB#4KO2=!NM0L-,EU2YA4-':0MAI<D#@X
M/0'/0]* -.BH+2=Y[&"XG@:WDDC5WA<@F,D9*D^HZ5.2 ,G@4 %%9VLZY8:#
M8K=W\XCC>1(8Q_%(['"JH[DY_F>U:- !16?I&MV&NPW$^G3">&"=[<R+]UF7
M&[:>XR<9]JO@@C((/TH 6BN0^(7C@^ =&@U233?ML$DX@*K/Y;*Q#$'&T@CY
M3WKJ;626:UBDGC2.1E!9$?>!^.!G\J )J* 01D'-<KJ'C,:?\0=)\*O8;_[3
MBDECNEF^YL5B05V_[..O>@#JJ*,C.,\^E!( R3B@ HHR,XSSZ4$@=3B@ HK%
MU'6-0L_$6E:=;Z)<75I>>9Y]\C@):[1D;ACG/U'MFN>F^(=Y<:WJVGZ%X;GU
M7^R;B.WNBEPL;Y97)*JPP0"F.H.3TH [NBLSP]J=WJ^@6NH7^F2Z7<S*6DM)
MFRT6"1R<#J!GH.M:>1C.>/6@ HJ&YN[>SM);NYFCBMXD+R2NV%51R236!>>*
MK@Z9H6HZ-HMUJEMJLL66C(0V\3C/F,,'H#TX^HH Z6BD) (!(R>E+0 44 @C
M(.110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !7*>/_!T7C/08K4WQL;BTN%N[>YV[@CJ#]X9
M&1@GO75U!=V5K?P^3>6T-Q%G.R5 ZY^AH \E\&&3_A-?%?Q$UFZ@32DMQ:1W
MD43)%.J!-\B*2Q*YC !R<YX]*]6TS4K/6-,M]1T^=9[2X0/%(H(# ^QY'XU+
M-:V]Q:/:3P12VSIY;PN@*,N,8(/!'M2VUM!9VT=M:PQP01*%CBB4*J =  .
M* ):*** "BBB@ KQKXE1RZ1\8O!OB2]R-&7;;/,WW(9-S<L>W#@Y_P!D^E>R
MU%<VMO>V[V]U!%/!(,/'*@96'N#P: &7%[:0>0)IHU,[A(03DR,>FT=_7V S
MVKY\U6XO)?"/Q UF^9T\06>N11VLW26W59%"+&>H&TMC'45[SIWA_1M(<R:;
MI-E9N1MW00*AQZ9 Z>U/FT/2;B_6_FTRSDO%*D3O I<%?NG=C.1V]* /)K^R
M75OCCX<M]7MU8W7AT27EN>%>3]YD,!UZ8P?0>E>?11K%\&-.U97?[?9^(A#;
M3F0EH8P"VU.?E&><#J:^FYM%TJXO_MTVF6<EYMV_:'@4R8QC&XC.,'%5O^$5
M\._9OLW]@Z7Y&_S/*^QQ[=V,;L8QG'>@#S74].T[4/VB#8ZC#%):3Z+N>"0X
M25LG[PZ,<#//H#VKB++7-5M/A+I237$AT5?$HMWED)96LUPVQNY3=NR/;%>K
MWG@&XO\ XH_\)!=VNEW&BG3Q9&TF)9N#D-L*;>/3-=HVD:8VE_V6VGVAT_;L
M^RF%?*V^FS&,?A0!XYXYTH:7\+O%\L6K6EY;SW=M=VT-HF([-GE4,$.XXW Y
MP,=3_>I^@6\6E_&+38+)WMX[OPNDMPRL6,CX/SMG.YN!R?2O6QX=T1=,73!H
M]A]@5MRVOV9/*!]=N,9]Z6/0-&ANH[J+2;!+B- B3+;('50,  XR!CC% 'CO
M@>6Y\-:ZVD:[%$RG2[FZLO$%CUGMR0[._'S$8!!/(/'.<UB^'M4M1XS^']QI
MUVOERFZAEG>11<W";C@W 7@$G. 23@ Y)/'OMGH6D:<[O9:596S2)Y;F&W5"
MR_W3@=/:F1>'-#A6W6+1M.C6V<R0!+5 (G/5EX^4\#D>E 'D'@S3-)76_B<)
M;.T$T-U.EL&C7<BE9LA/08';TK%T&XO9O!?PNL92SZ3=ZM,MXK<K*PG/EH_J
M#\W!X./:O?FT32GN;BY?3+)I[E/+GE,"EI5_NL<98>QIBZ!HR:>=/72;%;(M
MO-NMN@C+>NW&,^] 'A][+<_\(E\5K$ C2;&^7["N/DA<R'>J>@'R\#IGWJWX
M8@BT[XG_  _-INC-_P"&D>Z(<DS'RG.6R>>5'TP/2O9_[#TG^SCIQTNR-B3N
M-L8%\LG.<[<8SGFFQ^']%AN(+B+2+!)[=0L,BVR!HP.@4XR!R>GK0!ROQE_Y
M)+KW^Y%_Z.2O*]2^T66G?#V?Q5(]_P""7MK=O+10@MYO+ 'F%1EE Y'J-PZC
MGZ%OM-L=3@\G4+*WNXLYV7$2R+GZ$5$=#TEM._LXZ79&QR#]F-NGE9]=N,4
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
M5CWGU. ,U<H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
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
M!$AAN!$OVNU#C9G=FXC [\8_6K4>I7U]XIOM MKR.":QLXIKB[%N"TLDA;8
MI.-H"\]SD8([@'64UW6-&=R J@DD]A7F\?C;7[^ST(0"QMKRXU>;2;X-"SJ)
M(UDRZ?,/E^0':>><;AUJWI7]OI\3OL6IZQ'<F'1HY6$5MY:$M,RG R2"=BY.
M3TH [+2M6L=<TZ/4--N!<6DA94D"D E6*GJ >JD?A4M]>V^FV%Q?7<GEVUO&
MTLK[2VU5&2<#D\>E>5^%M5UC1/!WANZ@GMCI]QK4EC);&$EV66[E7?OSP03P
M,5Z%XNU&\TCPAJ^IV#0K<V=I)<)YR%U.Q2V, CT__70!KPS)<01S1-NCD4.I
MQC((R*?7$7&N:]+X@\/:;:7-G#%J>FRW$DCVY=D=!'R/F /W^!QCWZ5J>"M8
MO=9T29]1,3W=I>W%G))$FQ9#%(5#!<G&0!QF@#HZ*X#Q-XJU;17U"Y2>W86E
M[;1):11F13#(T:L97_Y9N2[;1D< <'.:6^UOQ++K?BVQL[ZPMX])MH+BW9K4
MNQW)(VUOG[[0"?3H* .^HKAE\5:F&\'ZK.T,6CZW#&EPHCRT,\D8:,;L_=8Y
M7IUQSS71Z%=W6H0W5Y-(K6TEPXM $P?*4[02>^2"0?[I6@#6HK@/%'BK5M$;
M4KJ.>W86=W;1QVD49D#0NT:L9G_Y9N2[;1D=!P<U;UGQ)?Q:SKUC#/%8C2],
M6]@:9 PN6._).?X%VA3C!RW7I0!VE%>=CQ!XMN[GPO9K<:=:3ZUI\US+NLG!
MMW5$8#:9#G&_&,CD9]JL3:[XHOHM5BT:)9[[2I%ML".,17,PC1WW;I R*2^!
MCIC.3T !WE%<1=^(/$&I7.JV6D6C0WVG0Q9BQ%(IN'C$FQRSK\F"HRON<\8I
ML6L^*+[Q5%HKO9Z:\NBI>NI@\YH)B^QER'PX!!P>!]: .YHKS.Q\7^))?#OA
MS7KB>Q\J[U*/3[FU2W/S[IFA,@<MP<C(&,?6M*\\0>)-2&K2^'+/SI-/O3:Q
M0.(O+G*;=X=F<,I.3C XP#SG@ [JBN"N=;\37.N^)=/M;NQM$TZRM[J$O:F1
M@760E&^?!Y0#=Z#@<YJI::SJNN^*/!-X+P6\.H:/+>26RQ@H'VQ$]3D_?('H
M/J: /2**Y[QMJ&J:/X7N=4THH9;/$TT;Q[]\((\S'(P0N2/I6.?&3V_C&\LI
M[Q)-*;3#>6DD</+.H#/'N_B(1XV  Z-0!UT^IV=MJ5II\LNVZNU=H$VD[@@!
M;D# QD=33-7UG3]"L&OM3N5M[96"ER">2< 8 )ZFN=?5M>LO$OAC2;R>T;^T
M+6X>Z*0$$2QHIX.[&W+=,9XZ\UQ5]+J-Q\'_ !-/?7QNW_M22,%T"G*WBKG(
M[8 XQQ0![+17*Z;JNKP^/;G0=1N+:YA?3EOH6B@,9B/F%"GWCN'0YZ]:ZJ@
MHKSN;QGJLG@27QO9M"UG%*[_ &!H_OVZ2F,_/G(DP"V>@Z8/6KL&K>(]5\9Z
MKIEC?6$%E9QV=RC/:,SM')O+(?GZD+][M@<<YH [>J,.LZ?<:Q<:3%<J]];Q
MK++" <JK$@'.,=0>]<Y\19KZ'3]&%E>FV$NLV<4F$!W@RK@'VR <=^G2LRXA
MU5_B=JD>GWT%O=#0;8M<2P>9DB67HF0!D^YQZ=P >B45P.E>--0UW3_#T,$#
M)>ZCIK7UPT"H2FTHF$#L!RS9YS@#&.<CI?#-QK=QH^?$%HEM?I*Z'RRN)4!^
M5\!FVY&,C/!S0!LT5P$WBO5[OPGK'BG37@%OITT_EV<D>1-# Q#EFZAB%8C'
M XR#3[;7O$.N^*;FQTR]L;:R6QL[^)I;1G?9*6RA^?J0O7C'IWH [RBO.;_Q
MAK?]FZC?V3P1W5KK8TQ-/E@W[D+J@8@$,7(;S!@@;>W>I?%_BG6O#]KK%TES
M:,^G6\,T,$,)?S<_ZPS=3$I.0OS#H>6Z4 >@U4O-3L]/FM(KJ7RWO)O(@&TG
M>^"V.!QPIY.!7,WNJ:_<^.Y] L;VSM;8Z4MY'*]J9'1C(4P1O ;I[=>AK-L/
M&>L7NB>"=0;[*G]KWGV6\01$DD+)DH=W )CZ8/7K0!Z'17#^(-7\0VFK6FCZ
M7?6LVK7TS/'";;*6UJ&YED.[/"X';+' JOXI\5:OH2ZI<I<6[_89K98K:.(R
M!XG*!VF8?ZMB6;:,CH.#F@#T"JFF:G9ZQ8I>V,OFV[LRJ^TKDJQ4\$ ]017*
M:9)JDWQ0\20G408(+*T,430@JH;SL#@@]>2>IZ<<53TCQKJ5[X=\-B<VXU36
MKZXMC*L9$<:1/+N8+GKM0  GJ<G.,$ ]"HKS?Q!XPUS04\4:>)+:6\TW3TU&
MSN9(,B2)B5*NH(&X,IP1P1VK7M=9URV\9V^EWL]I<P7VFR7<21Q&/R9$9!MW
M9.X$/UP.1T'2@#L20 23@"J.EZQ8:U!--IUR)XX9F@=@I&'7[PY':N0T?Q3J
MDGB30;"ZN(+I-3M)Y)S#$1%%+'L.(9/^6B?,03ST'/:KGP\_X]O$7_8P7W_H
MR@#J[JZ@LK66ZN9!'#$I=W/0 4S3[^VU33K>_LI1+:W,:RQ2 $;E(R#@\]*Y
M6^U>^UR?Q19:?<QVL.DQ>3EHMYFE:/>=V>B $#C!SGFLKP9K5Q+I/A+PS9RB
MWD?P_'?S3E S!!L154'C)))).>!TYR #TBBO/K7QOJ#S'1+A8%U==9.EFX5"
M(RGEF42[<]2@QMS]X^G%6==U7Q-X=TR>YGN+.9%U*VAMI/+^:6"5T1A(HP P
M+'!'!]* .XHKC=0\0:M;>(_$.G02VVRSTA+^W,L);:Y:0$-AAD?(/3K67:^(
M_$[_ /"'3M=V#)X@MPKQFV/[E_(\W>"&^;H?EX'./>@#T:BO/H/&.JV<&I6%
MX8;O4(-:BTNWGCB"!Q(BN&*%L9 +#&0"0.E-US7O&&A>'O$M[);Q+%90K/87
M5S&A9_[Z.D;XR#T;IZ@T >AT5QT&J:['XT71+N\M7BOM,DNX7BMRIMG1U7'+
M'>,/G)QR.@'%<YH'B35-+^&F@:M?7%S/;74K-?7D-MYDELA,A+D#.07QDX.
M3Q0!ZI167X=OSJ>AV]Y]NMK]92Y2YMAA)$WG:<=CMP".QS6I0 4444 %%%%
M!1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% !6=K6F-J^GFT%T]L#(CET4,?E8,.O'516C10!C>)/#-AXKT&32M53S$;
M#+(HPT<@Z.OH?Z9%1WOAM9?$2:]8WDEGJ'V?[-*0@=)HLY 93W!Z$$=2.16[
M7-Z+XCO]<>QO+32T?1;P2[;H7 \R/:2%+(0.&QQ@DCC- $=QX'LGTS3K6VO+
MJUFL;XZ@ETFQI'F;?O9MRE3NWMVXXQP,5H7_ (;L=1UC2=3N/,:XTS?Y9SPX
M8#AO7!56'NH-;%5I+^!+]; 2(;QX6G2+/)12 2?098#\_2@"AHOARST!=1%A
ME#?74ETQ;D(S\X _N@Y./<^M9$7@&"+PO8Z(FJ78^P7HOK:Y"IO202%^1C:1
MEF[=ZU/"FOR>)-%-_+:K:NMS- 8EDW@&.1DSG SG;GI6W0!S2^$=FH:S>#4Y
MVDU6UCMI=Z*=JHK*I''WL,V<\9/3M3+;PA)9:5;Z;!JTIM8K!=/:.:%'62-0
M0&(_O@'&>A[@UU%8NK>(H[#5;31[6W-YJMVK21VX?8J1KUDD;G:N<#H22< &
M@"E%X)LK6^TFYLKR[METZP_LX1J5(F@RI"L2"0<J.1@]:HV'P[CL%T15UW47
M719':S5EB^6-E*E#A.>&QD\^F.M;D>K:A%J]II]]I2Q"Y5RMQ!<>;$"HSM)*
MJ0QY(XQ@'GM6S0!QTO@&.;P_JFCOJMQY.I7QOI9!&F]7,@D(7C&-RCJ#WJQ/
MX,SK5[J=EJ]U9/J,*Q7\42(R3E5VAP&!VMCCCM^==310!R=CX&CL/^$;$>J7
M3C0$=+<2(AWADV$-@#C;P,?B34<_@&*XT'6](DU2X\G6+MKN=Q&FY&8J2%XP
M!\J]<]Z["B@#S'Q LLOC&X-UJ>L:8\,,,5N\>DB\AN, L73]VX1MS8(!!^4=
M>,=UX>_M'^QHO[4F:>YW-B5X1$[IN.TL@X5B,9''T!XK4HH XF'X<Q06MA:I
MKNI"WTZ_-[9QXB_=$ER5SLRW^L;DY(J:?P#%<Z%KNDR:I<>3K-VUU.XC3<C-
MMR%XP!\J]<]Z["B@#BM?M[7Q5J-KX;N+&\EDL+J&YGNWMVCA"A<G:_1MP.PJ
M#T9O2MO6_#J:S?Z7?+>W%I<Z=*\D4D 4Y#H492&!'(/7M6U10!R<_@>.XM/$
M=L^IS[->8FX(C7,>4"?)_P ! '.:M0^%C#KUGJXU&5I[6P-@J&-=K(2"6/?.
M5'0X]JZ*B@#CH_ ,<7AZPT9=5N?)LK\7\<AC3>9!(90#QC&XGMTKG+P3S>+-
M3G?5M<TF]^T[8(1HPNT9%4*KQ.8FPK8+8#<9.<'->J44 4M(^W'2+7^TBIO/
M+'G$*%R?< D ^H!(SG%<U;_#RTM=#L-.CU.]WZ9<"?3K@A-]M@GY>%PRD,0=
MV<CZ#'944 9>FZ*EC?WFHS3&XU"["++,5"@(F=J*!T498]2<D\],07WAQ+OQ
M+9Z[%?7%M<V\#VS+&%*RQLRMM;()'*CD8-3Z[K4>B6ML[1^9+=745I!'NVAI
M)&P,G!P!R3P>!4FD7.IW,5P-4T]+.:*9HT\N<2I,F 0X. 1G.,$9!!H YYO
M$;^'KG1CJMSY-Q?_ -H/)Y:;Q(91+@<8QN [=*EN?!#-X@N-6T_7=0TUKT(+
M^"VV;+@J,!AN!V-CC*\_CS70SS7R:C9Q06D<EG('^T3-+M:+ &W"X^;)R.HQ
M3[2^MKX3&VE65896A<KT#K]X?@>/K0!%>Z59:AHTVDW$(:RF@,#QY_@(QC/T
MK%T;P=_9UH;/4-9OM7M$A:W@@O FV.,C:0=J@N=O&6)X)QC)KIZ* .7T_P &
M16=KIMC/J%Q=Z=I<JRV<$JKE"H(0,PY8)GY>G09SBJ]QX"BN=$U[2I-4N/)U
MJZ:YN&$:;D9MN0G' ^5>N>]=A5+5[V33='O+Z*!9WMX6E$3/L#[1G&<''3TH
M S1X99/$;ZY%J=Q'<RVB6T\:HGER["Q5B",@@L> 0#Q^.>G@&"/P79^&UU.[
M"6,Z3VMT%3S(W1]ZY&-K8/J*W]"U(ZSX>TS5#$(C>VD5P8PV=F] V,]\9K0H
M XZX\ )<KKPEUJ_<ZY D-V66/^%=FY<*,'''H/2KVKWT&B:-:Z7=V=]JINHF
MM52"V+B7"XPY7A 1QDX'7H!6QITU]-;NVH6D=M*)754CE\P% Q"MG Y(P<=J
MRHO$-U-XIU;0TL(_,LK..YA<S_ZXN7 4_+\O*=>>M %GPOH<?ASPQI^DQG=]
MFA"NV<[GZL<GU)-5]9\,G6DU"WFU"06&H0B&>V,2L ,8+(3]UB.YST! R*V+
M*2YEL;>2\@2"Z:-3+$C[PCXY4-@9 />IZ .2N_ R_P!N-JND:UJ&D23Q1PW<
M=ML99U084D.IPP'&X<XJ^GA:"'Q);ZS;7ES 8K)+)X%*E)8T8LN206R"3T/-
M:;37PU:.%;2,V!A9GN/-^99,C"[,<@C)SGM5N@#&\3^'U\3:.=-DNY;:)I8Y
M6:)5+$HX=>H(ZJ*AN?#)?7H]=M+Y[74OL_V6=UC#1SQYR-R'N#T(/<@Y%;]%
M '+2>"+41:1';7D\(TV\:^#;59IYFW;F<XYSO;ICKQC J]<^'%E\5)X@AO[B
MWN!:?9)(E"E)$#%USD9&"3T(STJWKFM67A[2)]3U"0I;P@9VC+,2<!5'<DD
M#WK,O->UJPT>;5)_#P,,41E-O%>!IP ,\KM"Y'?#'VSTH HQ> (H?#VG:,NJ
MW/DV%^+^*0QIO,@E,H!XQC<Q[=*Z#7=)&NZ#>Z3).\,=Y T$DB %@K#!QGC.
M":T:* .<3PILU;1]1_M&4RZ7:O:QJ8UVNK!02WO\B],=*M>'= 7P];7<"7<E
MP+F[ENV,B@%7D8LP&.V3Q6S10!Q>H?#N&^BUBW&M:A#::G=K>O @C(CF!0[@
M2I)&47Y2<5?7PCLOM;N_[4N&DU>VCMIM\:':$5E!& .<,V<\9/3M72T4 <%K
M&G6R>&[;X>K!J%W(]G%%!="W(2)$8*LC2 ;0R!0V."2!ZUW%M;0V=I#:VZ!(
M846.-!T50, ?D*R/#FORZY)K$<UFML^G:@]EA9?,#[41MV<#&=_2M#5KV33=
M)N[Z*%9VMXFE,9?9N"@DC.#SQ0!R^H_#R&_CUFW&LW\%IJMRMY) @C(28%#N
M!*DX^1>,XK#UR.1_%]U]HU76]-DACAAMG&DK>QW(5=QD0^4P5MS$$#!^7/H!
MM6GQ"'V70+W4])>SL==:..UN$G$H21QE%D& 5)]1D5VU '):=X?U"^O=%UO5
M=2F:^TY9XT'V=8_.CD;&77^%BJIP,8/;M3KSP3O\17.KZ;KFHZ6;T*+Z"VV%
M)]HP&&Y3L;'&Y>?QYKJZ* .3OO ZOK@U;2-9O]&GDA2WN5M0C+.B#"Y#J0&
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
MF^D:[F0CE"YR$/\ NKA?J">]97Q%U&?3= LG1WBM)=3M8;Z5"5,=LT@#G(Z
M\*3Z-775'/!#=0207$230R*5>.10RL#U!!X(H \XU^S.F^*=1LM+#0:==>'[
MB>Z@@8QI'(AQ'(H7&UCDCC&0O.<5O?#W1[*S\*Z5J<0E-Y>Z9:_:)7F=]^(P
M1P3@8W$<#ICTK=AT+2+>SEM(M,M%MIE"RQ"%=L@'0,,<CV-6;2SM=/MDMK*V
MAMK=!A(H4"*OT X% &)XZN[2S\'7TE[/=00-LB+VKA)"6=5"ACP 20"3T!-<
M/*?L]W\1+#?!:HFD13I;64Q5(9?*F)VXQ\WRJ20!G R*]3O+.VU"TDM+RWBN
M+:4;9(ID#JP]"#P:I+X9T%$9%T73@K0BW91:I@Q9SL/'W<\XZ4 <%IEC!8Z_
MX F@\SS-3TR:.]+R,WGJ($8!@3@@'IZ4ZPM6L-6O_ #QNT=Q=K?6\S9)-DQW
MN"W7*LGE YSAU]*[[^P=)1K:2+2;!9;-2MJWV=!Y/LAQ\H^E4M"T_5_M#ZGX
M@:P.HM$($2QWF*- 23@OR2QQG_=7TR0#=50JA5 "@8 ':N&A6'7OB%XFTG6X
MEEAMK6V-C#)T$3JWF2)Z-OX+#D;1S7=51OM&TS4Y8Y;[3[:YDC!5'EB#%0>H
M!/8]QWH \J*2ZKX$\#W&M*+NX.O0P+/.,O-!YL@0D]]RA3[]:]@BB2&)(HD"
M1HH5548  Z 55N]'TR_6!;S3;.Y6W(:$30*XC(Z%<CC\*N*H10J@!0,  < 4
M <;XA7'Q-\'_ #OB6*^5TWG:P$:X^7.,\GGWKF-!TN,^#M7M=)EL+*_?7[B.
M)9EQ',$N21"X7G8P&W'OCOBO3Y]+T^YO8+VXL;66[@_U,\D*M)'_ +K$9'X5
M _A[19/M._2+%OM4@EN,VZ?O7'1FXY([$T 8O@6]6>'5K:326TF^MKS;=V@D
M#Q*YC0@QD<;2NUL=B36AXNMY[OPU<V]K>PV=Q(\2Q23@F-F,BXC?'.US\A]F
MK5M+*UL8C%:6\<*%BQ$:@98]2?4^]%Y96NH6KVM[;0W-N^-T4R!U;!R,@\=0
M#^% 'DNKWO\ Q1VO13Z1_8VJV&HV+W,<,@:%=TD0WQ,,85D!R.,9.>M;6L31
M?\)[XF@AE7!\,;Y(U;C?ODY(]=NWWQBNY&C:8+&>Q_L^V-K<9\Z$Q K)D8^8
M=^ !SZ5':>'M&L'C>STFR@>.+R4:.!5*QY)V@@<#+$X]S0!YII^CQZ=I7PYU
M?27N%U6[-I!<8G=A/;F#,@92<;5 R.,# ]JT?#[SZ?XDTJSU2TBNEOC.VGZY
M928-T"K.5G7J&VY(.3R.,<UWMCH>E:7(9+#3;2U<@C,,*H<$Y(X' )YQ26FA
M:382;[33;2!L,H,<*K@'[P&!QGOZT >6VNIR6'A#3K>6XD33[KQ5-:7DSR$X
MA\Z3"LQ.0I*JI)/0D=ZTI["QL_&?C6WLU6W1M!AD*0.8]K?OON[2-O0'CU]Z
M[]= T9-/GT]-)L5LIR3-;K;H(Y">[+C!-10>%O#]LC)!HFG1J\7DL%MD^9.N
MT\<CD\>] '#Z;+9WNE>!["X/VBY;0_/\BZ<"V*>7&&DD!!+L,_*!ZL21UK$T
M?&K:!\.4NKR>;S+VYMYMMPXWQA)@%.#Z*!ZX[UZL_AS0Y([2-]'T]DLCNM5-
MLF(#_L#'R]!T]*1?#6@IY6W1-.'DR&6/%JGR.3DL.."?44 <=+9+H/Q"M;32
M$EVP>&KGR+=YGD&Y98]HPQ/TJIX3CL]8M_#&OQ>(+5;_  %G2WA(GNG9?WD<
MV7);!R>GRXR,"O16TO3WU%=1:QM6OE78MR85,@7T#8SBH;7P_HUCJ4VI6FE6
M4%]/GS;B*!5D?/7+ 9.: .$\,2SZ9XBTJTU6T@N#=Q3/8:Y9OQ>+MWGSU/(?
M:,YR1G..]>C6MW;7ULES9W$5Q _W987#JW;@C@U4M="TFPR;+3;.W.QD'EPJ
MH /48'0'N.])H6B6F@:8+&SBBCBWM(4BC$: L<D*HZ#V_/)YH Y/XM03?\(Y
MI>H*CR6NF:Q;7MXJC)\A"=QQW R#^%=J;^S.GB^^T1O:,@=95.Y64],8ZYSQ
MCKFK! 92K $$8(/>LRS\-:'IUP)[+2+&WE#%@T4"KM)ZD8'!^E ')6D=OXC\
M0^,K+6QA[-HTM@YP;> Q K)&?X26W$L.<@#/ K&BN;ZV\)>"_'.J[FN+0(FI
MLP/SV\OR"5AW9<H^?=J]+O=$TK4;A+B]TZUN)D78))8E9MO7;DCI[=*M3VT%
MU;/;3PI+!(NUXW4%6'H1Z4 >>:]<G2K+1;JY:*RM-9U4R:A)/&2B*T;F*.0
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
MMWI!X[\,&Y-N-8@,@DDB( ; 9%W,"<8&!^>#C.#5&U?1;6YL)M-\/7*:@=L
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
M#'PWTT>7Y6);G]W_ '?](DXX]*I^$?*\9ZQXCU;5XDNHK/4Y-.LK:90T<"1
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
M* "LA?#T/_"1/K$M[?SOP8K66<FW@8+MW(F.&()YYZGUK7HH **** "BBB@
MHHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "B
MBB@ HHHH **** "BBB@ HHHH **** "BBB@ KG/'6AWOB;P=J&BV#6Z37B!/
M,G=E5!N!SP#GI71T4 803Q'(MI";?3+9%=/.F2Z>5]@QN"J8E&2!C.>,U1T+
M0=5TNT\1QSBR9]2OIKN#9,V%\Q0-K$IQC;U&>M=710!PO_"$7\WPYTC0I+FW
MAU32&@FM;B,L\9EA.5)! .#R".V>]7I_#^I:GJS:S>QV<5Y#ITMG;01SLZ!I
M""[LY0'^$  +Z^O'644 <):>$-8M].\%VQ:Q)T!@9V$S_O0(FC^7Y/\ :SSZ
M8]ZD\.>'O%/A\KHL=]ITGA^&8M;SD/\ :DB+;O*(QM[XW9Z=O3MZ* .$C\':
MK9Z+KOARUFM&TG5)9FBGD=A+;)-GS%V;2'QEBIW#KSTJTWAC4]-\4QW^BFR^
MQ/I<6G2)<NX>$1LQ5U &'X;!!*].M=C10!Y]8>"=1C\&Z1X=U:RT?5;2VMGB
MN(I)'3Y\C8Z-L)! W ]#R,5:L?".KV5]X0D>\@NTT2WFBN)9I6\R0R*%^7Y3
MD+CN>?:NWHH X6.QTW7/B-%J^DZE%<6L=J&U!+:19(I)48B#<0<;AF0^VU?:
MNROC=BQF^P+"UWL/E"=BJ;NVX@$X_"BSL+/3X3%96D%M&S%RD,80%CU.!W-6
M* .2D\$6%SX.DTNZTS3Y;^6T:*6<@$O(P(,ADV;LDG=G'6HU\,:KJ/PU;PYK
M5Q;-J"6PBCNX'8@NF#'(<J"""JD]>GO78T4 <;#X'>+Q%I.JF\#&&W9-1&,?
M:Y=XD1\=L2%V]N!TK/\ $O@O7]:E\3Q17.G/;ZK;I':S7)<R6H"@&, # 5F&
M[(/4\@UZ%10!RUGHFKIXY37;K[#Y!TM;&18I'W!Q(7W %<8YQU]_:N<NO OB
M)/"VN>%;&?37TN]FDEM+B>1UEA#OO9&4*0V#G#;N_2O3** .*FT+Q5IWB>ZU
M?1+C2GBU..+[=;WGF 1RHNP/&5'(V@ @XZ=?1Y\.ZYIGB[^W-+N+.\%Y9QVU
M_%>.T19H\[94*JW]XY7'XUV5% '.^"-#O_#GAB'3-0EMY)HY97#6^[:0\C/W
M_P!['X51M?#NJ^'/$&IWN@_8[C3]4F^TW%E=2M"8IR,,Z.JMD-@94CJ.#VKL
M** .6\1^&]0\2Z&T4UU#:W\4\-U9^7EXX98FW+DD MDY!.!QC XR8[OP]J>K
M:F-6OH[**[M]/FM+:"*=G3?+C>[.4! PH &T]3^'6T4 <);^$=8ATOP7:%K
MMH#HTS><^)0L31?+\G^UGGTQ[UB>.-%U'3?#?C34)S:^7J=Y930A)&8IL>&/
M# J.NW/![XKU:JU]IUCJ<'D7]G;W<.<^7/$LBY]<$4 <UJ?A.;Q-J+W.LB&"
M-=.N+"**VE,A_?@"1RQ5>@4 #'<FG>&[#QC90P6FLW>ESV]G'LBEM]XDNL+M
M7S,C"=B=N<D>G7JD1(XU2-51%&%51@ >@IU 'GEKX*UNW\(^'-(+Z>TVE:FE
M[(_G.%=5D9\#Y,Y.['X5=N_"%YJ/B.RU:>&PMKVTOS*NHVLC+-+;;B1"Z[0&
MRN%.2>!D>E=M10!YN/!7B8QV*R7.E2S6>M?VB;MS(9+I,OC?QP55\!02, #*
MXYU(O"^L6T'BZTBDL7M]9DEGMV9G5U>2)4(;@@ ;<\9SGM7:44 </;>$M5TZ
M?PUJ=H]FVH:7IXTVZA>5A%<187E7VDJ0RAON\YQ[U#?^"-1N(Y;F)[/[?=ZU
M;ZI<AI&"*L)7;&I"DGA.I Y)..U=]10!SFG:+J%MXWU?6IOLWV6^MH(45)&+
MJ8M_)!4#G?Z]J+_1=0N?'6DZU%]E^R6=M/!(KR,)&\PH<@;2.-GKSGM71T4
M<3!X?\4Z-KNIC1KW33H^IW+73?:E<S6LC@;R@'RN"1D D8/ZJOA[Q+H_B?4K
MO0KO3GT_5626=+[?OMY0H0N@7A\A02"1R.HKM:* .3B\/:IH_BR^UG2WM[N/
M4K>&.[BNY6C;S8@521656SE3@C ]<]JA?P(@^'<WAM+@?:GWSI= ;=MT7,H<
M=2 'Q^ KLJ* .3UKPG>7WA2RLK*_2'5K&X2]ANG3*/<J2S%@/X6+/G'3=^%4
M];T'Q7XD\':AIVHRZ3%>W2QHD<#R>3&%<,6+%=S$X Q@ >IKN** .4\3:'K=
M]>Z1K>B3V<&KZ>)$:"Y+-!-'(%WH6 W#E5(..W2JNK>&_$.HC1]8%W8#7M-N
MFG2'YQ;%'38\6[!;E>=V.N>,=.UHH Y?P]HNL6?BG7=8U'["L>IK;[8K>1W,
M9C0J025&1SUQ^%&HZ)JZ^.(-?TMK)HWL#8SI<LRE!YF\.H4'=U(VDKVYKJ**
M /.]*\$ZY8:3X4LY9=/D;1;V2YE99'&]6$@ 'R]?WGMTI=2\":KJ/_"02"ZM
M+:XN]2M]2L)%9G$<L*HJB0;1P=G;IGOCGT.B@#A9_"NMZYKTU[K0TZWMKK19
M=*N(K69Y&&]LEE+(OY'I[U=\.6'C*QMX+/5[O2I[>RCV12P>8LEUA=J^9D83
ML3MW9(_/K:* .>\$:)>^'/"%AH]^T#SVJE-\#%E8;B0>0".M1WFB:D/'D&OV
M3VC0'3S931S,P8?O-X*X!!SR.<8Z\]*Z6B@#SR#P5K</A#1M'+Z>9[#5EU!W
M\Y]K*)VEVCY,Y^;'X9]JU4T'6[?Q!XFU2W:P!U.&!+8.[-M:)6'SC;T.[MTK
MKJ* .4\,>$_[!US4M0@M[;3K6]CC!T^TE9XA*"VZ0950I((& .V>_#M<T'4]
M0\;>'=:MOLGV721<;TDE8/)YJ!>,*0,8SUY]JZFB@#G_ !?X>E\1Z1#%:W"V
M]]9W<5[:2N"4$L9R-P'8\@_6JYT+4+[73KM]%:17<-@]G;6\4[.@+D%F9R@/
M\*@ +TSZ\=110!P$/@W68?"?A+2 ]@TVBWD$\S^<X618P1A?DSD[N_3'>K-G
MX<\3:+K6JQ:5>Z?_ &-J=T]X6G#^?:R/_K-@ VL">1DC!/?OVU% '"^*;'3?
M$GB31[6RU*(ZA;320WT4$BNWV1DS+'* <@$B,<]V'K76S_VG_:UG]G%I_9NR
M3[5YF[S=W&S9CC'7.?;%2PV-G;7,]S!:013W!!FE2,*TA'3<1R?QJQ0 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444
M %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110
M4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1
M110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%
M% !117->(=6M)+U-!?4(+7S4\R\D>81E(22-JDG[SD$9'0!CP=N0#;T_4;/5
M;075A<QW-N69!)&V5)5BK8/L015JN#^$,UJW@**WMI83Y-U=9CC8'8#<2;>!
MT!'2N\H **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH
M**** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ H
MHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BB
MB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH ****
M "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "LR^\.:'JEQ
M]HU#1M.NY]H7S+BU21L#H,D$XK3HH YGP/X1@\'Z&;)8[4W#S2/+-!$$,BF1
MF0$]3M#8&>G:NFHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
MH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@
M HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "
MBBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **
M** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHH
,H **** "BBB@#__9

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>19
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408766368">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cover Page - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Jan. 28, 2024</div></th>
<th class="th"><div>Jul. 02, 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_dei_CoverAbstract', window );"><strong>Cover [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentType', window );">Document Type</a></td>
<td class="text">10-K<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentAnnualReport', window );">Document Annual Report</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentPeriodEndDate', window );">Document Period End Date</a></td>
<td class="text">Dec. 31,  2023<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentTransitionReport', window );">Document Transition Report</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFileNumber', window );">Entity File Number</a></td>
<td class="text">001-34218<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityRegistrantName', window );">Entity Registrant Name</a></td>
<td class="text">COGNEX CORP<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityIncorporationStateCountryCode', window );">Entity Incorporation, State or Country Code</a></td>
<td class="text">MA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityTaxIdentificationNumber', window );">Entity Tax Identification Number</a></td>
<td class="text">04-2713778<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_EntityAddressAddressLine1', window );">Entity Address, Address Line One</a></td>
<td class="text">One Vision Drive<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressCityOrTown', window );">Entity Address, City or Town</a></td>
<td class="text">Natick<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressStateOrProvince', window );">Entity Address, State or Province</a></td>
<td class="text">MA<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityAddressPostalZipCode', window );">Entity Address, Postal Zip Code</a></td>
<td class="text">01760<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_CityAreaCode', window );">City Area Code</a></td>
<td class="text">508<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_LocalPhoneNumber', window );">Local Phone Number</a></td>
<td class="text">650-3000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_Security12bTitle', window );">Title of 12(b) Security</a></td>
<td class="text">Common Stock, par value $.002 per share<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_TradingSymbol', window );">Trading Symbol</a></td>
<td class="text">CGNX<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_SecurityExchangeName', window );">Security Exchange Name</a></td>
<td class="text">NASDAQ<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityWellKnownSeasonedIssuer', window );">Entity Well-known Seasoned Issuer</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityVoluntaryFilers', window );">Entity Voluntary Filers</a></td>
<td class="text">No<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCurrentReportingStatus', window );">Entity Current Reporting Status</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityInteractiveDataCurrent', window );">Entity Interactive Data Current</a></td>
<td class="text">Yes<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityFilerCategory', window );">Entity Filer Category</a></td>
<td class="text">Large Accelerated Filer<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntitySmallBusiness', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityEmergingGrowthCompany', window );">Entity Small Business</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_IcfrAuditorAttestationFlag', window );">ICFR Auditor Attestation Flag</a></td>
<td class="text">true<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityShellCompany', window );">Entity Shell Company</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityPublicFloat', window );">Entity Public Float</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,631,957,405<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCommonStockSharesOutstanding', window );">Entity Common Stock, Shares Outstanding</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">171,633,726<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_EntityCentralIndexKey', window );">Entity Central Index Key</a></td>
<td class="text">0000851205<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_CurrentFiscalYearEndDate', window );">Current Fiscal Year End Date</a></td>
<td class="text">--12-31<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalYearFocus', window );">Document Fiscal Year Focus</a></td>
<td class="text">2023<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFiscalPeriodFocus', window );">Document Fiscal Period Focus</a></td>
<td class="text">FY<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<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_AmendmentFlag', window );">Amendment Flag</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_DocumentFinStmtErrorCorrectionFlag', window );">Document Financial Statement Error Correction [Flag]</a></td>
<td class="text">false<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AmendmentFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the XBRL content amends previously-filed or accepted submission.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AmendmentFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CityAreaCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Area code of city</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CityAreaCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CoverAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cover page.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CoverAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_CurrentFiscalYearEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>End date of current fiscal year in the format --MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_CurrentFiscalYearEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gMonthDayItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentAnnualReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as an annual report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentAnnualReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFinStmtErrorCorrectionFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates whether any of the financial statement period in the filing include a restatement due to error correction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection w<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 4: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFinStmtErrorCorrectionFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalPeriodFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalPeriodFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fiscalPeriodItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentFiscalYearFocus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentFiscalYearFocus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:gYearItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentPeriodEndDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentPeriodEndDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:dateItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentTransitionReport">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true only for a form used as a transition report.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Forms 10-K, 10-Q, 20-F<br> -Number 240<br> -Section 13<br> -Subsection a-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentTransitionReport</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_DocumentType">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_DocumentType</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:submissionTypeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressAddressLine1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Address Line 1 such as Attn, Building Name, Street Name</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressAddressLine1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressCityOrTown">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the City or Town</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressCityOrTown</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressPostalZipCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Code for the postal or zip code</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressPostalZipCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityAddressStateOrProvince">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the state or province.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityAddressStateOrProvince</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:stateOrProvinceItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCentralIndexKey">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCentralIndexKey</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:centralIndexKeyItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCommonStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityCurrentReportingStatus">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityCurrentReportingStatus</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityEmergingGrowthCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate if registrant meets the emerging growth company criteria.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityEmergingGrowthCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFileNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFileNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:fileNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityFilerCategory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityFilerCategory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:filerCategoryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityIncorporationStateCountryCode">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Two-character EDGAR code representing the state or country of incorporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityIncorporationStateCountryCode</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarStateCountryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityInteractiveDataCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-T<br> -Number 232<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityInteractiveDataCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityPublicFloat">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityPublicFloat</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityRegistrantName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityRegistrantName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityShellCompany">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityShellCompany</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntitySmallBusiness">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicates that the company is a Smaller Reporting Company (SRC).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntitySmallBusiness</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityTaxIdentificationNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityTaxIdentificationNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:employerIdItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityVoluntaryFilers">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityVoluntaryFilers</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_EntityWellKnownSeasonedIssuer">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Securities Act<br> -Number 230<br> -Section 405<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_EntityWellKnownSeasonedIssuer</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:yesNoItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_IcfrAuditorAttestationFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_IcfrAuditorAttestationFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_LocalPhoneNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Local phone number for entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_LocalPhoneNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:normalizedStringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_Security12bTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Title of a 12(b) registered security.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection b<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_Security12bTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:securityTitleItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_SecurityExchangeName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Name of the Exchange on which a security is registered.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Exchange Act<br> -Number 240<br> -Section 12<br> -Subsection d1-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_SecurityExchangeName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:edgarExchangeCodeItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_TradingSymbol">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Trading symbol of an instrument as listed on an exchange.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_TradingSymbol</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:tradingSymbolItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>20
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408919744">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Audit Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AuditInformationAbstract', window );"><strong>Audit Information [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorName', window );">Auditor Name</a></td>
<td class="text">GRANT THORNTON LLP<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_dei_AuditorLocation', window );">Auditor Location</a></td>
<td class="text">Boston, Massachusetts<span></span>
</td>
</tr>
<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_AuditorFirmId', window );">Auditor Firm ID</a></td>
<td class="text">248<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AuditInformationAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Audit Information</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AuditInformationAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorFirmId">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>PCAOB issued Audit Firm Identifier</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorFirmId</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:nonemptySequenceNumberItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorLocation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorLocation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_dei_AuditorName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 10-K<br> -Number 249<br> -Section 310<br><br>Reference 2: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 20-F<br> -Number 249<br> -Section 220<br> -Subsection f<br><br>Reference 3: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Form 40-F<br> -Number 249<br> -Section 240<br> -Subsection f<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">dei_AuditorName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>dei_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dei:internationalNameItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>21
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408884656">
<tr>
<th class="tl" colspan="2" 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>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeStatementAbstract', window );"><strong>Income Statement [Abstract]</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
</tr>
<tr class="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 revenue</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">236,306<span></span>
</td>
<td class="nump">284,185<span></span>
</td>
<td class="nump">277,271<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">601,241<span></span>
</td>
<td class="nump">721,905<span></span>
</td>
<td class="nump">759,827<span></span>
</td>
</tr>
<tr class="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, development, and engineering expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">139,400<span></span>
</td>
<td class="nump">141,133<span></span>
</td>
<td class="nump">135,372<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SellingGeneralAndAdministrativeExpense', window );">Selling, general, and administrative expenses</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">339,139<span></span>
</td>
<td class="nump">312,107<span></span>
</td>
<td class="nump">309,354<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_cgnx_LossGainFromCatastrophes', window );">Loss (recovery) from fire</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(8,000)<span></span>
</td>
<td class="nump">20,779<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,657<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingIncomeLoss', window );">Operating income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">130,702<span></span>
</td>
<td class="nump">246,229<span></span>
</td>
<td class="nump">315,101<span></span>
</td>
</tr>
<tr class="ro">
<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 gain (loss)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="num">(10,039)<span></span>
</td>
<td class="num">(1,837)<span></span>
</td>
<td class="num">(2,270)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentIncomeNonoperating', window );">Investment income</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">14,093<span></span>
</td>
<td class="nump">6,715<span></span>
</td>
<td class="nump">6,660<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherNonoperatingIncomeExpense', window );">Other income (expense)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">592<span></span>
</td>
<td class="num">(412)<span></span>
</td>
<td class="num">(591)<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 tax expense</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">135,348<span></span>
</td>
<td class="nump">250,695<span></span>
</td>
<td class="nump">318,900<span></span>
</td>
</tr>
<tr class="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 on continuing operations</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">22,114<span></span>
</td>
<td class="nump">35,170<span></span>
</td>
<td class="nump">39,019<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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareBasicAbstract', window );"><strong>Net Income per weighted-average common and common-equivalent share:</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0.66<span></span>
</td>
<td class="nump">$ 1.24<span></span>
</td>
<td class="nump">$ 1.59<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDilutedAbstract', window );"><strong>Diluted earnings per weighted-average common and common-equivalent share (1):</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareDiluted', window );">Net income (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">$ 0.65<span></span>
</td>
<td class="nump">$ 1.23<span></span>
</td>
<td class="nump">$ 1.56<span></span>
</td>
</tr>
<tr class="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 common and common-equivalent shares outstanding:</strong></a></td>
<td class="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">172,249<span></span>
</td>
<td class="nump">173,407<span></span>
</td>
<td class="nump">176,463<span></span>
</td>
</tr>
<tr class="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="th" style="border-bottom: 0px;"><sup></sup></td>
<td class="nump">173,399<span></span>
</td>
<td class="nump">174,869<span></span>
</td>
<td class="nump">179,916<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareCashPaid', window );">Cash dividends per common share (in dollars per share)</a></td>
<td class="th" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.286<span></span>
</td>
<td class="nump">$ 0.265<span></span>
</td>
<td class="nump">$ 0.245<span></span>
</td>
</tr>
<tr><td colspan="4"></td></tr>
<tr><td colspan="4"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,790&#160;</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LossGainFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Loss (Gain) From Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LossGainFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CommonStockDividendsPerShareCashPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 dividends paid during the period for each share of common stock 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> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockDividendsPerShareCashPaid</td>
</tr>
<tr>
<td style="padding-right: 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_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_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_EarningsPerShareBasicAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareBasicAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareDiluted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 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_EarningsPerShareDilutedAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareDilutedAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_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_InvestmentIncomeNonoperating">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core 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 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentIncomeNonoperating</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_OtherNonoperatingIncomeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of income (expense) related to nonoperating activities, classified as other.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherNonoperatingIncomeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ResearchAndDevelopmentExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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_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>
<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_SellingGeneralAndAdministrativeExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SellingGeneralAndAdministrativeExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>22
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408890720">
<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>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract', window );"><strong>Available-for-sale investments:</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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(17,152)<span></span>
</td>
<td class="num">(7,152)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss into current operations</a></td>
<td class="nump">1,954<span></span>
</td>
<td class="nump">182<span></span>
</td>
<td class="num">(236)<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_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to available-for-sale investments</a></td>
<td class="nump">12,461<span></span>
</td>
<td class="num">(16,970)<span></span>
</td>
<td class="num">(7,388)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CurrencytranslationadjustmentAbstract', window );"><strong>Foreign currency translation adjustments:</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 gain (loss)</a></td>
<td class="nump">11,500<span></span>
</td>
<td class="num">(4,385)<span></span>
</td>
<td class="num">(6,753)<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_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent', window );">Net change related to foreign currency translation adjustments</a></td>
<td class="nump">11,500<span></span>
</td>
<td class="num">(4,385)<span></span>
</td>
<td class="num">(6,753)<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_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent', window );">Other comprehensive income (loss), net of tax</a></td>
<td class="nump">23,961<span></span>
</td>
<td class="num">(21,355)<span></span>
</td>
<td class="num">(14,141)<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomeNetOfTax', window );">Total comprehensive income</a></td>
<td class="nump">$ 137,195<span></span>
</td>
<td class="nump">$ 194,170<span></span>
</td>
<td class="nump">$ 265,740<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CurrencytranslationadjustmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Currency translation adjustment [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;">cgnx_CurrencytranslationadjustmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<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_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 adjustment, of gain (loss) in value of unsold investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), attributable to parent.</p></div>
<a href="javascript: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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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, 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-15<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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-9<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 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>23
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408692704">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract', window );"><strong>Statement of Comprehensive Income [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain (loss) on available-for-sale investments</a></td>
<td class="nump">$ 4,389<span></span>
</td>
<td class="num">$ (5,943)<span></span>
</td>
<td class="num">$ (2,206)<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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 adjustment, of tax expense (benefit) for unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>24
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408229696">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetsCurrentAbstract', window );"><strong>Current assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">$ 202,655<span></span>
</td>
<td class="nump">$ 181,374<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Current investments, amortized cost of $132,799 and $223,545 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022</a></td>
<td class="nump">129,392<span></span>
</td>
<td class="nump">218,759<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsReceivableNetCurrent', window );">Accounts receivable, allowance for credit losses of $583 and $730 in 2023 and 2022, respectively</a></td>
<td class="nump">114,164<span></span>
</td>
<td class="nump">125,417<span></span>
</td>
</tr>
<tr class="re">
<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 revenue</a></td>
<td class="nump">2,402<span></span>
</td>
<td class="nump">2,179<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryNet', window );">Inventories</a></td>
<td class="nump">162,285<span></span>
</td>
<td class="nump">122,480<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PrepaidExpenseAndOtherAssetsCurrent', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">68,099<span></span>
</td>
<td class="nump">67,490<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_AssetsCurrent', window );">Total current assets</a></td>
<td class="nump">678,997<span></span>
</td>
<td class="nump">717,699<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LongTermInvestments', window );">Non-current investments, amortized cost of $250,790 and $476,148 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022</a></td>
<td class="nump">244,230<span></span>
</td>
<td class="nump">454,117<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentNet', window );">Property, plant, and equipment, net</a></td>
<td class="nump">105,849<span></span>
</td>
<td class="nump">79,714<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">75,115<span></span>
</td>
<td class="nump">37,682<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">393,181<span></span>
</td>
<td class="nump">242,630<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsNetExcludingGoodwill', window );">Intangible assets, net</a></td>
<td class="nump">112,952<span></span>
</td>
<td class="nump">12,414<span></span>
</td>
</tr>
<tr class="ro">
<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">400,400<span></span>
</td>
<td class="nump">407,241<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAssetsNoncurrent', window );">Other assets</a></td>
<td class="nump">7,088<span></span>
</td>
<td class="nump">6,643<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">2,017,812<span></span>
</td>
<td class="nump">1,958,140<span></span>
</td>
</tr>
<tr class="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">21,454<span></span>
</td>
<td class="nump">27,103<span></span>
</td>
</tr>
<tr class="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 expenses</a></td>
<td class="nump">72,374<span></span>
</td>
<td class="nump">93,235<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Accrued income taxes</a></td>
<td class="nump">16,907<span></span>
</td>
<td class="nump">18,129<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">31,525<span></span>
</td>
<td class="nump">40,787<span></span>
</td>
</tr>
<tr class="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 );">Operating lease liabilities</a></td>
<td class="nump">9,624<span></span>
</td>
<td class="nump">8,454<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">151,884<span></span>
</td>
<td class="nump">187,708<span></span>
</td>
</tr>
<tr class="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 );">Non-current operating lease liabilities</a></td>
<td class="nump">68,977<span></span>
</td>
<td class="nump">31,298<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">246,877<span></span>
</td>
<td class="nump">249,961<span></span>
</td>
</tr>
<tr class="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 );">Reserve for income taxes</a></td>
<td class="nump">26,685<span></span>
</td>
<td class="nump">15,866<span></span>
</td>
</tr>
<tr class="re">
<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 );">Non-current accrued income taxes</a></td>
<td class="nump">18,338<span></span>
</td>
<td class="nump">33,008<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesNoncurrent', window );">Other liabilities</a></td>
<td class="nump">299<span></span>
</td>
<td class="nump">1,905<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Liabilities', window );">Total liabilities</a></td>
<td class="nump">513,060<span></span>
</td>
<td class="nump">519,746<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingencies', window );">Commitments and contingencies (Note 11)</a></td>
<td class="text"> <span></span>
</td>
<td class="text"> <span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Authorized shares (in shares)</a></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_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share)</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquityAbstract', window );"><strong>Shareholders&#8217; equity:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockValueOutstanding', window );">Preferred stock, $0.01 par value - Authorized: 400 shares in 2023 and 2022, respectively, no shares issued and outstanding</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockValueOutstanding', window );">Common stock, $0.002 par value &#8211; Authorized: 300,000 shares in 2023 and 2022, respectively, issued and outstanding: 171,599 and 172,631 shares in 2023 and 2022, respectively</a></td>
<td class="nump">343<span></span>
</td>
<td class="nump">345<span></span>
</td>
</tr>
<tr class="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">1,037,202<span></span>
</td>
<td class="nump">979,167<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RetainedEarningsAccumulatedDeficit', window );">Retained earnings</a></td>
<td class="nump">512,543<span></span>
</td>
<td class="nump">528,179<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax', window );">Accumulated other comprehensive loss, net of tax</a></td>
<td class="num">(45,336)<span></span>
</td>
<td class="num">(69,297)<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&#8217; equity</a></td>
<td class="nump">1,504,752<span></span>
</td>
<td class="nump">1,438,394<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">$ 2,017,812<span></span>
</td>
<td class="nump">$ 1,958,140<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_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_AvailableForSaleSecuritiesDebtSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481830/320-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleSecuritiesDebtSecuritiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingencies">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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_CommonStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all classes of common stock held by shareholders. May be all or portion of the number of common shares authorized. These shares exclude common shares repurchased by the entity and held as treasury 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 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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_InventoryNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 852<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481372/852-10-55-10<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_Liabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>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_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_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 investments that are intended to be held for an extended period of time (longer than one operating cycle).</p></div>
<a href="javascript: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(12))<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_LongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_OtherLiabilitiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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_OtherLiabilitiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockValueOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by shareholders, which is net of related treasury stock. May be all or a portion of the number of preferred shares authorized. These shares represent the ownership interest of the preferred shareholders.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockValueOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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>
<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>25
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408652272">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED BALANCE SHEETS (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfFinancialPositionAbstract', window );"><strong>Statement of Financial Position [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent', window );">Current investments, amortized cost</a></td>
<td class="nump">$ 132,799<span></span>
</td>
<td class="nump">$ 223,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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent', window );">Current investment, allowance for credit loss</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Accounts receivable, allowance for credit losses</a></td>
<td class="nump">583<span></span>
</td>
<td class="nump">730<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent', window );">Non-current investments, amortized cost</a></td>
<td class="nump">250,790<span></span>
</td>
<td class="nump">476,148<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent', window );">Non-current investments, allowance for credit losses</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesIssued', window );">Preferred stock, shares issued (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesOutstanding', window );">Preferred stock, shares outstanding (in shares)</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock par value, in dollars per share</a></td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares)</a></td>
<td class="nump">300,000,000<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Common stock, shares issued (in shares)</a></td>
<td class="nump">171,599,000<span></span>
</td>
<td class="nump">172,631,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 );">Common stock, shares outstanding (in shares)</a></td>
<td class="nump">171,599,000<span></span>
</td>
<td class="nump">172,631,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleAmortizedCostCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 320<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/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_DebtSecuritiesAvailableForSaleAmortizedCostCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 320<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/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PreferredStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt.</p></div>
<a href="javascript: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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-13<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: 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 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(16)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(7))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>26
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410560464">
<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>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract', window );"><strong>Cash flows from operating activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
</tr>
<tr class="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 net 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_StockOptionPlanExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">54,768<span></span>
</td>
<td class="nump">54,505<span></span>
</td>
<td class="nump">43,774<span></span>
</td>
</tr>
<tr class="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 of property, plant, and equipment</a></td>
<td class="nump">17,270<span></span>
</td>
<td class="nump">16,347<span></span>
</td>
<td class="nump">16,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_GainLossOnSaleOfPropertyPlantEquipment', window );">Loss (gain) on disposal of property, plant, and equipment</a></td>
<td class="nump">229<span></span>
</td>
<td class="nump">19<span></span>
</td>
<td class="nump">33<span></span>
</td>
</tr>
<tr class="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">4,610<span></span>
</td>
<td class="nump">3,274<span></span>
</td>
<td class="nump">3,667<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_cgnx_NonCashLossFromCatastrophes', window );">Non-cash, loss from catastrophes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">46,372<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ExcessAndObsoleteInventoryCharges', window );">Excess and obsolete inventory charges</a></td>
<td class="nump">3,775<span></span>
</td>
<td class="nump">3,084<span></span>
</td>
<td class="nump">2,573<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_cgnx_FairValueAdjustmentOnAcquiredInventories', window );">Fair value adjustment on acquired inventories (Note 21)</a></td>
<td class="nump">2,829<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments', window );">Amortization of discounts or premiums on investments</a></td>
<td class="nump">1,745<span></span>
</td>
<td class="nump">4,968<span></span>
</td>
<td class="nump">4,887<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnSaleOfInvestments', window );">Realized (gain) loss on sale of investments</a></td>
<td class="nump">1,954<span></span>
</td>
<td class="nump">182<span></span>
</td>
<td class="num">(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_IncreaseDecreaseInDeferredIncomeTaxes', window );">Change in deferred income taxes</a></td>
<td class="num">(19,779)<span></span>
</td>
<td class="num">(27,338)<span></span>
</td>
<td class="num">(3,118)<span></span>
</td>
</tr>
<tr class="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 );">Accounts receivable</a></td>
<td class="nump">23,346<span></span>
</td>
<td class="nump">3,454<span></span>
</td>
<td class="num">(4,503)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerAsset', window );">Unbilled revenue</a></td>
<td class="num">(255)<span></span>
</td>
<td class="nump">1,806<span></span>
</td>
<td class="nump">1,637<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInInventories', window );">Inventories</a></td>
<td class="num">(22,591)<span></span>
</td>
<td class="num">(48,934)<span></span>
</td>
<td class="num">(54,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_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets', window );">Prepaid expenses and other current assets</a></td>
<td class="nump">2,469<span></span>
</td>
<td class="num">(6,998)<span></span>
</td>
<td class="num">(32,342)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccountsPayable', window );">Accounts payable</a></td>
<td class="num">(13,744)<span></span>
</td>
<td class="num">(17,277)<span></span>
</td>
<td class="nump">27,828<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedLiabilities', window );">Accrued expenses</a></td>
<td class="num">(35,309)<span></span>
</td>
<td class="nump">2,056<span></span>
</td>
<td class="nump">16,861<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable', window );">Accrued income taxes</a></td>
<td class="num">(16,745)<span></span>
</td>
<td class="num">(444)<span></span>
</td>
<td class="num">(6,401)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInContractWithCustomerLiability', window );">Deferred revenue and customer deposits</a></td>
<td class="num">(9,122)<span></span>
</td>
<td class="nump">4,886<span></span>
</td>
<td class="nump">14,417<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet', window );">Other</a></td>
<td class="nump">4,232<span></span>
</td>
<td class="num">(12,081)<span></span>
</td>
<td class="nump">3,411<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInOperatingActivities', window );">Net cash provided by operating activities</a></td>
<td class="nump">112,916<span></span>
</td>
<td class="nump">243,406<span></span>
</td>
<td class="nump">314,065<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract', window );"><strong>Cash flows from 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsToAcquireInvestments', window );">Purchases of investments</a></td>
<td class="num">(184,056)<span></span>
</td>
<td class="num">(233,720)<span></span>
</td>
<td class="num">(668,053)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments', window );">Maturities and sales of investments</a></td>
<td class="nump">496,462<span></span>
</td>
<td class="nump">253,983<span></span>
</td>
<td class="nump">430,969<span></span>
</td>
</tr>
<tr class="re">
<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 );">Purchases of property, plant, and equipment</a></td>
<td class="num">(23,077)<span></span>
</td>
<td class="num">(19,667)<span></span>
</td>
<td class="num">(15,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_PaymentsToAcquireBusinessesNetOfCashAcquired', window );">Net payments related to business acquisitions</a></td>
<td class="num">(257,056)<span></span>
</td>
<td class="num">(5,050)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInInvestingActivities', window );">Net cash provided by (used in) investing activities</a></td>
<td class="nump">32,273<span></span>
</td>
<td class="num">(4,454)<span></span>
</td>
<td class="num">(252,539)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract', window );"><strong>Cash flows from financing activities:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions', window );">Net payments from issuance of common stock under stock plans</a></td>
<td class="nump">3,268<span></span>
</td>
<td class="nump">9,861<span></span>
</td>
<td class="nump">63,292<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsForRepurchaseOfCommonStock', window );">Repurchase of common stock</a></td>
<td class="num">(79,794)<span></span>
</td>
<td class="num">(204,314)<span></span>
</td>
<td class="num">(161,652)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PaymentsOfDividendsCommonStock', window );">Payment of dividends</a></td>
<td class="num">(49,079)<span></span>
</td>
<td class="num">(45,921)<span></span>
</td>
<td class="num">(43,263)<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetCashProvidedByUsedInFinancingActivities', window );">Net cash used in financing activities</a></td>
<td class="num">(125,605)<span></span>
</td>
<td class="num">(240,374)<span></span>
</td>
<td class="num">(141,623)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Effect of foreign exchange rate changes on cash and cash equivalents</a></td>
<td class="nump">1,697<span></span>
</td>
<td class="num">(3,365)<span></span>
</td>
<td class="num">(2,815)<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 );">Net change in cash and cash equivalents</a></td>
<td class="nump">21,281<span></span>
</td>
<td class="num">(4,787)<span></span>
</td>
<td class="num">(82,912)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at beginning of year</a></td>
<td class="nump">181,374<span></span>
</td>
<td class="nump">186,161<span></span>
</td>
<td class="nump">269,073<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents', window );">Cash and cash equivalents at end of year</a></td>
<td class="nump">$ 202,655<span></span>
</td>
<td class="nump">$ 181,374<span></span>
</td>
<td class="nump">$ 186,161<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ExcessAndObsoleteInventoryCharges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Excess and Obsolete Inventory Charges</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ExcessAndObsoleteInventoryCharges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_FairValueAdjustmentOnAcquiredInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Fair Value Adjustment on Acquired Inventories</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_FairValueAdjustmentOnAcquiredInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_NonCashLossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Non-cash, Loss from Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NonCashLossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccretionAmortizationOfDiscountsAndPremiumsInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method.</p></div>
<a href="javascript: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_AccretionAmortizationOfDiscountsAndPremiumsInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AmortizationOfIntangibleAssets">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The aggregate expense charged against earnings to allocate the cost of intangible assets (nonphysical assets not used in production) in a systematic and rational manner to the periods expected to benefit from such assets. 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_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -SubTopic 230<br> -Topic 830<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 830<br> -SubTopic 230<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GainLossOnSaleOfInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing 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 (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GainLossOnSaleOfPropertyPlantEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnSaleOfPropertyPlantEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_IncreaseDecreaseInAccruedIncomeTaxesPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction.</p></div>
<a href="javascript: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_IncreaseDecreaseInAccruedIncomeTaxesPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_IncreaseDecreaseInContractWithCustomerAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 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/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_IncreaseDecreaseInContractWithCustomerAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInContractWithCustomerLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 912<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 11<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482312/912-310-45-11<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 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_IncreaseDecreaseInContractWithCustomerLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInDeferredIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa.</p></div>
<a href="javascript: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_IncreaseDecreaseInDeferredIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInInventories">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInInventories</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase (decrease) in operating assets after deduction of operating liabilities 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_IncreaseDecreaseInOtherOperatingCapitalNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_NetCashProvidedByUsedInFinancingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-24<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 25<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-25<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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_PaymentsForRepurchaseOfCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The cash outflow to reacquire common stock during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 15<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-15<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PaymentsForRepurchaseOfCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PaymentsOfDividendsCommonStock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in the form of ordinary dividends to common shareholders of the 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> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<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_PaymentsOfDividendsCommonStock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PaymentsToAcquireInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 purchase of all investments (debt, security, other) during the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 13<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_PaymentsToAcquireInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromSaleMaturityAndCollectionsOfInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 sale, maturity and collection of all investments such as debt, security and so forth 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> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockOptionPlanExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 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 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockOptionPlanExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>27
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404509280">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY - USD ($)<br> shares in Thousands, $ in Thousands</strong></div></th>
<th class="th"><div>Total</div></th>
<th class="th"><div>Common Stock [Member]</div></th>
<th class="th"><div>Additional Paid-in Capital [Member]</div></th>
<th class="th"><div>Retained Earnings [Member]</div></th>
<th class="th"><div>Accumulated Other Comprehensive Loss [Member]</div></th>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockholdersEquity', window );">Beginning Balance at Dec. 31, 2020</a></td>
<td class="nump">$ 1,262,202<span></span>
</td>
<td class="nump">$ 352<span></span>
</td>
<td class="nump">$ 807,739<span></span>
</td>
<td class="nump">$ 487,912<span></span>
</td>
<td class="num">$ (33,801)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Beginning Balance, shares (in shares) at Dec. 31, 2020</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">175,790<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">63,292<span></span>
</td>
<td class="nump">$ 3<span></span>
</td>
<td class="nump">63,289<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,703<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(161,652)<span></span>
</td>
<td class="num">$ (4)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(161,648)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,012)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">43,774<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">43,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_DividendsCommonStockCash', window );">Payment of dividends ($0.286 per common share)</a></td>
<td class="num">(43,263)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(43,263)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">279,881<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">279,881<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively</a></td>
<td class="num">(7,152)<span></span>
</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">(7,152)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="num">(7,152)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="num">(236)<span></span>
</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>
</tr>
<tr class="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 adjustments, net of tax</a></td>
<td class="num">(6,753)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,753)<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 at Dec. 31, 2021</a></td>
<td class="nump">1,430,093<span></span>
</td>
<td class="nump">$ 351<span></span>
</td>
<td class="nump">914,802<span></span>
</td>
<td class="nump">562,882<span></span>
</td>
<td class="num">(47,942)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2021</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">175,481<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">9,861<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">9,860<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">514<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">(204,314)<span></span>
</td>
<td class="num">$ (7)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(204,307)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(3,364)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">54,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends ($0.286 per common share)</a></td>
<td class="num">(45,921)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(45,921)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">215,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">215,525<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively</a></td>
<td class="num">(17,152)<span></span>
</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">(17,152)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="num">(17,152)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="nump">182<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">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_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax', window );">Foreign currency translation adjustments, net of tax</a></td>
<td class="num">(4,385)<span></span>
</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,385)<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 at Dec. 31, 2022</a></td>
<td class="nump">$ 1,438,394<span></span>
</td>
<td class="nump">$ 345<span></span>
</td>
<td class="nump">979,167<span></span>
</td>
<td class="nump">528,179<span></span>
</td>
<td class="num">(69,297)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2022</a></td>
<td class="nump">172,631<span></span>
</td>
<td class="nump">172,631<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncreaseDecreaseInStockholdersEquityRollForward', window );"><strong>Increase (Decrease) in Stockholders' Equity [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised', window );">Issuance of common stock under stock option plans</a></td>
<td class="nump">$ 3,268<span></span>
</td>
<td class="nump">$ 1<span></span>
</td>
<td class="nump">3,267<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised', window );">Issuance of common stock under stock option plans, shares</a></td>
<td class="nump">330<span></span>
</td>
<td class="nump">691<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Repurchase of common stock</a></td>
<td class="num">$ (79,794)<span></span>
</td>
<td class="num">$ (3)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(79,791)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Repurchase of common stock, shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,723)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">54,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">54,768<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsCommonStockCash', window );">Payment of dividends ($0.286 per common share)</a></td>
<td class="num">(49,079)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(49,079)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">113,234<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">113,234<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax', window );">Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively</a></td>
<td class="text">&#160;<span></span>
</td>
<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,507<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized gain (loss) on available-for-sale investments, net of tax</a></td>
<td class="nump">10,507<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Reclassification of net realized (gain) loss on the sale of available-for-sale investments</a></td>
<td class="nump">1,954<span></span>
</td>
<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,954<span></span>
</td>
</tr>
<tr class="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 adjustments, net of tax</a></td>
<td class="nump">11,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="nump">11,500<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 at Dec. 31, 2023</a></td>
<td class="nump">$ 1,504,752<span></span>
</td>
<td class="nump">$ 343<span></span>
</td>
<td class="nump">$ 1,037,202<span></span>
</td>
<td class="nump">$ 512,543<span></span>
</td>
<td class="num">$ (45,336)<span></span>
</td>
</tr>
<tr class="rc">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesIssued', window );">Balance, shares (in shares) at Dec. 31, 2023</a></td>
<td class="nump">171,599<span></span>
</td>
<td class="nump">171,599<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480483/718-10-35-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 13<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-13<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 20<br> -Section 55<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481089/718-20-55-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DividendsCommonStockCash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of paid and unpaid common stock dividends declared with the form of settlement in cash.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsCommonStockCash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncreaseDecreaseInStockholdersEquityRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IncreaseDecreaseInStockholdersEquityRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 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_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript: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 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-15<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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-9<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 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-9<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of share options (or share units) exercised during the current period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.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>
<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_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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)(2))<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_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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(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_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockholdersEquity">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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>28
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415042640">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StatementOfStockholdersEquityAbstract', window );"><strong>Statement of Stockholders' Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax', window );">Tax effect of unrealized gain on available-for-sale investments</a></td>
<td class="nump">$ 4,389<span></span>
</td>
<td class="num">$ (5,943)<span></span>
</td>
<td class="num">$ (2,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_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax', window );">Tax benefit of foreign currency translation adjustment</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 adjustment, of tax expense (benefit) for unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10A<br> -Subparagraph (f)<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_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StatementOfStockholdersEquityAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementOfStockholdersEquityAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627505571136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SignificantAccountingPoliciesTextBlock', window );">Summary of Significant Accounting Policies</a></td>
<td class="text">Summary of Significant Accounting Policies<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition, income taxes, and business combinations.</span></div><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are 39 years, building improvements&#8217; useful lives are ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-424">two</span> to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development, no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term, which, through year ended December 31, 2023, was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company would proceed to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-430">five</span> to fifteen years, completed technologies from <span style="-sec-ix-hidden:f-432">five</span> to nine years, non-compete agreements from <span style="-sec-ix-hidden:f-434">three</span> to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-438">one</span> to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows. </span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from revenue recognition criteria, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $1,190,000 in 2023, $1,257,000 in 2022, and $1,965,000 in 2021.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information, if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Only the portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are not classified as current. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $36,550,000 and $48,050,000, as of December 31, 2023 and December 31, 2022, respectively; net unrealized losses on available-for-sale investments of $7,515,000 and $19,976,000 as of December 31, 2023 and December 31, 2022, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restructuring Charges</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</span></div>Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.<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>30
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415203920">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>New Pronouncements<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract', window );"><strong>Accounting Changes and Error Corrections [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock', window );">New Pronouncements</a></td>
<td class="text">New Pronouncements<div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, "Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, "Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023. The amendments in the ASU should be applied on a retrospective basis. We did not early adopt ASU 2023-07. Management does not expect ASU 2023-07 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingChangesAndErrorCorrectionsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingChangesAndErrorCorrectionsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle.</p></div>
<a href="javascript: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 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 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)(ii)<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 (g)(2)(iii)<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 (g)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 944<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (h)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480016/944-40-65-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5<br> -Subparagraph (SAB Topic 11.M.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480530/250-10-S99-5<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 1<br> -Subparagraph (b)(4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (i)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480528/815-20-65-6<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479832/842-10-65-5<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 5<br> -Subparagraph (f)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479832/842-10-65-5<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 848<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483550/848-10-65-2<br><br>Reference 15: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 105<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479343/105-10-65-6<br><br>Reference 16: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 17: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 18: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 19: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 8<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482615/740-10-65-8<br><br>Reference 20: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 21: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 22: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 6<br> -Subparagraph (e)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482833/825-10-65-6<br><br>Reference 23: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 24: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 4<br> -Subparagraph (e)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479654/326-10-65-4<br><br>Reference 25: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 26: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 27: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 926<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (f)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483194/926-20-65-2<br><br>Reference 28: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480530/250-10-S99-6<br><br>Reference 29: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 250<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 30: 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)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483443/250-10-50-1<br><br>Reference 31: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Topic 250<br> -Publisher FASB<br> -URI https://asc.fasb.org//250/tableOfContent<br><br>Reference 32: 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)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480175/815-40-65-1<br><br>Reference 33: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(1)<br> -SubTopic 20<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481925/310-20-65-2<br><br>Reference 34: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 65<br> -Paragraph 2<br> -Subparagraph (d)(2)<br> -SubTopic 20<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481925/310-20-65-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>31
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627505655616">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresTextBlock', window );">Fair Value Measurements</a></td>
<td class="text">Fair Value Measurements<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:53.578%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,413&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">308,816&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,969&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis</span></div>Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2023, 2022, or 2021.<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>32
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415513712">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text">Cash, Cash Equivalents, and Investments<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">183,242</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">180,959&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">19,413</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">415&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">202,655</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">181,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">124,851</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,055&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,551</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26,890&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,858&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,332&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">129,392</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">218,759&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">183,965</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">374,440&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,214&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,763</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,539&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">979</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">244,230</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">454,117&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">576,277</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">854,250&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s cash balance included foreign bank balances totaling $173,614,000 and $160,611,000 as of December&#160;31, 2023 and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; sovereign bonds consist of direct debt issued by foreign governments; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury notes consist of debt securities issued by the U.S. government; and municipal bonds consist of debt securities issued by state and local government entities. All of the Company's securities as of December 31, 2023 and 2022 were denominated in U.S. Dollars.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $3,169,000 and $3,620,000 as of December 31, 2023 and 2022, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">128,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,637&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(86)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,012&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">189,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,867)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,654&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,773&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">383,589</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">588</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2022 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">167,558&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,503)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,055&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,607&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(717)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26,890&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,143&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(285)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,602&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(270)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,332&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">635&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">394,576&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">561&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,697)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">374,440&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,333&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">79&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(198)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,214&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,144&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">103&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,708)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,539&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,095&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">699,693</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">743</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(27,560)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">672,876</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(359)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">226,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,807)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">257,413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,166)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(153)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(60)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,166&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,062&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,049)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,252&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,096)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">68,557</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,561)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">233,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8,994)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">301,861</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2022 (in thousands):</span></div><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">285,087&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,591)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">187,153&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(14,609)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">472,240&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(24,200)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">47,582&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,495&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(126)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">50,077&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,425)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,614&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(465)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">102&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,716&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(468)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(285)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,858&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(285)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">967&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(67)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">957&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(104)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(171)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(11)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">382,732</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(12,718)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">190,707</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(14,842)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">573,439</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(27,560)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, no allowance for credit losses on debt securities was recorded as of December 31, 2023, 2022, or 2021. Management currently intends to hold these securities to full value recovery at maturity.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.823%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">111</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">133&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">246&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,065)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,954)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(182)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">236&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.508%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.157%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.864%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.256%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.581%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,596&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,896&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,567&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">308,816&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,270&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,697&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,872&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,448&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,443&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,969&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">129,392</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">71,888</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54,469</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">67,166</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,264</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment.</p></div>
<a href="javascript: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 65<br> -Paragraph 13<br> -Subparagraph (d)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482477/820-10-65-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_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>33
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409821472">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureTextBlock', window );">Inventories</a></td>
<td class="text">Inventories<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,201</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">71,720&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,747</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">63,337</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,854&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">162,285</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">122,480&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company recorded inventories with a fair value of $22,788,000 on the acquisition date.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recorded provisions for excess and obsolete inventories of $3,775,000 and $3,084,000 in 2023 and 2022, respectively, which reduced the carrying value of the inventories to their net realizable value.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 330<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//330/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>34
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409923536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases Leases<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">Leases<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its operations. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2023, there were no options to terminate and twenty-eight options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. Lease costs associated with variable payments were $1,175,000 in 2023, $1,009,000 in 2022, and $1,253,000 in 2021. There were no restrictions or covenants for the outstanding leases as of December 31, 2023. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2023.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total operating lease expense was $11,598,000 in 2023, $8,939,000 in 2022, and $8,180,000 in 2021. The total operating lease cash payments were $10,148,000 in 2023, $8,548,000 in 2022, and $8,225,000 in 2021. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $427,000 in 2023, $144,000 in 2022, and $154,000 in 2021.</span></div><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:82.648%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.728%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.224%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,612&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,836&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,746&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,851&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,395&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53,257&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">105,697</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The discounted present value of the future lease cash payments resulted in a lease liability of $78,601,000 and $39,752,000 as of December 31, 2023 and 2022, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company assumed multiple lease agreements, the most significant of which is for a 22,000 square-foot building in Vietnam that serves as a production plant for optical components.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In June 2023, the Company entered into a lease for a 115,000 square-foot building in Singapore to serve as a new distribution center for customers in Asia. The lease contains two components, including an 88,000 square-foot premises with a term of ten years, six months. The Company has the right and option to extend the term of this lease component for an additional period of five years, commencing upon the expiration of the original term. This lease component commenced during the second quarter of 2023, and therefore the Company recorded approximately $29,639,000, which reflects an estimated extension period of five years, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date. The second component of this Singapore lease is for a 27,000 square-foot premises with a term of eight years. The commencement date for this lease component is in the fourth quarter of 2025, and therefore it was not yet recorded on the Consolidated Balance Sheets, nor did it create any significant rights and obligations as of December 31, 2023. The Company has the right and option to extend the term of this lease component for an additional period of five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $13,231,000, none of which was payable in 2023 and which reflects an estimated extension </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">period of five years. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2021, the Company entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of ten years to serve as a new distribution center for customers in the Americas. The Company has the right and option to extend the term of this lease for an additional period of five years, commencing upon the expiration of the original ten-year term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $9,271,000, which does not reflect an estimated extension period, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average discount rate was 5.7% and 3.3% for the leases outstanding as of December 31, 2023 and December 31, 2022, respectively. The weighted-average remaining lease term was 10.5 years and 7.8 years for the leases outstanding as of December 31, 2023 and 2022, respectively.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>35
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409856784">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillDisclosureTextBlock', window );">Goodwill</a></td>
<td class="text">Goodwill<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:83.380%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.688%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">241,713&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,359&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,442)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">242,630&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,504&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">393,181</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For its 2023 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2023, 2022, or 2021.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>36
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409921872">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsDisclosureTextBlock', window );">Intangible Assets</a></td>
<td class="text">Intangible Assets<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">75,965</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,352)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">70,613</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">62,123</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(20,745)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">41,378</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">903</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(50)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">853</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(232)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">108</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">139,331</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(26,379)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,952</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,017&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(17,744)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,273&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,838&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,860)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,978&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(177)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,195&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(21,781)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,414&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company acquired customer relationships valued at $66,900,000 with an estimated useful life of fifteen years, completed technologies valued at $32,300,000 with an estimated useful life of nine years, and trademarks valued at $850,000 with an estimated useful life of three years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In connection with the acquisition of SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022, (refer to Note 21), the Company acquired completed technologies valued at $3,800,000 with an estimated useful life of 7 years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2022, the Company retired approximately $43,280,000 of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company did not record impairment charges related to intangible assets in 2023, 2022 or 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:81.623%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.445%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,389&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,066&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,711&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,737&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,008&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61,041&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,952</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IntangibleAssetsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for all or part of the information related to intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//350-30/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_IntangibleAssetsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>37
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409921056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock', window );">Accrued Expenses</a></td>
<td class="text">Accrued Expenses<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:64.002%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.057%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,835</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,191&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,645</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,554&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,774</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,121&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,827</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,847&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,244</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,282&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,049</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">29,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">72,374</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">93,235&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments, contingent upon the continued employment of key talent, of $24,040,000 that was paid fully in October 2023. The deferred payments were recorded as compensation expense over the four-year period.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,256&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,235)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,244</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>38
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409801872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Commitments and Contingencies<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock', window );">Commitments and Contingencies</a></td>
<td class="text">Commitments and Contingencies<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the Company had outstanding purchase orders totaling $61,459,000 to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2024.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2023, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $10,616,000, $5,269,000, and $547,000 in 2023, 2022, and 2021, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for commitments and contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 2: 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 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 440<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480327/954-440-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 440<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482648/440-10-50-4<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 440<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//440/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>39
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409874672">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Indemnification Provisions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GuaranteesAbstract', window );"><strong>Guarantees [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IndemnificationProvisionsTextBlock', window );">Indemnification Provisions</a></td>
<td class="text">Indemnification Provisions<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#8217;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.</span></div>In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#8217;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#8217;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_IndemnificationProvisionsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IndemnificationProvisionsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_GuaranteesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GuaranteesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409834992">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock', window );">Derivative Instruments</a></td>
<td class="text">Derivative Instruments<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s foreign currency risk management strategy is principally designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Additionally, during 2023, the Company entered into a foreign currency forward contract to exchange U.S. Dollars for &#165;40,000,000,000 to hedge the Japanese Yen purchase price of the acquisition of Moritex Corporation (refer to Note 21). Upon the settlement of this contract, the Company recorded a foreign currency loss of $8,456,000, which was recorded in "Foreign currency gain (loss)" on the Consolidated Statements of Operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:47.291%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.765%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.354%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,302</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,174&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39,700</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,136</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">145,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,505</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">185,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,480&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,619&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,240,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,466</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,590,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,238&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,345</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,258</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,161&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">600,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,255</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">700,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,281&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,470</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,112</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,278&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,218&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.204%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.888%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.358%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:18.108%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.814%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.394%"></td><td style="width:0.1%"></td></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-963"><span style="-sec-ix-hidden:f-964">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-965"><span style="-sec-ix-hidden:f-966">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:21.920%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:22.800%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.762%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.911%"></td><td style="width:0.1%"></td></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,023)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,823&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,262&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts.</p></div>
<a href="javascript: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 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480237/815-40-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5C<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-5C<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 815<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//815/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_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>41
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409921872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerTextBlock', window );">Revenue Recognition</a></td>
<td class="text">Revenue Recognition<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:61.216%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.632%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">330,415</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">390,573&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">435,220&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,665</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,115</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,135&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">122,352</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,427&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,999&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:61.125%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.616%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">734,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">848,153&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">889,253&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">103,407</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">147,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Costs to Fulfill a Contract</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $13,265,000 and $14,578,000 as of December 31, 2023 and 2022, respectively. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable, Contract Assets, and Contract Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"></td><td style="width:79.341%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.459%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">776&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">191&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(237)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">583</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:79.398%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.402%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,743&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,076&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(31,520)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,512)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,787&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,538&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,987)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,205)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(608)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">31,525</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for our contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for our contracts that have an original expected duration of more than one year, primarily related to extended warranties, is not material.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>42
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409801872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Shareholders' Equity<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EquityAbstract', window );"><strong>Equity [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock', window );">Shareholders' Equity</a></td>
<td class="text">Shareholders&#8217; Equity<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Preferred Stock</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has 400,000 shares of authorized but unissued $.01 par value preferred stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Common Stock</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $.002 par value common stock from 200,000,000 to 300,000,000.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Each outstanding share of common stock entitles the record holder to one vote on all matters submitted to a vote of the Company&#8217;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#8217;s Board of Directors.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Repurchases</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022 and 1,723,000 shares at a cost of $79,794,000 in 2023, leaving a remaining balance of $332,892,000. The 2023 repurchase included $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Dividends</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s Board of Directors declared and paid cash dividends of $0.060 per share in the first, second, and third quarters of 2021, $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022, and $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023. The dividend was increased to $0.075 per share in the fourth quarter of 2023. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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_ShareholdersEquityAndShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 shareholders' equity and share-based payment arrangement. Includes, but is not limited to, disclosure of policy and terms of share-based payment arrangement, deferred compensation arrangement, and employee stock purchase plan (ESPP).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 505<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//505/tableOfContent<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 718<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//718/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415041056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock', window );">Stock-Based Compensation</a></td>
<td class="text">Stock-Based Compensation<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Plans</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#8220;2023 Plan&#8221;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to 8,100,000 shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#8220;2001 Plan&#8221;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#8220;2007 Plan&#8221;). With the approval of the 2023 Plan, the 10,610,800 shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#8220;Carryover Shares&#8221;). As of December 31, 2023, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in 343,492 Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to 8,443,492.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, the Company had 7,978,000 shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#8217;s common stock at the grant date and generally vest over <span style="-sec-ix-hidden:f-1065">four</span> or five years based on continuous employment and expire ten years from the grant date. RSUs generally vest upon <span style="-sec-ix-hidden:f-1068">three</span> or four years of continuous employment or incrementally over such <span style="-sec-ix-hidden:f-1070">three</span> or <span style="-sec-ix-hidden:f-1071">four</span> year periods. PRSUs generally vest upon <span style="-sec-ix-hidden:f-1072">three</span> years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock Options</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:43.409%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.226%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,467&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">51.56&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,541&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(330)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(670)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57.65&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,008</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50.87</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.92</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,164</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,207</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">47.78</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.42</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,212</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2023 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,548</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50.79</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.78</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,896</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $11,104,000 in 2023, $12,267,000 in 2022, and $63,860,000 in 2021. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,691,000) in 2023, $2,548,000 in 2022, and $46,529,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:54.847%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.143%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.146%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.0</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.3&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.61</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.0</span></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Risk-free rate</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected dividend yield</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#8217;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected volatility</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected volatility was based on a combination of historical volatility of&#160;the Company&#8217;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#8217;s stock.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Expected term</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The weighted-average grant-date fair value of stock options granted was $17.76 in 2023, $21.39 in 2022, and $33.79 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total intrinsic value of stock options exercised was $6,227,000 in 2023, $8,424,000 in 2022, and $80,369,000 in 2021. The total fair value of stock options vested was $34,751,000 in 2023, $41,497,000 in 2022, and $45,328,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restricted Stock Units (RSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:62.496%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.666%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.808%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,269&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61.74&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">791&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(521)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.22&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(110)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.20&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,429</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54.22</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $46.14 in 2023, $58.06 in 2022, and $87.03 in 2021. There were 521,000, 192,000, and 16,000 RSUs that vested in 2023, 2022, and 2021, respectively.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $7,836,000 in 2023, $2,406,000 in 2022, and $568,000 in 2021. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(3,229,000) in 2023, $(1,049,000) in 2022, and $126,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.420%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.838%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62.49&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44.86&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">79</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52.23</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $44.86 in 2023 and $62.49 in 2022. No PRSUs were granted in 2021. No PRSUs vested in 2023, 2022, and 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation Expense</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company stratifies its employee population into three groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 0% to all stock-based awards for the CEO, 8% to all stock-based awards for senior management, and 13% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $234,000 in 2023, an increase to compensation expense of $1,536,000 in 2022, and a decrease to compensation expense of $255,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December&#160;31, 2023, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $58,489,000, which is expected to be recognized over a weighted-average period of 1.92 years.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total stock-based compensation expense and the related income tax benefit recognized was $54,768,000 and $8,442,000, respectively, in 2023, $54,505,000 and $9,540,000, respectively, in 2022, and $43,774,000 and $6,764,000, respectively, in 2021. No compensation expense was capitalized in 2023, 2022, or 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,979</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,016&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,480</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,535&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">36,309</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,894&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54,768</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,505&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,774&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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>44
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415023200">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Savings Plan<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock', window );">Employee Savings Plan</a></td>
<td class="text">Employee Savings Plan<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age 21 may contribute up to 100% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches 50% of the first 6% of pay an employee contributes. Company contributions vest 25%, 50%, 75%, and 100% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $3,392,000 in 2023, $3,284,000 in 2022, and $2,898,000 in 2021. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 retirement 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/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480794/715-70-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 17<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480482/715-20-55-17<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iv)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (q)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (l)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//715/tableOfContent<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (o)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (p)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (r)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480506/715-20-50-1<br><br>Reference 13: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480126/715-20-S99-2<br><br>Reference 14: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 60<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480266/715-60-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_PensionAndOtherPostretirementBenefitsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>45
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409801872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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 Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxDisclosureTextBlock', window );">Income Taxes</a></td>
<td class="text">Income Taxes<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Domestic income before taxes was $16,039,000 in 2023, $48,546,000 in 2022, and $121,729,000 in 2021. Foreign income before taxes was $119,309,000 in 2023, $202,149,000 in 2022, and $197,171,000 in 2021. </span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:48.680%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.154%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">29,084</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">48,355&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,870&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,689&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,207</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">41,835</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,287&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,648&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(24,731)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19,266)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,877)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(769)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,887</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,009&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,406&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(19,721)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(29,117)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,629)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">22,114</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,019&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td></tr></table></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:62.296%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.614%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Tax Reserves</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:81.158%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.642%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2020</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,952&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(280)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">525&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(485)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,812&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(119)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">505&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,329)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,072)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,647&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,556&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,877&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,230)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(894)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,714</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s reserve for income taxes, including gross interest and penalties, was $29,053,000 as of December 31, 2023, of which $26,685,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including interest and penalties, was $15,866,000 as of December 31, 2022, which was classified as a non-current liability. The amount of gross interest and penalties included in these balances was $3,339,000 and $2,219,000 as of December&#160;31, 2023 and 2022, respectively. If the Company&#8217;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $650,000 to $1,000,000 over the next twelve months.</span></div><div style="margin-bottom:8pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, 34.6% in Japan, and 21% in Korea, compared to the U.S. federal statutory corporate tax rate of 21%. These differences resulted in a favorable impact to the effective tax rate of 6 percentage points for 2023, 7 percentage points for 2022, and 5 percentage points for 2021. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit, derived from the tax holiday, on basic and diluted earnings per share for 2023 was not material. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Within the United States, the tax years 2019 through 2022 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2022 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company is under audit by the Commonwealth of Massachusetts for the returns filed for tax years 2020 and 2021. In addition, the Company is under audit in Ireland for the returns filed for tax years 2019 through 2020. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Interest and penalties included in income tax expense were $1,032,000 in 2023, $229,000 in 2022, and $281,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash paid for income taxes totaled $56,618,000 in 2023, $57,016,000 in 2022, and $49,435,000 in 2021.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2023 and December 31, 2022 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:66.495%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.735%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.737%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">375,360</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">386,221&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">20,916</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,962&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,848</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,284&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,897</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,117&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,243</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,116&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,840</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,881&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">339</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,521</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,889&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,514</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,102&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">457,478</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">466,625&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(943)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,661)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">456,535</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">458,964&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(28,685)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,762)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(274,327)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(298,922)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(303,012)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(301,684)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">153,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,280&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Change in Tax Structure and Global Intangible Low-Taxed Income Tax</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $437,500,000 in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $350,000,000, representing the GILTI minimum tax related to the fair value of the intellectual property.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Other Deferred Tax Assets and Liabilities</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company had foreign net operating loss carryforwards of $1,720,000, state tax credit carryforwards of $8,740,000 that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $943,000.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $943,000 that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As of December 31, 2023, the Company released the valuation allowance for state research and development tax credits of $5,427,000, as these credits are expected to be utilized to offset future state income tax liabilities.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#8217;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>46
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409838416">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Weighted Average Shares</a></td>
<td class="text">Weighted Average Shares<div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:55.058%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.124%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">172,249</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,407&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">176,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,150</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,453&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">173,399</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">174,869&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">179,916&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Stock options to purchase 6,854,092, 4,715,104, and 497,504 shares of common stock, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 365, 26,079, and 605 that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No PRSUs were excluded in the calculation of dilutive net income per share in 2023, 2022, and 2021 as PRSUs were not anti-dilutive on a weighted-average basis.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>47
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415126688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingDisclosureTextBlock', window );">Segment and Geographic Information</a></td>
<td class="text">Segment and Geographic Information<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company operates in one segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#8217;s chief operating decision maker is the chief executive officer, who makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, product line, or end market. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.</span></div><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:28.665%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.243%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.393%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">288,324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,665</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,115</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">62,946</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,005</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,028</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,958</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,937</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">343,835&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,928&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,725&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,334&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,370&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,357&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">393,690&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,135&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">195,529&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">63,141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,982&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">960&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,705&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">84,788&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue is presented geographically based on the customer&#8217;s country of domicile. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a single customer accounted for 11% and 17% of total revenue in 2022 and 2021, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue from a second customer accounted for 11% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2023 or 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>48
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409828832">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationDisclosureTextBlock', window );">Business Acquisitions</a></td>
<td class="text">Business Combinations<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Moritex Corporation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation (Moritex), a global provider of premium optical components based in Japan, for an enterprise value of &#165;40&#160;billion Japanese Yen, or approximately $270&#160;million U.S. Dollars based on the closing date foreign exchange rate. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#165;44,376,245,000 ($296,138,000 based on the closing date foreign exchange rate), of which &#165;44,227,414,000 ($295,144,000) was paid in cash on the closing date and &#165;148,831,000 ($994,000) is expected to be paid in the first quarter of 2024 as a final purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $38,088,000 as part of this transaction, to arrive at a net cash outflow of $257,056,000 on the closing date. There was no contingent consideration as part of this transaction.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Established in 1973, Moritex develops, manufactures, and sells high-end optical components, such as lenses and lighting, for industrial use. The acquisition of Moritex is expected to increase the Company's optical technology capabilities, which include our proprietary embedded liquid lenses and, more recently, computational lighting from our 2022 acquisition of SAC Sirius Advanced Cybernetics GmbH (described below). Vision technology relies on acquiring high-quality images to optimize the performance of machine vision tools. Historically, our customers have primarily used third-party lenses and lighting for image acquisition. We anticipate the portfolio of Moritex optical components will allow us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">This transaction was accounted for as a business combination. As of the date of this filing, the purchase price allocation is preliminary and may change during the one-year measurement period ending October 18, 2024 as new </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">information becomes available, particularly related to tax positions reflected as of the acquisition date. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values, which were valued using level 3 inputs, as of the acquisition date. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#8217;s consolidated financial statements. </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Transaction costs were approximately $5,800,000 and were expensed as incurred as part of SG&amp;A expenses on the Consolidated Statement of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated based on provisional amounts as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.016%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.784%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38,088&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,572&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,788&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,876&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,900&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,300&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,516&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,935&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,700)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(13,521)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22,055)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,864)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,594)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">296,138</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sheet.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"> </span><span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The customer relationships are being amortized to SG&amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">SAC Sirius Advanced Cybernetics GmbH</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#8217;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's consolidated financial statements.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415126688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss from Fire<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherLiabilitiesDisclosureAbstract', window );"><strong>Other Liabilities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CatastropheTextBlock', window );">Loss from Fire</a></td>
<td class="text">Loss (Recovery) from Fire<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On June 7, 2022, the Company&#8217;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses of inventories and other assets of $48,339,000, partially offset by insurance proceeds received from the Company's insurance carrier of $27,560,000. In 2023, the Company recorded recoveries related to the fire of $8,000,000, consisting of $2,500,000 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $5,500,000 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire. Management does not anticipate additional recoveries. These losses and recoveries are presented in the caption "Loss (recovery) from fire" on the Consolidated Statements of Operations.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CatastropheTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Catastrophe</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CatastropheTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_OtherLiabilitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherLiabilitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415041056">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock', window );">Restructuring Charges</a></td>
<td class="text">Restructuring Charges<div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In December 2022, following its acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21), the Company completed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of 18 employees and the termination of certain operating lease contracts, and resulted in charges of $1,657,000 in 2022. These charges are included in &#8220;Restructuring charges&#8221; on the Consolidated Statements of Operations.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.194%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">One-time termination benefits</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract termination costs</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,657</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-bottom:16pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the activity in the Company&#8217;s restructuring reserve, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.104%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="width:1.0%"></td><td style="width:14.546%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">One-time Termination Benefits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">964&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,039&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(973)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,048)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//420/tableOfContent<br><br>Reference 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 (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>51
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413952720">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Subsequent Events<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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_SubsequentEventsAbstract', window );"><strong>Subsequent Events [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventsTextBlock', window );">Subsequent Events</a></td>
<td class="text">Subsequent Events<div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On February 15, 2024, the Company's Board of Directors declared a cash dividend of $0.075 per share. The dividend is payable March 14, 2024 to all shareholders of record as of the close of business on February 29, 2024.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//855/tableOfContent<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>52
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409776240">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II - Valuation and Qualifying Accounts<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ValuationAndQualifyingAccountsAbstract', window );"><strong>SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock', window );">Schedule II - Valuation and Qualifying Accounts</a></td>
<td class="text">SCHEDULE II &#8211; VALUATION AND QUALIFYING ACCOUNTS<div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"><tr><td style="width:1.0%"></td><td style="width:30.711%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.536%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.914%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.581%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.472%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:2.581%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.481%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Additions</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Description</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>Beginning<br/>of Period</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged&#160;to<br/>Costs and<br/>Expenses</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Charged<br/>to Other<br/>Accounts</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Deductions</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Balance&#160;at<br/>End of<br/>Period</span></td></tr><tr><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(In thousands)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Allowance for Credit Losses on Accounts Receivable:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">583&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">776&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">191&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(237)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">831&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(55)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">776&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve&#160;for Sales Returns:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,018&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,291&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,518&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred Tax Valuation Allowance:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,661&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,718)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">943&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,188&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,234&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,889&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,650)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,661&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,568&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,420&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,800)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,188&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Specific write-offs</span></div><div style="padding-left:36pt;text-indent:-36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(2)</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt">Foreign currency exchange rate changes</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Regulation S-X (SX)<br> -Number 210<br> -Section 12<br> -Subsection 09<br> -Publisher SEC<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</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_srt_ValuationAndQualifyingAccountsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_ValuationAndQualifyingAccountsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>srt_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408473392">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Pay vs Performance Disclosure - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_PvpTable', window );"><strong>Pay vs Performance Disclosure</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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">$ 113,234<span></span>
</td>
<td class="nump">$ 215,525<span></span>
</td>
<td class="nump">$ 279,881<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_PvpTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 402<br> -Subsection v<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_PvpTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetIncomeLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of profit or loss for the period, net of income taxes, which is attributable to the parent.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>54
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411966656">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Insider Trading Arrangements<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2023 </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrAdoptedFlag', window );">Non-Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrTrmntdFlag', window );">Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_NonRule10b51ArrTrmntdFlag', window );">Non-Rule 10b5-1 Arrangement Terminated</a></td>
<td class="text">false<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_IndividualAxis=cgnx_JoergKuechenMember', window );">Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_MtrlTermsOfTrdArrTextBlock', window );">Material Terms of Trading Arrangement</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2023, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of the Exchange Act Rule 10b5-1(c):</span></div><div style="text-align:justify"><span><br/></span></div><div style="padding-left:36pt;text-align:justify;text-indent:-18pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%">&#8226;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt">On December 12, 2023, Joerg Kuechen, the Chief Technology Officer of the Company, adopted a trading arrangement for the sale of shares of the Company&#8217;s common stock (a &#8220;Rule 10b5-1 Trading Plan&#8221;). Mr. Kuechen&#8217;s Rule 10b5-1 Trading Plan, which has a term ending on December 6, 2024, provides for the exercise of vested stock options to acquire up to 202,556 shares of common stock and the sale of up to 215,818 shares of common stock pursuant to the terms of the plan. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">During the quarter ended December 31, 2023, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company adopted or terminated a &#8220;non-Rule 10b5-1 trading arrangement,&#8221; as defined in Item 408 of Regulation S-K.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrIndName', window );">Name</a></td>
<td class="text">Joerg Kuechen<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrIndTitle', window );">Title</a></td>
<td class="text">Chief Technology Officer<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_Rule10b51ArrAdoptedFlag', window );">Rule 10b5-1 Arrangement Adopted</a></td>
<td class="text">true<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrAdoptionDate', window );">Adoption Date</a></td>
<td class="text">December 12, 2023<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrDuration', window );">Arrangement Duration</a></td>
<td class="text">360 days<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember', window );">Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member] | Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrSecuritiesAggAvailAmt', window );">Aggregate Available</a></td>
<td class="nump">202,556<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember', window );">Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member] | Joerg Kuechen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TradingArrByIndTable', window );"><strong>Trading Arrangements, by Individual</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_ecd_TrdArrSecuritiesAggAvailAmt', window );">Aggregate Available</a></td>
<td class="nump">215,818<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_MtrlTermsOfTrdArrTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_MtrlTermsOfTrdArrTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>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_ecd_NonRule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_NonRule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_NonRule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrAdoptedFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrAdoptedFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_Rule10b51ArrTrmntdFlag">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_Rule10b51ArrTrmntdFlag</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:booleanItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrByIndTable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrByIndTable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrAdoptionDate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrAdoptionDate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrDuration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph C<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrDuration</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli: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_ecd_TrdArrIndName">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrIndName</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrIndTitle">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrIndTitle</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TrdArrSecuritiesAggAvailAmt">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>Reference 1: http://www.xbrl.org/2003/role/presentationRef<br> -Publisher SEC<br> -Name Regulation S-K<br> -Number 229<br> -Section 408<br> -Subsection a<br> -Paragraph 2<br> -Subparagraph D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TrdArrSecuritiesAggAvailAmt</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>ecd_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli: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_ecd_IndividualAxis=cgnx_JoergKuechenMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_IndividualAxis=cgnx_JoergKuechenMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">ecd_TradingArrAxis=cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>55
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408253008">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies (Policies)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_NatureOfOperationsPolicyTextBlock', window );">Nature of Operations</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Nature of Operations</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UseOfEstimates', window );">Use of Estimates in the Preparation of Financial Statements</a></td>
<td class="text"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Use of Estimates in the Preparation of Financial Statements</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition, income taxes, and business combinations.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConsolidationPolicyTextBlock', window );">Basis of Consolidation</a></td>
<td class="text"><div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Basis of Consolidation</span></div><div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock', window );">Foreign Currency</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Foreign Currency Translation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The financial statements of the Company&#8217;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#8217; equity as accumulated other comprehensive loss.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueOfFinancialInstrumentsPolicy', window );">Fair Value Measurements</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Fair Value Measurements</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#8217;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentPolicyTextBlock', window );">Cash, Cash Equivalents, and Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Cash, Cash Equivalents, and Investments</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#8217;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#8217; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#8220;Other income (expense)&#8221; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TradeAndOtherAccountsReceivablePolicy', window );">Accounts Receivable</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounts Receivable</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#8217;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryPolicyTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Inventories</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#8217;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentPolicyTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Property, Plant, and Equipment</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#8217; estimated useful lives. Buildings&#8217; original useful lives are 39 years, building improvements&#8217; useful lives are ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from <span style="-sec-ix-hidden:f-424">two</span> to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#8217;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InternalUseSoftwarePolicy', window );">Internal-use Software</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Internal-use Software</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development, no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeLeasesPolicyTextBlock', window );">Leases</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Leases</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#8217;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term, which, through year ended December 31, 2023, was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy', window );">Goodwill</a></td>
<td class="text"><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Goodwill</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter </span></div>and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company would proceed to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IntangibleAssetsFiniteLivedPolicy', window );">Intangible Assets</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Intangible Assets</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets are stated at cost and amortized over the assets&#8217; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from <span style="-sec-ix-hidden:f-430">five</span> to fifteen years, completed technologies from <span style="-sec-ix-hidden:f-432">five</span> to nine years, non-compete agreements from <span style="-sec-ix-hidden:f-434">three</span> to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardProductWarrantyPolicy', window );">Warranty Obligations</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Warranty Obligations</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from <span style="-sec-ix-hidden:f-438">one</span> to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesPolicyTextBlock', window );">Contingencies</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Contingencies</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesPolicyTextBlock', window );">Derivative Instruments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Derivative Instruments</span></div>Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#8217;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#8220;net&#8221; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueRecognitionPolicyTextBlock', window );">Revenue Recognition</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Revenue Recognition</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#8220;Revenue from Contracts with Customers.&#8221; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Contract with the Customer</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.</span></div><div style="margin-top:6pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Identifying the Performance Obligations in the Contract</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#8217;s promise to transfer the goods and are expensed when revenue is recognized.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Determining the Transaction Price</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#8217;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Allocating the Transaction Price to the Performance Obligations</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.</span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%">Recognizing Revenue When (or As) the Performance Obligations are Satisfied</span></div><div style="margin-top:3pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#8217;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#8217;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. </span></div><div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">For the Company&#8217;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from revenue recognition criteria, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#8217;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock', window );">Research and Development</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Research and Development</span></div>Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingCostsPolicyTextBlock', window );">Advertising Costs</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Advertising Costs</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Advertising costs are expensed as incurred and totaled $1,190,000 in 2023, $1,257,000 in 2022, and $1,965,000 in 2021.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy', window );">Stock-Based Compensation</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Stock-Based Compensation</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company&#8217;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information, if that information is expected to result in a material increase in share price.</span></div><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#8220;forfeitures&#8221; is distinct from &#8220;expirations&#8221; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#8217;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxPolicyTextBlock', window );">Taxes</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Taxes</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Only the portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are not classified as current. It is the Company&#8217;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerSharePolicyTextBlock', window );">Net Income Per Share</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Net Income Per Share</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ComprehensiveIncomePolicyPolicyTextBlock', window );">Comprehensive Income</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Comprehensive Income</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $36,550,000 and $48,050,000, as of December 31, 2023 and December 31, 2022, respectively; net unrealized losses on available-for-sale investments of $7,515,000 and $19,976,000 as of December 31, 2023 and December 31, 2022, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.</span></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock', window );">Concentrations of Risk</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Concentrations of Risk</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"> </span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Certain of the Company&#8217;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsPolicy', window );">Business Acquisitions</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Business Combinations</span></div>The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#8217;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy', window );">Restructuring Charges</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Restructuring Charges</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#8220;communication date&#8221;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks </span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.</span></div>Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.<span></span>
</td>
</tr>
<tr class="re">
<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 );">New Accounting Pronouncements</a></td>
<td class="text">New Pronouncements<div style="margin-top:6pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-09, "Income Taxes (Topic 740): Improvements to Income Tax Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2023-07, "Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023. The amendments in the ASU should be applied on a retrospective basis. We did not early adopt ASU 2023-07. Management does not expect ASU 2023-07 to have a material impact on the Company's financial statements and disclosures.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The amendments in these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.</span></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Concentrations of Risk.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_NatureOfOperationsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nature of Operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NatureOfOperationsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccountingPoliciesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AccountingPoliciesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdvertisingCostsPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for advertising cost.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -SubTopic 35<br> -Topic 720<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingCostsPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_CommitmentsAndContingenciesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 954<br> -SubTopic 450<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480598/954-450-50-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 460<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ComprehensiveIncomePolicyPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 comprehensive 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;">us-gaap_ComprehensiveIncomePolicyPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 cost associated with exit or disposal activity or restructuring. Excludes entity newly acquired in business combination and discontinued operation.</p></div>
<a href="javascript: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 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 5.P.3,4)<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_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy</td>
</tr>
<tr>
<td style="padding-right: 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_DerivativesPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 derivative instruments and hedging 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 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-2<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(n))<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> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1A<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-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_DerivativesPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_GoodwillAndIntangibleAssetsGoodwillPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 24<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482548/350-20-55-24<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482573/350-20-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 350<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Publisher FASB<br> -URI https://asc.fasb.org//350-20/tableOfContent<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy</td>
</tr>
<tr>
<td style="padding-right: 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_IntangibleAssetsFiniteLivedPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such 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 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://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 (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 920<br> -SubTopic 350<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483256/920-350-50-4<br><br>Reference 6: 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_IntangibleAssetsFiniteLivedPolicy</td>
</tr>
<tr>
<td style="padding-right: 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_InternalUseSoftwarePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for costs incurred when both (1) the software is acquired, internally developed, or modified solely to meet the entity's internal needs, and (2) during the software's development or modification, no substantive plan exists or is being developed to market the software externally.</p></div>
<a href="javascript: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 1<br> -SubTopic 40<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482633/350-40-30-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 6<br> -SubTopic 50<br> -Topic 350<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482610/350-50-25-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_InternalUseSoftwarePolicy</td>
</tr>
<tr>
<td style="padding-right: 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_InvestmentPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 investment in financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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(3)(b))<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 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 3: 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(f)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-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(f)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-03(f)(3))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479886/946-10-S99-3<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 12<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-12<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 19<br> -Subparagraph (2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-19<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_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_RevenueRecognitionPolicyTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-07(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483575/946-220-S99-1<br><br>Reference 2: 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 (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483426/235-10-50-4<br><br>Reference 3: 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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RevenueRecognitionPolicyTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_StandardProductWarrantyPolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 standard warranties including the methodology for measuring the liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardProductWarrantyPolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_TradeAndOtherAccountsReceivablePolicy">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481569/310-20-50-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11B<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-11B<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 310<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-1<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -SubTopic 10<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-6<br><br>Reference 6: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15<br> -Subparagraph (d)<br> -SubTopic 10<br> -Topic 310<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-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_TradeAndOtherAccountsReceivablePolicy</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UseOfEstimates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-4<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 11<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-11<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -SubTopic 10<br> -Topic 275<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-12<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UseOfEstimates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>56
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413975024">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FairValueDisclosuresAbstract', window );"><strong>Fair Value Disclosures [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock', window );">Assets and Liabilities Measured at Fair Value on a Recurring Basis</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:10pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:53.578%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Quoted&#160;Prices&#160;in<br/>Active Markets<br/>for Identical<br/>Assets (Level&#160;1)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Significant&#160;Other<br/>Observable<br/>Inputs (Level&#160;2)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unobservable Inputs                       (Level 3)</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,413&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">308,816&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,969&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">151&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Liabilities:</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">106&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482106/820-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 820<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (b)<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_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414999168">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock', window );">Components of Cash, Cash Equivalents and Investments</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Cash, cash equivalents, and investments consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.422%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">183,242</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">180,959&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Money market instruments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">19,413</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">415&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">202,655</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">181,374&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">124,851</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">164,055&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,551</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26,890&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">990</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Agency bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,858&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,332&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Municipal bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">624&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current investments</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">129,392</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">218,759&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">183,965</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">374,440&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">43,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,214&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,763</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33,539&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">979</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,924&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current investments</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">244,230</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">454,117&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">576,277</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">854,250&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock', window );">Summary of Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:36.583%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.002%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.005%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amortized<br/>Cost</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Gains</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">128,150&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,299)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,637&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(86)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,012&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-current:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">189,326&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">506&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,867)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">183,965&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,654&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">82&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,773&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,010)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,763&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(58)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">383,589</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">588</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock', window );">Gross Unrealized Losses and Fair Value for Available-for-Sale Investments</a></td>
<td class="text"><div><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:34.289%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.885%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.032%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.328%"></td><td style="width:0.1%"></td></tr><tr style="height:15pt"><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Less than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized Loss<br/>Position For Greater than<br/>12 Months</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Unrealized<br/>Losses</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">30,770&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(359)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">226,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,807)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">257,413&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,166)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,725&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(153)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(60)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">23,166&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(213)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,062&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,049)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,252&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(47)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,096)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,968&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(80)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">68,557</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,561)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">233,304</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(8,994)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">301,861</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,555)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RealizedGainLossOnInvestmentsTableTextBlock', window );">Realized Gain (Loss) on Investments</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):</span></div><div style="margin-top:9pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.823%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.519%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.524%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized gains</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">111</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">133&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">246&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross realized losses</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2,065)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(315)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(10)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net realized gains (losses)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(1,954)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(182)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">236&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock', window );">Effective Maturity Dates of Available-for-Sale Investments</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the effective maturity dates of the Company&#8217;s available-for-sale investments as of December&#160;31, 2023 (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:25.508%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.157%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.864%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:8.256%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:7.818%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:9.581%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">&lt;1&#160;Year</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">1-2&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2-3&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">3-4&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">4-5&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">5-7&#160;Years</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Corporate bonds</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">124,851&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62,596&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,906&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44,896&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">31,567&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">308,816&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Treasury notes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,441&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,115&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,270&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,697&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,523&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Asset-backed securities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,551&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,872&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,448&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,443&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,314&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Sovereign bonds</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">990&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">979&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,969&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">129,392</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">71,888</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54,469</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">67,166</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,264</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">373,622</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Components of cash cash equivalents and investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 maturities of an entity's investments as well as any other information pertinent to the investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_RealizedGainLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 realized gains and losses on investments reported in the statement of 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;">us-gaap_RealizedGainLossOnInvestmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to 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_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 all investments in an unrealized loss position, including those for which other-than-temporary impairments have not been recognized in earnings (including investments for which a portion of an other-than-temporary impairment has been recognized in other comprehensive income), a tabular disclosure of the aggregate related fair value of investments with unrealized losses and the aggregate amount of unrealized losses (that is, the amount by which amortized cost basis exceeds 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/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-6<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627504698752">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Inventories (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryDisclosureAbstract', window );"><strong>Inventory Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock', window );">Inventories</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Inventories consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></div></td><td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Raw materials</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">93,201</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">71,720&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Work-in-process</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,747</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">906&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Finished goods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">63,337</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">49,854&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">162,285</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">122,480&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfInventoryCurrentTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(c))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 210<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483489/210-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfInventoryCurrentTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>59
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413940224">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant, and Equipment (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentTextBlock', window );">Property, Plant, and Equipment</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Property, plant, and equipment consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:70.935%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.516%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.517%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Land</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,805</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,951&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Buildings</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">34,117</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">24,533&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Building improvements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,992</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">45,003&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Leasehold improvements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">19,611</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,491&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Computer hardware and software</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">55,154</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53,663&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Manufacturing test equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">36,182</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,176&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Furniture and fixtures</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,361</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6,378&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">206,222</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">175,195&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Less: accumulated depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(100,373)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(95,481)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">105,849</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">79,714&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>60
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413910688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock', window );">Schedule of lease payments</a></td>
<td class="text"><div style="margin-top:9pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Future operating lease cash payments are as follows (in thousands):</span></div><div style="margin-top:14pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:82.648%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:2.728%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.224%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount </span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,612&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,836&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,746&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,851&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,395&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53,257&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">105,697</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>61
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409944896">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfGoodwillTextBlock', window );">Changes in the Carrying Value of Goodwill</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the carrying value of goodwill were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:83.380%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.688%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">241,713&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,359&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,442)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">242,630&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Acquisition of Moritex Corporation (refer to Note 21)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;Foreign exchange rate changes</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,504&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">393,181</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>62
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627407361232">
<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>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock', window );">Amortized Intangible Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Intangible assets consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">75,965</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,352)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">70,613</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">62,123</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(20,745)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">41,378</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">903</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(50)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">853</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">340</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(232)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">108</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">139,331</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(26,379)</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,952</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Gross<br/>Carrying<br/>Value</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Accumulated<br/>Amortization</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Net<br/>Carrying<br/>Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,017&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(17,744)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,273&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,838&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,860)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,978&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Non-compete agreements</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">340&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(177)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">163&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,195&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(21,781)</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,414&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock', window );">Estimated Amortization Expense Succeeding Fiscal Years</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:81.623%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.445%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline">Year Ended December&#160;31,</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2024</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,389&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2025</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,066&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2026</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,711&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2027</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,737&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2028</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,008&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Thereafter</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61,041&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,952</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>63
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415003872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PayablesAndAccrualsAbstract', window );"><strong>Payables and Accruals [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock', window );">Constituents of Accrued Expenses</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Accrued expenses consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:64.002%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.057%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign retirement obligations</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">12,835</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,191&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Incentive compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,645</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">18,554&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Salaries and payroll taxes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,774</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,121&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vacation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,827</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,847&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,244</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred payments related to Sualab Co., Ltd. acquisition (1)</span></div></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,282&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,049</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">29,865&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">72,374</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">93,235&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments, contingent upon the continued employment of key talent, of $24,040,000 that was paid fully in October 2023. The deferred payments were recorded as compensation expense over the four-year period.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in the warranty obligation were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,256&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,235)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,244</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock', window );">Changes in Warranty Obligations</a></td>
<td class="text"><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:81.209%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.591%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2020</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,256&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,235)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,427&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,876&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,928)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,375&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Provisions for warranties issued during the period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,940&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Fulfillment of warranty obligations</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3,078)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,244</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PayablesAndAccrualsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PayablesAndAccrualsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the components of accrued liabilities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>64
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408235136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock', window );">Schedule of Notional Amounts of Outstanding Derivative Positions</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The Company had the following outstanding forward contracts (in thousands): </span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:47.291%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.765%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:11.180%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.354%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Currency</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline">USD Equivalent</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">Notional Value</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline">USD Equivalent</span></td></tr><tr style="height:9pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Euro</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">40,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">44,302</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">60,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,174&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Singapore Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39,700</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">30,136</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Mexican Peso</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">145,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,505</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">185,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,480&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Chinese Renminbi</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,025</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">55,000&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">7,619&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Hungarian Forint</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2,240,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,466</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,590,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,238&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">British Pound</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,345</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,258</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,445&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,161&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Japanese Yen</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">600,000</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4,255</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">700,000&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,281&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Canadian Dollar</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,470</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,112</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,730&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,278&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Swiss Franc</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,120&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,218&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock', window );">Schedule of Derivative Instruments in Statement of Financial Position, Fair Value</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:15.274%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.204%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.350%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.888%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.788%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.358%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Asset Derivatives</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Liability Derivatives</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet  Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Balance<br/>Sheet   Location</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Fair Value</span></td></tr><tr style="height:24pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Economic hedge forward contracts</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Prepaid expenses and other current assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OffsettingAssetsTableTextBlock', window );">Offsetting Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):</span></div><div style="margin-top:14pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:18.108%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.709%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:17.814%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.562%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.394%"></td><td style="width:0.1%"></td></tr><tr><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-963"><span style="-sec-ix-hidden:f-964">Asset Derivatives</span></span></span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"><span style="-sec-ix-hidden:f-965"><span style="-sec-ix-hidden:f-966">Liability Derivatives</span></span></span></td></tr><tr><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">December 31, 2023</span></td><td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">December 31, 2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized assets</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts of recognized liabilities</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gross amounts offset</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of assets presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">151</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net amount of liabilities presented</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">106</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">479&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock', window );">Derivative Instruments, Gain (Loss)</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):</span></div><div style="margin-top:10pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:21.920%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:22.800%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.762%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.908%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.911%"></td><td style="width:0.1%"></td></tr><tr style="height:12pt"><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Location in Financial Statements</span></td><td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%">Derivatives Not Designated as Hedging Instruments:</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Gains (losses) recognized in current operations</span></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign currency gain (loss)</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(10,023)</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9,823&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,262&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OffsettingAssetsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 and other financial assets that are subject to offsetting, including master netting arrangements.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483466/210-20-50-4<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<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_OffsettingAssetsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments.</p></div>
<a href="javascript: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 4E<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4E<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4C<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4C<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)<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_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the 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://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 notional amounts of outstanding derivative positions.</p></div>
<a href="javascript: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 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>65
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415138848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueTableTextBlock', window );">Disaggregation of Revenue</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:61.216%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.826%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.630%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.632%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Americas</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">330,415</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">390,573&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">435,220&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,665</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Greater China</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,115</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,135&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other Asia</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">122,352</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,427&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">153,999&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><div style="margin-top:1pt;text-align:justify"><span><br/></span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes disaggregated revenue information by revenue type (in thousands):</span></div><div style="margin-top:11pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:61.125%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.466%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.824%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.616%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Year Ended December 31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Standard products and services</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">734,140</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">848,153&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">889,253&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Application-specific customer solutions</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">103,407</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,937&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">147,845&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock', window );">Allowance for Credit Loss</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes changes in the allowance for credit losses (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"><tr><td style="width:1.0%"></td><td style="width:79.341%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.459%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">776&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">191&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(237)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">730&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Increases to the allowance for credit losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">500&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Write-offs, net of recoveries</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(645)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">583</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock', window );">Contract with Customer, Liability</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the deferred revenue and customer deposits activity (in thousands):</span></div><div style="margin-top:8pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:79.398%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.402%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amount</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,743&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,076&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(31,520)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,512)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">40,787&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferral of revenue billed in the current period, net of recognition</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,538&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Recognition of revenue deferred in prior period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(20,987)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Returned customer deposit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(9,205)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(608)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">31,525</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 financing receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 310<br> -SubTopic 10<br> -Section 50<br> -Paragraph 11B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481962/310-10-50-11B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_ContractWithCustomerAssetAndLiabilityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>66
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414274032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock', window );">Summary of Stock Option Activity</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company&#8217;s stock option activity:</span></div><div style="margin-bottom:5pt;margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:43.409%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.223%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.226%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Exercise<br/>Price</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Weighted-<br/>Average<br/>Remaining<br/>Contractual<br/>Term<br/>(in&#160;years)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Aggregate<br/>Intrinsic Value<br/>(in&#160;thousands)</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,467&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">51.56&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,541&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.33&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercised</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(330)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33.64&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(670)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">57.65&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Outstanding as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,008</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50.87</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.92</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,164</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Exercisable as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,207</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">47.78</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.42</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,212</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Options vested or expected to vest as of&#160;</span></div><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;December 31, 2023 (1)</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">8,548</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">50.79</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.78</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,896</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><div style="margin-top:5pt;padding-left:36pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The total cash received as a result of stock option exercises was $11,104,000 in 2023, $12,267,000 in 2022, and $63,860,000 in 2021. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,691,000) in 2023, $2,548,000 in 2022, and $46,529,000 in 2021.</span></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock', window );">Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:54.847%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.996%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.143%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.146%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Risk-free rate</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">4.0</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2.2&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1.3&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected dividend yield</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">0.61</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.44&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">0.27&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected volatility</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">39</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">37&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Expected term (in years)</span></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5.0</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5.5</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">6.0</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock', window );">Nonvested Restricted Stock Shares Activity</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's RSUs activity:</span></div><div style="margin-top:10pt;text-align:center"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:62.496%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.666%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:19.808%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in&#160;thousands)</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average<br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,269&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">61.74&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">791&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46.14&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(521)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.22&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(110)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">59.20&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,429</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54.22</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock', window );">Schedule of Performance Restricted Stock Units</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline">Performance Restricted Stock Units (PRSUs)</span></div><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the Company's PRSUs activity:</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:65.420%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.712%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.838%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Shares<br/>(in thousands)</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Weighted-Average <br/>Grant Date Fair Value</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2022</span></div></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">33&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">62.49&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Granted</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">46&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">44.86&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Vested</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Forfeited or expired</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Nonvested as of December 31, 2023</span></div></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">79</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">52.23</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock', window );">Stock-Based Compensation Expense</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"><tr><td style="width:1.0%"></td><td style="width:51.176%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.318%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.534%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.320%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cost of revenue</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,979</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,016&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,345&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Research, development, and engineering</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16,480</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,693&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,535&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Selling, general, and administrative</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">36,309</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">34,796&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28,894&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">54,768</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">54,505&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">43,774&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_NonvestedRestrictedStockSharesActivityTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of the changes in outstanding nonvested restricted stock 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_NonvestedRestrictedStockSharesActivityTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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_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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>67
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408752016">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 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 Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock', window );">Constituents of Provision for Income Taxes</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Income tax expense consisted of the following (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:48.680%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.151%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:15.154%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Current:</span></td><td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">29,084</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">48,355&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">27,870&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3,544</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,689&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,372&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">9,207</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">10,243&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,406&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">41,835</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">64,287&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">41,648&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred:</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Federal</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(24,731)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(40,772)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(19,266)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(5,877)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(8,354)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(769)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,887</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">20,009&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">17,406&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(19,721)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(29,117)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,629)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">22,114</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">35,170&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">39,019&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock', window );">Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#8217;s income tax expense, or effective tax rate, was as follows:</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"><tr><td style="width:1.0%"></td><td style="width:62.296%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.613%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.532%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:10.614%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year&#160;Ended&#160;December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense at U.S. federal statutory corporate tax rate</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">21</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">State income taxes, net of federal benefit</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign tax rate differential</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(6)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credits</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Taxation on multinational operations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax reserves</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">3</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Limitation on deduction for executive compensation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to employee stock-based compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax expense related to tax return filings</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax expense related to rate revaluation on state tax assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><div><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit related to GILTI adjustments</span></div></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(2)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(3)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Discrete tax benefit for release of valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(4)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%">Discrete tax benefit for audit settlements</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">2</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Income tax expense</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">16</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">%</span></td></tr></table></div><span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SummaryOfIncomeTaxContingenciesTextBlock', window );">Changes in the Reserve for Income Taxes, Excluding Interest and Penalties</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:81.158%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:16.642%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2020</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,952&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(280)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">100&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">525&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(485)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2021</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,812&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(119)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2,850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">505&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,329)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,072)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">13,647&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(242)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in prior periods</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">12,556&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Additions as a result of tax positions taken in the current period</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,877&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions relating to settlements with taxing authorities</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,230)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reductions as a result of the expiration of the applicable statutes of limitations</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(894)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance of reserve for income taxes as of December 31, 2023</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">25,714</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock', window );">Constituents of Deferred Tax Assets</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2023 and December 31, 2022 were as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:66.495%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.735%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.737%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">December&#160;31,</span></td></tr><tr><td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax assets:</span></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Intangible asset in connection with change in tax structure</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">375,360</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">386,221&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Stock-based compensation expense</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">20,916</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">21,962&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Tax credit carryforwards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">7,848</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,284&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventory and revenue related</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">10,897</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">8,117&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Bonuses, commissions, and other compensation</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">6,243</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">5,116&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Depreciation</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,840</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,881&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign net operating losses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">339</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">53&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Capitalization of R&amp;D expenses</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">28,521</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,889&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">5,514</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">15,102&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Total deferred tax assets</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">457,478</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">466,625&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Valuation allowance</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(943)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(7,661)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">456,535</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">458,964&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred tax liabilities:</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Amortization</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(28,685)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,762)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">GILTI tax basis differences in connection with change in tax structure</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(274,327)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(298,922)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">(303,012)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(301,684)</span></td><td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr style="height:14pt"><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Net deferred taxes</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">153,523</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">157,280&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_SummaryOfIncomeTaxContingenciesTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months.</p></div>
<a href="javascript: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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<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><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 19<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-19<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SummaryOfIncomeTaxContingenciesTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>68
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413918336">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock', window );">Calculation of Weighted Average Shares</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">Weighted-average shares were calculated as follows (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:55.058%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.976%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.124%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%">&#160;</span></td><td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Year Ended December&#160;31,</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">2023</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2022</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%">2021</span></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Basic weighted-average common shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">172,249</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">173,407&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">176,463&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Effect of dilutive stock awards</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,150</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,462&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,453&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Diluted weighted-average common and common-equivalent shares outstanding</span></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">173,399</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">174,869&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">179,916&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EarningsPerShareAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EarningsPerShareAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit).</p></div>
<a href="javascript: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> -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_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>69
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414001488">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SegmentReportingAbstract', window );"><strong>Segment Reporting [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock', window );">Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas</a></td>
<td class="text"><div style="margin-top:5pt"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes information about geographic areas (in thousands):</span></div><div style="margin-top:5pt"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"><tr><td style="width:1.0%"></td><td style="width:28.665%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.243%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.389%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.533%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:12.393%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">United&#160;States</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Europe</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Greater China </span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Other</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2023</span></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">288,324</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">220,665</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,115</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">164,443</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">837,547</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">62,946</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,005</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">17,028</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">15,958</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">112,937</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2022</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">343,835&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">234,643&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">227,447&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,165&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,006,090&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,928&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">14,725&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,334&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,370&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">86,357&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Year Ended December 31, 2021</span></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Revenue</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">393,690&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">247,744&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">200,135&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">195,529&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,037,098&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Long-lived assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">63,141&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">16,982&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">960&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">3,705&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">84,788&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 280<br> -SubTopic 10<br> -Section 50<br> -Paragraph 41<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-41<br><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_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:textBlockItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>70
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414039648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions - (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationsAbstract', window );"><strong>Business Combinations [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock', window );">Schedule of Recognized Identified Assets Acquired and Liabilities Assumed</a></td>
<td class="text"><div style="margin-top:5pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The purchase price was allocated based on provisional amounts as follows (in thousands):</span></div><div style="margin-top:6pt;text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:79.016%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:18.784%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash and cash equivalents</span></td><td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">38,088&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts receivable</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">11,572&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Inventories</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">22,788&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Property, plant and equipment</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">19,876&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Goodwill</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">145,047&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Customer relationships</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">66,900&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Completed technologies</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">32,300&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Trademarks</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">850&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax assets</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,516&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other assets</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">4,935&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accounts payable</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(6,700)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Accrued expenses</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(13,521)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Deferred income tax liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(22,055)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Reserve for income taxes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(5,864)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Other liabilities</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(2,594)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;&#160;&#160;Purchase price</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">296,138</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_BusinessCombinationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BusinessCombinationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree.</p></div>
<a href="javascript: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 805<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Paragraph 1<br> -Section 50<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_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>71
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414006928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges (Tables)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock', window );">Restructuring and Related Costs</a></td>
<td class="text"><div style="margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):</span></div><div><span><br/></span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:72.876%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td style="width:0.1%"></td><td style="width:0.530%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:24.194%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="padding:0 1pt"></td><td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Amount</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">One-time termination benefits</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Contract termination costs</span></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">1,657</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock', window );">Schedule of Restructuring Reserve by Type of Cost</a></td>
<td class="text"><div style="margin-bottom:16pt;margin-top:9pt;text-align:justify"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%">The following table summarizes the activity in the Company&#8217;s restructuring reserve, which is included in &#8220;Accrued expenses&#8221; on the Consolidated Balance Sheets (in thousands):</span></div><div style="text-align:justify"><table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"><tr><td style="width:1.0%"></td><td style="width:52.701%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:14.104%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td style="width:1.0%"></td><td style="width:13.081%"></td><td style="width:0.1%"></td><td style="width:0.1%"></td><td style="width:0.384%"></td><td style="width:0.1%"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="width:1.0%"></td><td style="width:14.546%"></td><td style="width:0.1%"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">One-time Termination Benefits</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Contract Termination Costs</span></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">Total</span></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2021</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">$</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Restructuring charges</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,584&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">73&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,657&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(646)</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">26&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">2&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">28&#160;</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2022</span></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">964&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">75&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">1,039&#160;</span></td><td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Cash payments</span></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(973)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(75)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">(1,048)</span></td><td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Foreign exchange rate changes</span></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#8212;&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#ffffff;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">9&#160;</span></td><td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">Balance as of December 31, 2023</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td><td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">$</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%">&#8212;</span><span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%">&#160;</span></td><td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr><tr><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td><td colspan="3" style="display:none"></td></tr></table></div><span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 costs incurred for restructuring including, but not limited to, exit and disposal activities, remediation, implementation, integration, asset impairment, and charges against earnings from the write-down of 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 420<br> -SubTopic 10<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB TOPIC 5.P.3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-1<br><br>Reference 2: 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> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 3: 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)<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_ScheduleOfRestructuringAndRelatedCostsTextBlock</td>
</tr>
<tr>
<td style="padding-right: 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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>72
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403434176">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum', window );">Effective maturity of investments</a></td>
<td class="text">5 years<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_cgnx_MaximumInvestmentOfCompanyInPartnership', window );">Maximum investment of the company in partnership</a></td>
<td class="nump">5.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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember', window );">Building [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [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_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">39 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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingImprovementsMember', window );">Building Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember', window );">Computer Hardware and Software [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [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_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=cgnx_ComputerHardwareAndSoftwareMember', window );">Computer Hardware and Software [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">10 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Manufacturing Test Equipment [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [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_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_EquipmentMember', window );">Manufacturing Test Equipment [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></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_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [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_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</a></td>
<td class="text">2 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_FurnitureAndFixturesMember', window );">Furniture and Fixtures [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentUsefulLife', window );">Property, Plant and Equipment, Useful Life</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_cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale Securities, Debt Maturities, Effective Term, Maximum</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_cgnx_MaximumInvestmentOfCompanyInPartnership">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 investment of the company in partnership.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MaximumInvestmentOfCompanyInPartnership</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_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_PropertyPlantAndEquipmentUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentUsefulLife</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_BuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_BuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_ComputerHardwareAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_ComputerHardwareAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MinimumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MinimumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_RangeAxis=srt_MaximumMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_RangeAxis=srt_MaximumMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>73
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408992464">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Intangible Assets (Details)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DistributionRightsMember', window );">Distribution Rights [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></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=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember', window );">Completed Technologies And Other Intangible Assets [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></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=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember', window );">Completed Technologies And Other Intangible Assets [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></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=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member] | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></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=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member] | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">15 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 agreements | Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_NoncompeteAgreementsMember', window );">Non-compete agreements | Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">7 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_TrademarksMember', window );">Trademarks</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [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_FiniteLivedIntangibleAssetUsefulLife', window );">Finite-Lived Intangible Asset, Useful Life</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_DistributionRightsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_DistributionRightsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_CustomerContractsAndRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CustomerContractsAndRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408446448">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Warranty (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductLiabilityContingencyLineItems', window );"><strong>Product Liability Contingency [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ProductWarrantyPeriod', window );">Product Warranty Period</a></td>
<td class="text">1 year<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductLiabilityContingencyLineItems', window );"><strong>Product Liability Contingency [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_ProductWarrantyPeriod', window );">Product Warranty Period</a></td>
<td class="text">3 years<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ProductWarrantyPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Product warranty 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;">cgnx_ProductWarrantyPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_ProductLiabilityContingencyLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 450<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 5.Y.Q2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480102/450-20-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<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 (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483076/450-20-50-4<br><br>Reference 4: 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 (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_ProductLiabilityContingencyLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<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_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>75
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411833760">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th"><div>Dec. 31, 2023</div></th></tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RevenuePaymentTerms', window );">Revenue, payment terms</a></td>
<td class="text">30 days<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_RevenuePaymentTerms', window );">Revenue, payment terms</a></td>
<td class="text">90 days<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_RevenuePaymentTerms">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Revenue, Payment Terms</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_RevenuePaymentTerms</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_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>76
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409837584">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Advertising Costs (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccountingPoliciesAbstract', window );"><strong>Accounting Policies [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AdvertisingExpense', window );">Advertising costs</a></td>
<td class="nump">$ 1,190,000<span></span>
</td>
<td class="nump">$ 1,257,000<span></span>
</td>
<td class="nump">$ 1,965,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AdvertisingExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 720<br> -SubTopic 35<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483406/720-35-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AdvertisingExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>77
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408717648">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Summary of Significant Accounting Policies - Comprehensive Income (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems', window );"><strong>Accumulated Other Comprehensive Income (Loss) [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_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax', window );">Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax</a></td>
<td class="nump">$ 36,550,000<span></span>
</td>
<td class="nump">$ 48,050,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_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax', window );">Net unrealized losses on available-for-sale investments, net of tax</a></td>
<td class="nump">7,515,000<span></span>
</td>
<td class="nump">19,976,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_AdjustmentForLongTermIntercompanyTransactionsNetOfTax', window );">Losses on currency swaps, net of gains on long-term intercompany loans</a></td>
<td class="nump">1,271,000<span></span>
</td>
<td class="nump">1,271,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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="num">(1,954,000)<span></span>
</td>
<td class="num">(182,000)<span></span>
</td>
<td class="nump">$ 236,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_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember', window );">Accumulated Other Comprehensive Loss [Member]</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_AccumulatedOtherComprehensiveIncomeLossLineItems', window );"><strong>Accumulated Other Comprehensive Income (Loss) [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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax', window );">Net realized gains reclassified into current operations</a></td>
<td class="num">$ (1,954,000)<span></span>
</td>
<td class="num">$ (182,000)<span></span>
</td>
<td class="nump">$ 236,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</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 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_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 adjustment, net of tax, that results from the process of translating subsidiary financial statements and foreign equity investments into the reporting currency from the functional currency of the reporting entity, net of reclassification of realized foreign currency translation gains or 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/2003/role/disclosureRef<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 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-14A<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 825<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482736/825-10-45-5A<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 10A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-10A<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 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_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccumulatedOtherComprehensiveIncomeLossLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 2: http://www.xbrl.org/2003/role/disclosureRef<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 3: 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 4: 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 5: 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> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-20<br><br>Reference 6: 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> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-20<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> -Subparagraph (c)<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 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-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_AccumulatedOtherComprehensiveIncomeLossLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Current period adjustment resulting from gains and losses on intercompany foreign currency transactions that are of a long-term-investment nature because settlement is not planned or anticipated in the foreseeable future. Resulting from the entities to the transaction being consolidated, combined, or accounted for by the equity method in the reporting 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 830<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482014/830-20-35-3<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481694/830-30-45-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_AdjustmentForLongTermIntercompanyTransactionsNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 15<br> -SubTopic 10<br> -Topic 220<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-15<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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-9<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 17A<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482790/220-10-45-17A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StatementEquityComponentsAxis=us-gaap_AccumulatedOtherComprehensiveIncomeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>78
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403383088">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail) - Fair Value, Measurements, Recurring<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel1Member', window );">Quoted&#160;Prices&#160;in Active Markets for Identical Assets (Level&#160;1)</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_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">$ 19,413<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_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></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_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></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_FairValueByFairValueHierarchyLevelAxis=us-gaap_FairValueInputsLevel2Member', window );">Significant&#160;Other Observable Inputs (Level&#160;2)</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_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">308,816<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_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">43,523<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_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">19,314<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_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">1,969<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></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_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">106<span></span>
</td>
</tr>
<tr class="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 );">Unobservable Inputs (Level 3)</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_AssetsFairValueDisclosureAbstract', window );"><strong>Assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MoneyMarketInstrumentsFairValueDisclosure', window );">Money market instruments</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CorporateBondsFairValueDisclosure', window );">Corporate bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_TreasuryBillsFairValueDisclosure', window );">Treasury notes</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_AssetBackedSecuritiesFairValueDisclosure', window );">Asset-backed securities</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_SovereignBondsFairValueDisclosure', window );">Sovereign bonds</a></td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure', window );">Economic hedge forward contracts</a></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_LiabilitiesFairValueDisclosureAbstract', window );"><strong>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_ForeignCurrencyContractsLiabilityFairValueDisclosure', window );">Economic hedge forward contracts</a></td>
<td class="nump">$ 0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AssetBackedSecuritiesFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Asset Backed Securities Fair Value Disclosure</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AssetBackedSecuritiesFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_CorporateBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Corporate bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CorporateBondsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_MoneyMarketInstrumentsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Money market instruments fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MoneyMarketInstrumentsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_SovereignBondsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Sovereign bonds fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_SovereignBondsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_TreasuryBillsFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Treasury bills fair value disclosure.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_TreasuryBillsFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AssetsFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetsFairValueDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ForeignCurrencyContractAssetFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 portion of asset contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward contracts, and swaps.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyContractAssetFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ForeignCurrencyContractsLiabilityFairValueDisclosure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 portion of liability contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward (delivery or nondelivery) contracts, and swaps entered into.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LiabilitiesFairValueDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilitiesFairValueDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_FairValueInputsLevel1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_FairValueInputsLevel1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FairValueByMeasurementFrequencyAxis=us-gaap_FairValueMeasurementsRecurringMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<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>79
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408963136">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Cash', window );">Cash</a></td>
<td class="nump">$ 183,242<span></span>
</td>
<td class="nump">$ 180,959<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MoneyMarketFundsAtCarryingValue', window );">Money market instruments</a></td>
<td class="nump">19,413<span></span>
</td>
<td class="nump">415<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_CashAndCashEquivalentsAtCarryingValue', window );">Cash and cash equivalents</a></td>
<td class="nump">202,655<span></span>
</td>
<td class="nump">181,374<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">129,392<span></span>
</td>
<td class="nump">218,759<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_LongTermInvestments', window );">Non-current investments</a></td>
<td class="nump">244,230<span></span>
</td>
<td class="nump">454,117<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_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments', window );">Total</a></td>
<td class="nump">576,277<span></span>
</td>
<td class="nump">854,250<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">11,332<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">43,523<span></span>
</td>
<td class="nump">44,214<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">3,551<span></span>
</td>
<td class="nump">26,890<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">15,763<span></span>
</td>
<td class="nump">33,539<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">124,851<span></span>
</td>
<td class="nump">164,055<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">183,965<span></span>
</td>
<td class="nump">374,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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">990<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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent', window );">Long-term investments</a></td>
<td class="nump">979<span></span>
</td>
<td class="nump">1,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent', window );">Debt securities, available-for-sale, current</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 15,858<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CashCashEquivalentsShortTermAndLongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Cash, cash equivalents, short term and long term investments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CashCashEquivalentsShortTermAndLongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesDebtSecuritiesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481830/320-10-45-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleSecuritiesDebtSecuritiesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), 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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481830/320-10-45-2<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(12))<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 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_Cash">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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. 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/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 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(2))<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 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 21<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480555/946-210-45-21<br><br>Reference 6: 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(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 20<br> -SubTopic 210<br> -Topic 946<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480555/946-210-45-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_Cash</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CashAndCashEquivalentsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of currency on hand as well as demand deposits with banks or financial institutions. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates. Excludes cash and cash equivalents within disposal group and discontinued operation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-1<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 230<br> -SubTopic 10<br> -Section 45<br> -Paragraph 4<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_LongTermInvestments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 investments that are intended to be held for an extended period of time (longer than one operating cycle).</p></div>
<a href="javascript: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(12))<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_LongTermInvestments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_MoneyMarketFundsAtCarryingValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MoneyMarketFundsAtCarryingValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-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_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasuryBillSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>80
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408948528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Additional Information (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DueFromForeignBanks', window );">Cash balance included foreign bank balance</a></td>
<td class="nump">$ 173,614<span></span>
</td>
<td class="nump">$ 160,611<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InterestReceivable', window );">Interest Receivable</a></td>
<td class="nump">3,169<span></span>
</td>
<td class="nump">3,620<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain', window );">Gross realized gains</a></td>
<td class="nump">111<span></span>
</td>
<td class="nump">133<span></span>
</td>
<td class="nump">$ 246<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss', window );">Allowance for credit 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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss', window );">Gross realized losses</a></td>
<td class="num">$ (2,065)<span></span>
</td>
<td class="num">$ (315)<span></span>
</td>
<td class="num">$ (10)<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DueFromForeignBanks">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Due from foreign banks.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DueFromForeignBanks</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-30-45-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-9<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-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_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleRealizedGain">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_DebtSecuritiesAvailableForSaleRealizedGain</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleRealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_DebtSecuritiesAvailableForSaleRealizedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InterestReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 interest earned but not received. Also called accrued interest or accrued interest 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 946<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480833/946-310-45-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(3)(a)(4))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InterestReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404535072">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">$ 383,589<span></span>
</td>
<td class="nump">$ 699,693<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">588<span></span>
</td>
<td class="nump">743<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(10,555)<span></span>
</td>
<td class="num">(27,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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">373,622<span></span>
</td>
<td class="nump">672,876<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">43,523<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_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">43,654<span></span>
</td>
<td class="nump">44,333<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">82<span></span>
</td>
<td class="nump">79<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(213)<span></span>
</td>
<td class="num">(198)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">43,523<span></span>
</td>
<td class="nump">44,214<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,602<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="text">&#160;<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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(270)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,332<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">19,314<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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">16,773<span></span>
</td>
<td class="nump">35,144<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">103<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(1,010)<span></span>
</td>
<td class="num">(1,708)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">15,763<span></span>
</td>
<td class="nump">33,539<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">3,637<span></span>
</td>
<td class="nump">27,607<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(86)<span></span>
</td>
<td class="num">(717)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">3,551<span></span>
</td>
<td class="nump">26,890<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">308,816<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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">189,326<span></span>
</td>
<td class="nump">394,576<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">506<span></span>
</td>
<td class="nump">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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(5,867)<span></span>
</td>
<td class="num">(20,697)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">183,965<span></span>
</td>
<td class="nump">374,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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></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_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">128,150<span></span>
</td>
<td class="nump">167,558<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(3,299)<span></span>
</td>
<td class="num">(3,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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">124,851<span></span>
</td>
<td class="nump">164,055<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">1,969<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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member] | Long-term investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">1,037<span></span>
</td>
<td class="nump">2,095<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(58)<span></span>
</td>
<td class="num">(171)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">979<span></span>
</td>
<td class="nump">1,924<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="nump">1,012<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="num">(22)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">$ 990<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_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">635<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(11)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [Member] | Short-term Investments [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis', window );">Amortized Cost</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">16,143<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax', window );">Gross Unrealized Gains</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax', window );">Gross Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 15,858<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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleDebtSecuritiesAmortizedCostBasis">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript: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)(1))<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 320<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/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleDebtSecuritiesAmortizedCostBasis</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<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/2147481830/320-10-45-1<br><br>Reference 3: 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(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-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_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InvestmentDurationAxis=cgnx_LongTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InvestmentDurationAxis=cgnx_LongTermInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_InvestmentDurationAxis=us-gaap_ShortTermInvestmentsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InvestmentDurationAxis=us-gaap_ShortTermInvestmentsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411454224">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">$ 68,557<span></span>
</td>
<td class="nump">$ 382,732<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(1,561)<span></span>
</td>
<td class="num">(12,718)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">233,304<span></span>
</td>
<td class="nump">190,707<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(8,994)<span></span>
</td>
<td class="num">(14,842)<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">301,861<span></span>
</td>
<td class="nump">573,439<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(10,555)<span></span>
</td>
<td class="num">(27,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_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">20,725<span></span>
</td>
<td class="nump">32,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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(153)<span></span>
</td>
<td class="num">(465)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,441<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(60)<span></span>
</td>
<td class="num">(3)<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">23,166<span></span>
</td>
<td class="nump">32,716<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(213)<span></span>
</td>
<td class="num">(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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">17,062<span></span>
</td>
<td class="nump">47,582<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(1,049)<span></span>
</td>
<td class="num">(2,299)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">2,252<span></span>
</td>
<td class="nump">2,495<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(47)<span></span>
</td>
<td class="num">(126)<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">19,314<span></span>
</td>
<td class="nump">50,077<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(1,096)<span></span>
</td>
<td class="num">(2,425)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">967<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="nump">0<span></span>
</td>
<td class="num">(67)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">1,968<span></span>
</td>
<td class="nump">957<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(80)<span></span>
</td>
<td class="num">(104)<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">1,968<span></span>
</td>
<td class="nump">1,924<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">(80)<span></span>
</td>
<td class="num">(171)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="nump">30,770<span></span>
</td>
<td class="nump">285,087<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="num">(359)<span></span>
</td>
<td class="num">(9,591)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="nump">226,643<span></span>
</td>
<td class="nump">187,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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="num">(8,807)<span></span>
</td>
<td class="num">(14,609)<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="nump">257,413<span></span>
</td>
<td class="nump">472,240<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="num">$ (9,166)<span></span>
</td>
<td class="num">(24,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_FinancialInstrumentAxis=cgnx_AgencyBondsMember', window );">Agency Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,858<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(285)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="text">&#160;<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">15,858<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(285)<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember', window );">Municipal Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months', window );">Fair Value, Less than 12 months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">624<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss', window );">Unrealized Losses, Less than 12 months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(11)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger', window );">Fair Value, Greater than 12 Months</a></td>
<td class="text">&#160;<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss', window );">Unrealized Losses, Greater than 12 Months</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition', window );">Fair Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">624<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss', window );">Unrealized Losses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-7<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for 12 months or longer, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-7<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-7<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-30-50-5<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 8<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479081/326-30-55-8<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<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/2147481800/320-10-50-6<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<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/2147479106/326-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_DebtSecuritiesAvailableForSaleUnrealizedLossPosition</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/otherTransitionRef<br> -Topic 320<br> -SubTopic 10<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/2147481800/320-10-50-6<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (a)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479106/326-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_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-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_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=cgnx_AgencyBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=cgnx_AgencyBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_MunicipalBondsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408746448">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CashAndCashEquivalentsAbstract', window );"><strong>Cash and Cash Equivalents [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain', window );">Gross realized gains</a></td>
<td class="nump">$ 111<span></span>
</td>
<td class="nump">$ 133<span></span>
</td>
<td class="nump">$ 246<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss', window );">Gross realized losses</a></td>
<td class="num">(2,065)<span></span>
</td>
<td class="num">(315)<span></span>
</td>
<td class="num">(10)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RealizedInvestmentGainsLosses', window );">Net realized gains (losses)</a></td>
<td class="num">$ (1,954)<span></span>
</td>
<td class="num">$ (182)<span></span>
</td>
<td class="nump">$ 236<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_CashAndCashEquivalentsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CashAndCashEquivalentsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DebtSecuritiesAvailableForSaleRealizedGain">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_DebtSecuritiesAvailableForSaleRealizedGain</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DebtSecuritiesAvailableForSaleRealizedLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-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_DebtSecuritiesAvailableForSaleRealizedLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_RealizedInvestmentGainsLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of realized gain (loss) on investment.</p></div>
<a href="javascript: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(3)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RealizedInvestmentGainsLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>84
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411009728">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">$ 129,392<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">71,888<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">54,469<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">67,166<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">44,264<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">373,622<span></span>
</td>
<td class="nump">$ 672,876<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">6,443<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_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember', window );">Treasury Bills [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">2,441<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">6,115<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">22,270<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">12,697<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">43,523<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember', window );">Corporate Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">124,851<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">62,596<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">44,906<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></td>
<td class="nump">44,896<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">31,567<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">308,816<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember', window );">Asset-Backed Securities [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">3,551<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">5,872<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</a></td>
<td class="nump">3,448<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">0<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">19,314<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="nump">6,443<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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember', window );">Sovereign Bonds [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems', window );"><strong>Debt Securities, Available-for-sale [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue', window );">Less than 1 Year</a></td>
<td class="nump">990<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue', window );">1-2 Years</a></td>
<td class="nump">979<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue', window );">2-3 Years</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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue', window );">3-4 Years</a></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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue', window );">4-5 Years</a></td>
<td class="nump">0<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_AvailableForSaleSecuritiesDebtSecurities', window );">Fair Value, Total</a></td>
<td class="nump">1,969<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue', window );">available for sale securities debt maturities after five years before seven years fair value</a></td>
<td class="text"> <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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available For Sale Securities Debt Maturities After Five Years Before Seven Years 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;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after fourth year but before fifth year, 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;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after third year but before fourth year, 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;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Available-for-sale securities, debt maturities after second year but before third year, 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;">cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing 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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 942<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480832/942-320-50-3A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AvailableForSaleSecuritiesDebtSecurities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 320<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/2147481830/320-10-45-1<br><br>Reference 3: 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(6))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479130/326-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_AvailableForSaleSecuritiesDebtSecurities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ScheduleOfAvailableForSaleSecuritiesLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (aaa)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-2<br><br>Reference 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-2<br><br>Reference 8: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 9: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 10: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-10-50-3<br><br>Reference 11: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<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/2147481800/320-10-50-3<br><br>Reference 12: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 320<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481800/320-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_ScheduleOfAvailableForSaleSecuritiesLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_USTreasurySecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_CorporateBondSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_AssetBackedSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_FinancialInstrumentAxis=us-gaap_SovereignDebtSecuritiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403779968">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Inventories - Inventories (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryLineItems', window );"><strong>Inventory [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_InventoryRawMaterialsNetOfReserves', window );">Raw materials</a></td>
<td class="nump">$ 93,201<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 71,720<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryWorkInProcessNetOfReserves', window );">Work-in-process</a></td>
<td class="nump">5,747<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">906<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InventoryFinishedGoodsNetOfReserves', window );">Finished goods</a></td>
<td class="nump">63,337<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">49,854<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_InventoryNet', window );">Inventories</a></td>
<td class="nump">$ 162,285<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 122,480<span></span>
</td>
</tr>
<tr class="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=cgnx_MoritexCorporationMember', window );">Moritex Corporation</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_InventoryLineItems', window );"><strong>Inventory [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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 22,788<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 inventory 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InventoryFinishedGoodsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480581/330-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryFinishedGoodsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_InventoryLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_InventoryLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_InventoryRawMaterialsNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(4))<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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480581/330-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryRawMaterialsNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InventoryWorkInProcessNetOfReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a)(3))<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 330<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.BB)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480581/330-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_InventoryWorkInProcessNetOfReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>86
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408252240">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Property, Plant, and Equipment - Property, Plant, and Equipment (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="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, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 206,222<span></span>
</td>
<td class="nump">$ 175,195<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment', window );">Less: accumulated depreciation</a></td>
<td class="num">(100,373)<span></span>
</td>
<td class="num">(95,481)<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 );">Property, plant and equipment, net, total</a></td>
<td class="nump">105,849<span></span>
</td>
<td class="nump">79,714<span></span>
</td>
</tr>
<tr class="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_LandMember', window );">Land [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">8,805<span></span>
</td>
<td class="nump">3,951<span></span>
</td>
</tr>
<tr class="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_BuildingMember', window );">Building [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">34,117<span></span>
</td>
<td class="nump">24,533<span></span>
</td>
</tr>
<tr class="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_BuildingImprovementsMember', window );">Building Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">44,992<span></span>
</td>
<td class="nump">45,003<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentByTypeAxis=us-gaap_LeaseholdImprovementsMember', window );">Leasehold Improvements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">19,611<span></span>
</td>
<td class="nump">14,491<span></span>
</td>
</tr>
<tr class="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=cgnx_HardwareAndSoftwareMember', window );">Computer Hardware And Software [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">55,154<span></span>
</td>
<td class="nump">53,663<span></span>
</td>
</tr>
<tr class="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 );">Manufacturing Test Equipment [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">36,182<span></span>
</td>
<td class="nump">27,176<span></span>
</td>
</tr>
<tr class="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 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentGross', window );">Property, plant and equipment, gross</a></td>
<td class="nump">$ 7,361<span></span>
</td>
<td class="nump">$ 6,378<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_LandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_LandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_BuildingMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_BuildingMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_BuildingImprovementsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_BuildingImprovementsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_HardwareAndSoftwareMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_HardwareAndSoftwareMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>87
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410737024">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Property, Plant and Equipment - Additional Information (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">$ 12,421<span></span>
</td>
<td class="nump">$ 17,358<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1', window );">Reduction of accumulated depreciation due to disposals</a></td>
<td class="nump">12,184<span></span>
</td>
<td class="nump">16,604<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="nump">229<span></span>
</td>
<td class="nump">754<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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, Plant and Equipment [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_PropertyPlantAndEquipmentDisposals', window );">Disposals in period</a></td>
<td class="nump">12,421<span></span>
</td>
<td class="nump">17,358<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1', window );">Reduction of accumulated depreciation due to disposals</a></td>
<td class="nump">12,184<span></span>
</td>
<td class="nump">16,604<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="num">(229)<span></span>
</td>
<td class="num">(754)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment', window );">Proceeds from Sale of Property, Plant, and Equipment</a></td>
<td class="nump">$ 8<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=cgnx_MoritexCorporationMember', window );">Moritex Corporation</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_PropertyPlantAndEquipmentLineItems', window );"><strong>Property, Plant and Equipment [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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment acquired</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 19,876<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember', window );">Damage from Fire, Explosion or Other Hazard</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_PropertyPlantAndEquipmentAbstract', window );"><strong>Property, Plant and Equipment [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">735<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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, Plant and Equipment [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GainLossOnDispositionOfAssets1', window );">Loss on disposition of property, plant and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (735)<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_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 accumulated depreciation, depletion and amortization as a result of sale or disposal of 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_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 property, plant, and equipment 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GainLossOnDispositionOfAssets1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 230<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GainLossOnDispositionOfAssets1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProceedsFromSaleOfPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale.</p></div>
<a href="javascript: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 12<br> -Subparagraph (c)<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_ProceedsFromSaleOfPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PropertyPlantAndEquipmentAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PropertyPlantAndEquipmentDisposals">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of divestiture of long-lived, 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, 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_PropertyPlantAndEquipmentDisposals</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis=us-gaap_DamageFromFireExplosionOrOtherHazardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>88
<FILENAME>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410808928">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Leases (Details)<br> ft&#178; in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2">1 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Jun. 30, 2023 </div>
<div>USD ($) </div>
<div>ft&#178; </div>
<div>lease_component</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>ft&#178;</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseExpense', window );">Operating lease expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 11,598<span></span>
</td>
<td class="nump">$ 8,939<span></span>
</td>
<td class="nump">$ 8,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_OperatingLeasePayments', window );">Operating lease payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,148<span></span>
</td>
<td class="nump">8,548<span></span>
</td>
<td class="nump">8,225<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_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized', window );">Operating lease expense for which no liability or asset was recognized</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">427<span></span>
</td>
<td class="nump">144<span></span>
</td>
<td class="nump">154<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_cgnx_OperatingLeaseLiabilityDiscountedPresentValue', window );">Operating lease, liability, discounted present value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">78,601<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, 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="nump">39,752<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 75,115<span></span>
</td>
<td class="nump">$ 37,682<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Operating lease, weighted average discount rate (percent)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5.70%<span></span>
</td>
<td class="nump">3.30%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Operating lease, weighted average remaining lease term (years)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years 6 months<span></span>
</td>
<td class="text">7 years 9 months 18 days<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Lessee, Operating Lease, Liability, Payments, Due</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 105,697<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_VariableLeasePayment', window );">Variable Lease, Payment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,175<span></span>
</td>
<td class="nump">$ 1,009<span></span>
</td>
<td class="nump">1,253<span></span>
</td>
</tr>
<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=cgnx_SouthboroughMassachusettsMember', window );">Southborough, Massachusetts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,271<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,271<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">65<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<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_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract', window );">Lessee, Operating Lease, Option to Renew, Term of Contract</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,271<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 9,271<span></span>
</td>
</tr>
<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=cgnx_BacNinhVietnamMember', window );">Bac Ninh, Vietnam</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22<span></span>
</td>
</tr>
<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_SG', window );">SINGAPORE</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="nump">115<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_cgnx_LesseeOperatingLeaseComponents', window );">Lessee, Operating Lease, Components | lease_component</a></td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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_SG', window );">SINGAPORE | 88,000 Square-Foot Premises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseLiability', window );">Operating lease, liability</a></td>
<td class="nump">$ 29,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="nump">88<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</a></td>
<td class="text">10 years 6 months<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract', window );">Lessee, Operating Lease, Option to Renew, Term of Contract</a></td>
<td class="text">5 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>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OperatingLeaseRightOfUseAsset', window );">Operating lease assets</a></td>
<td class="nump">$ 29,639<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_srt_StatementGeographicalAxis=country_SG', window );">SINGAPORE | 27,000 Square-Foot Premises</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LessorLeaseDescriptionLineItems', window );"><strong>Lessor, Lease, Description [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_NetRentableArea', window );">Net Rentable Area | ft&#178;</a></td>
<td class="nump">27<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseTermOfContract', window );">Lessee, Operating Lease, Term of Contract</a></td>
<td class="text">8 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>
</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_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract', window );">Lessee, Operating Lease, Option to Renew, Term of Contract</a></td>
<td class="text">5 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>
</tr>
<tr class="ro">
<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 );">Lessee, Operating Lease, Liability, Payments, Due</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">13,231<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear', window );">Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="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_cgnx_LesseeOperatingLeaseComponents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Components</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LesseeOperatingLeaseComponents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Lessee, Operating Lease, Option to Renew, Term of Contract</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Expense, No Liability Or Asset 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;">cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_OperatingLeaseLiabilityDiscountedPresentValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Operating Lease, Liability, Discounted Present 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;">cgnx_OperatingLeaseLiabilityDiscountedPresentValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 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_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LesseeOperatingLeaseTermOfContract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, 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_LesseeOperatingLeaseTermOfContract</td>
</tr>
<tr>
<td style="padding-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_LessorLeaseDescriptionLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 842<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479773/842-30-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_LessorLeaseDescriptionLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_NetRentableArea">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net rentable area for properties owned.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_NetRentableArea</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:areaItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of operating lease expense. Excludes sublease income.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeaseLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Present value of lessee's discounted obligation for lease payments from operating lease.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeaseLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OperatingLeasePayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-45-5<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 842<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (g)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147478964/842-20-50-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OperatingLeasePayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_VariableLeasePayment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 for variable lease payment excluded from 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> -Section 45<br> -Paragraph 5<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479041/842-20-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_VariableLeasePayment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_SouthboroughMassachusettsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_SouthboroughMassachusettsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_BacNinhVietnamMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_BacNinhVietnamMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_SG">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_SG</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_A88000SquareFootPremisesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_A88000SquareFootPremisesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_A27000SquareFootPremisesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_A27000SquareFootPremisesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>89
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411954528">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Leases - Schedule of Payments (Details)<br> $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LeasesAbstract', window );"><strong>Leases [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths', window );">2024</a></td>
<td class="nump">$ 13,612<span></span>
</td>
</tr>
<tr class="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 );">2025</a></td>
<td class="nump">11,836<span></span>
</td>
</tr>
<tr class="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 );">2026</a></td>
<td class="nump">9,746<span></span>
</td>
</tr>
<tr class="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 );">2027</a></td>
<td class="nump">8,851<span></span>
</td>
</tr>
<tr class="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 );">2028</a></td>
<td class="nump">8,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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive', window );">Thereafter</a></td>
<td class="nump">53,257<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_LesseeOperatingLeaseLiabilityPaymentsDue', window );">Total</a></td>
<td class="nump">$ 105,697<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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach).</p></div>
<a href="javascript: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_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>90
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415087136">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Goodwill - Changes in the Carrying Value of Goodwill (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill, Beginning Balance</a></td>
<td class="nump">$ 242,630<span></span>
</td>
<td class="nump">$ 241,713<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="nump">5,504<span></span>
</td>
<td class="num">(1,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_Goodwill', window );">Goodwill, Ending Balance</a></td>
<td class="nump">393,181<span></span>
</td>
<td class="nump">242,630<span></span>
</td>
</tr>
<tr class="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=cgnx_SACSiriusAdvancedCyberneticsGmbHMember', window );">SAC Sirius Advanced Cybernetics GmbH</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_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Goodwill, Other Increase (Decrease)</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 2,359<span></span>
</td>
</tr>
<tr class="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=cgnx_MoritexCorporationMember', window );">Moritex Corporation</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_GoodwillRollForward', window );"><strong>Goodwill [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillOtherIncreaseDecrease', window );">Goodwill, Other Increase (Decrease)</a></td>
<td class="nump">$ 145,047<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_GoodwillForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 increases (decreases) an asset representing future economic benefits 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/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GoodwillOtherIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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), classified as other, of an asset representing the future economic benefits 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/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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillOtherIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_GoodwillRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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=cgnx_SACSiriusAdvancedCyberneticsGmbHMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_SACSiriusAdvancedCyberneticsGmbHMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404444144">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Amortized Intangible Assets (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">$ 139,331<span></span>
</td>
<td class="nump">$ 34,195<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(26,379)<span></span>
</td>
<td class="num">(21,781)<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 Carrying Value</a></td>
<td class="nump">112,952<span></span>
</td>
<td class="nump">12,414<span></span>
</td>
</tr>
<tr class="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 );">Completed Technologies [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">62,123<span></span>
</td>
<td class="nump">28,017<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(20,745)<span></span>
</td>
<td class="num">(17,744)<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_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">41,378<span></span>
</td>
<td class="nump">10,273<span></span>
</td>
</tr>
<tr class="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=cgnx_CustomerContractsAndRelationshipsMember', window );">Customer Relationships [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">75,965<span></span>
</td>
<td class="nump">5,838<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(5,352)<span></span>
</td>
<td class="num">(3,860)<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 Carrying Value</a></td>
<td class="nump">70,613<span></span>
</td>
<td class="nump">1,978<span></span>
</td>
</tr>
<tr class="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 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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">340<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(232)<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_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">108<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_TrademarksMember', window );">Trademarks</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_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="nump">903<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization', window );">Accumulated Amortization</a></td>
<td class="num">(50)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 853<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_OtherIntangibleAssetsMember', window );">Non-compete Agreements [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsGross', window );">Gross Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">340<span></span>
</td>
</tr>
<tr class="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="text">&#160;<span></span>
</td>
<td class="num">(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_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 163<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_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=cgnx_CustomerContractsAndRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CustomerContractsAndRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_OtherIntangibleAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_OtherIntangibleAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403795536">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Intangible Assets - Narrative (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 07, 2022</div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
<th class="th"><div>May 26, 2020</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">$ 3,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">7 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="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=cgnx_DistributionNetworksAndCustomerRelationshipsMember', window );">Distribution Networks and Customer 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill', window );">Intangible 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="nump">$ 43,280<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis=us-gaap_CustomerRelationshipsMember', window );">Customer relationships | Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 66,900<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">&#160;<span></span>
</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=cgnx_CompletedTechnologyMember', window );">Completed technologies | Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">9 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_TrademarksMember', window );">Trademarks | Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsLineItems', window );"><strong>Finite-Lived Intangible Assets [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 850<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife', window );">Intangible assets, useful life</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript: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 1<br> -Subparagraph (a)(3)<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_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife</td>
</tr>
<tr>
<td style="padding-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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of intangible assets, excluding goodwill, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_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_FiniteLivedIntangibleAssetsByMajorClassAxis=cgnx_DistributionNetworksAndCustomerRelationshipsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_DistributionNetworksAndCustomerRelationshipsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>93
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404853200">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract', window );"><strong>Goodwill and Intangible Assets Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths', window );">2024</a></td>
<td class="nump">$ 11,389<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo', window );">2025</a></td>
<td class="nump">11,066<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree', window );">2026</a></td>
<td class="nump">10,711<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour', window );">2027</a></td>
<td class="nump">9,737<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive', window );">2028</a></td>
<td class="nump">9,008<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive', window );">Thereafter</a></td>
<td class="nump">61,041<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_FiniteLivedIntangibleAssetsNet', window );">Net Carrying Value</a></td>
<td class="nump">$ 112,952<span></span>
</td>
<td class="nump">$ 12,414<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_GoodwillAndIntangibleAssetsDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>94
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414606960">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses - Constituents of Accrued Expenses (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="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>Constituents of accrued expenses</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent', window );">Deferred payments related to Sualab Co., Ltd. acquisition</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 19,282,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AccruedBonusesCurrent', window );">Incentive compensation</a></td>
<td class="nump">10,645,000<span></span>
</td>
<td class="nump">18,554,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_AccruedSalariesCurrent', window );">Salaries and payroll taxes</a></td>
<td class="nump">8,774,000<span></span>
</td>
<td class="nump">8,121,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_cgnx_RetirementAllowance', window );">Foreign retirement obligations</a></td>
<td class="nump">12,835,000<span></span>
</td>
<td class="nump">7,191,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_AccruedVacationCurrent', window );">Vacation</a></td>
<td class="nump">5,827,000<span></span>
</td>
<td class="nump">5,847,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualClassifiedCurrent', window );">Warranty obligations</a></td>
<td class="nump">4,244,000<span></span>
</td>
<td class="nump">4,375,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_OtherAccruedLiabilitiesCurrent', window );">Other</a></td>
<td class="nump">30,049,000<span></span>
</td>
<td class="nump">29,865,000<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_AccruedLiabilitiesCurrent', window );">Accrued expenses</a></td>
<td class="nump">72,374,000<span></span>
</td>
<td class="nump">$ 93,235,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_PaymentForContingentConsiderationLiabilityOperatingActivities', window );">Payment for Contingent Consideration Liability, Operating Activities</a></td>
<td class="nump">$ 24,040,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_cgnx_RetirementAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Retirement allowance Japan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_RetirementAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccruedBonusesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. 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_AccruedBonusesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_AccruedSalariesCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 the obligations incurred through that date and payable for employees' services provided. 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 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483467/210-10-45-8<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.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_AccruedSalariesCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AccruedVacationCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. 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><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 25<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483070/710-10-25-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_AccruedVacationCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 liabilities, classified as other, for deferred compensation arrangements payable 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>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 710<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 9<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483070/710-10-25-9<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 710<br> -SubTopic 10<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483043/710-10-30-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_us-gaap_ProductWarrantyAccrualClassifiedCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents 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/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br><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.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_ProductWarrantyAccrualClassifiedCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>95
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403829728">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Accrued Expenses - Changes in Warranty Obligations (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInStandardProductWarrantyAccrualRollForward', window );"><strong>Movement in Standard Product Warranty Accrual [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Beginning Balance</a></td>
<td class="nump">$ 4,375<span></span>
</td>
<td class="nump">$ 5,427<span></span>
</td>
<td class="nump">$ 5,406<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualWarrantiesIssued', window );">Provisions for warranties issued during the period</a></td>
<td class="nump">2,940<span></span>
</td>
<td class="nump">1,876<span></span>
</td>
<td class="nump">3,256<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrualPayments', window );">Fulfillment of warranty obligations</a></td>
<td class="num">(3,078)<span></span>
</td>
<td class="num">(2,928)<span></span>
</td>
<td class="num">(3,235)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss', window );">Foreign exchange rate changes</a></td>
<td class="nump">7<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ProductWarrantyAccrual', window );">Ending Balance</a></td>
<td class="nump">$ 4,244<span></span>
</td>
<td class="nump">$ 4,375<span></span>
</td>
<td class="nump">$ 5,427<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_MovementInStandardProductWarrantyAccrualRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInStandardProductWarrantyAccrualRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProductWarrantyAccrual">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 estimated claims under standard and extended warranty protection rights granted to customers.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(5)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br><br>Reference 4: 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.15(5))<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_ProductWarrantyAccrual</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProductWarrantyAccrualPayments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualPayments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ProductWarrantyAccrualWarrantiesIssued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 the standard and extended product warranty accrual from warranties issued.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProductWarrantyAccrualWarrantiesIssued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 standard and extended product warranty accrual.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 460<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482425/460-10-50-8<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>96
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414017328">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Commitments and Contingencies - Additional Information (Detail) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract', window );"><strong>Commitments and Contingencies Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted', window );">Purchase order outstanding</a></td>
<td class="nump">$ 61,459,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_OtherInventoryPurchasedGoods', window );">Other Inventory, Purchased Goods, Gross</a></td>
<td class="nump">$ 10,616,000<span></span>
</td>
<td class="nump">$ 5,269,000<span></span>
</td>
<td class="nump">$ 547,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommitmentsAndContingenciesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommitmentsAndContingenciesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_OtherInventoryPurchasedGoods">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of components used by the entity which are bought from another entity rather than produced by the entity.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(6)(a))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_OtherInventoryPurchasedGoods</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_PurchaseCommitmentRemainingMinimumAmountCommitted">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum amount to be expended to satisfy the terms of arrangements in which the entity has agreed to expend funds to procure goods or services, excluding long-term purchase commitments or unconditional purchase 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 942<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.9-03(17))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479853/942-210-S99-1<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(25))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>97
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403542848">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Additional Details (Details)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>JPY (&#165;)</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_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeForwardMember', window );">Foreign Exchange Forward</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeNotionalAmount', window );">Derivative, notional amount | &#165;</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 40,000,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="nump">$ 8,456,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>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1', window );">Maturities of forward of contracts</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (10,023,000)<span></span>
</td>
<td class="nump">$ 9,823,000<span></span>
</td>
<td class="nump">$ 4,262,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_us-gaap_DerivativeGainLossOnDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 fair value of derivatives recognized 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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<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_DerivativeGainLossOnDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480237/815-40-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_DerivativeLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nominal or face amount used to calculate payment on derivative.</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 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1B<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 amount of time remaining before foreign currency exchange rate derivatives mature or expire, 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_MaximumRemainingMaturityOfForeignCurrencyDerivatives1</td>
</tr>
<tr>
<td style="padding-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_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeForwardMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentRiskAxis=us-gaap_ForeignExchangeForwardMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>98
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411137072">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Outstanding Forward Contracts (Details) - Not Designated as Hedging Instrument [Member]<br> &#8364; in Thousands, &#165; in Thousands, &#165; in Thousands, &#163; in Thousands, SFr in Thousands, Ft in Thousands, $ in Thousands, $ in Thousands, $ in Thousands, $ in Thousands</strong></div></th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>CHF (SFr)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>EUR (&#8364;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>SGD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>MXN ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CNY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>HUF (Ft)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>GBP (&#163;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CAD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>CHF (SFr)</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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Euro [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="nump">&#8364; 40,000<span></span>
</td>
<td class="nump">$ 44,302<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#8364; 60,000<span></span>
</td>
<td class="nump">$ 64,174<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Japanese Yen [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,255<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 600,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="nump">5,281<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 700,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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Mexican Peso [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,505<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 145,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="nump">9,480<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 185,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">British Pound [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,258<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 3,345<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,161<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#163; 3,445<span></span>
</td>
<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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Hungarian Forint [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">6,466<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">Ft 2,240,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="nump">4,238<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">Ft 1,590,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>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Canadian Dollar [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,112<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,470<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,278<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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,730<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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">China, Yuan Renminbi</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">7,025<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 50,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="nump">7,619<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">&#165; 55,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Switzerland, Francs</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</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>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">SFr 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,218<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">SFr 1,120<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Singapore Dollar [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLineItems', window );"><strong>Derivative [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetNotionalAmount', window );">Derivative Asset, Notional Amount</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 30,136<span></span>
</td>
<td class="nump">$ 39,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="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></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_us-gaap_DerivativeAssetNotionalAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Nominal or face amount used to calculate payments on the derivative asset.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/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 2: 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 E))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5C<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5A<br> -Subparagraph (SX 210.12-13A(Column D))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5A<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 320<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 5B<br> -Subparagraph (SX 210.12-13B(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5B<br><br>Reference 5: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1B<br><br>Reference 6: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1A<br><br>Reference 7: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1A<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-1A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeAssetNotionalAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>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>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 40<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480237/815-40-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_DerivativeLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_EUR">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_EUR</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_JPY">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_JPY</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_MXN">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_MXN</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_GBP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_GBP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_HUF">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_HUF</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_CAD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_CAD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_CNY">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_CNY</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_CHF">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_CHF</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_CurrencyAxis=currency_SGD">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_CurrencyAxis=currency_SGD</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>99
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414571232">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Balance Sheet Location (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesFairValueLineItems', window );"><strong>Derivatives, Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">$ 151<span></span>
</td>
<td class="nump">$ 27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">106<span></span>
</td>
<td class="nump">479<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativesFairValueLineItems', window );"><strong>Derivatives, Fair Value [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">151<span></span>
</td>
<td class="nump">27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 106<span></span>
</td>
<td class="nump">$ 479<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_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_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liability or 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 liabilities 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 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<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 (a)(1)<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/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 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)(4)<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 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-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 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 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 (b)(2)<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 (c)(2)<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 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 10: 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 11: 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(9)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 12: 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 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(9)(b))<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 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 15: 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 G)(Footnote 8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5<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 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 17: 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 G))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5<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_DerivativeLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativesFairValueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_DerivativesFairValueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414656048">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract', window );"><strong>Derivative Instruments and Hedging Activities Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeAsset', window );">Derivative Asset, Fair Value, Gross Asset</a></td>
<td class="nump">$ 151<span></span>
</td>
<td class="nump">$ 27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset', window );">Derivative Asset gross amount offset</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssets', window );">Net amount of assets presented</a></td>
<td class="nump">151<span></span>
</td>
<td class="nump">27<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeFairValueOfDerivativeLiability', window );">Derivative Liability, Fair Value, Gross Liability</a></td>
<td class="nump">106<span></span>
</td>
<td class="nump">479<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset', window );">Derivative liability gross amount offset</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilities', window );">Net amount of liabilities presented</a></td>
<td class="nump">$ 106<span></span>
</td>
<td class="nump">$ 479<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration', window );">Derivative Liability, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Other liabilities<span></span>
</td>
<td class="text">Other liabilities<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration', window );">Derivative Asset, Statement of Financial Position [Extensible Enumeration]</a></td>
<td class="text">Other assets<span></span>
</td>
<td class="text">Other assets<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_DerivativeAssetCollateralObligationToReturnCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 return cash collateral under master netting arrangements offset against derivative assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 5<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480463/815-10-45-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -SubTopic 20<br> -Topic 210<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_DerivativeAssetCollateralObligationToReturnCashOffset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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.</p></div>
<a href="javascript: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_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration</td>
</tr>
<tr>
<td style="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_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_DerivativeFairValueOfDerivativeAsset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, before 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 elected not to be offset. Excludes assets not subject to a master netting 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 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 2: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483466/210-20-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483444/210-20-55-7<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4B<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -SubTopic 20<br> -Topic 860<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481326/860-20-50-4D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeAsset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeFairValueOfDerivativeLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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, before effects of master netting arrangements, of a financial liability or 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 liabilities elected not to be offset. Excludes liabilities not subject to a master netting 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 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 2: 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 (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483466/210-20-50-3<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 7<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483444/210-20-55-7<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 815<br> -SubTopic 10<br> -Section 50<br> -Paragraph 4B<br> -Subparagraph (a),(c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4B<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4D<br> -Subparagraph (c)(2)<br> -SubTopic 20<br> -Topic 860<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481326/860-20-50-4D<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeFairValueOfDerivativeLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DerivativeLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 liability or 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 liabilities 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 6<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<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 (a)(1)<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/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 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)(4)<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 1<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-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 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 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 (b)(2)<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 (c)(2)<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 6<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480524/946-210-50-6<br><br>Reference 10: 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 11: 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(9)(e))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 12: 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 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(9)(b))<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 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.6-04(9)(d))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479617/946-210-S99-1<br><br>Reference 15: 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 G)(Footnote 8))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5<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 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 17: 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 G))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480032/946-320-S99-5<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_DerivativeLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeLiabilityCollateralRightToReclaimCashOffset">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 to receive cash collateral under master netting arrangements offset against derivative liabilities.</p></div>
<a href="javascript: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 5<br> -SubTopic 10<br> -Topic 815<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480463/815-10-45-5<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 3<br> -Subparagraph (b)<br> -SubTopic 20<br> -Topic 210<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_DerivativeLiabilityCollateralRightToReclaimCashOffset</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 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 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_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration</td>
</tr>
<tr>
<td style="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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>101
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627505421424">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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_HedgingDesignationAxis=us-gaap_NondesignatedMember', window );">Not Designated as Hedging Instrument [Member]</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_DerivativeInstrumentsGainLossLineItems', window );"><strong>Derivative Instruments, Gain (Loss) [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DerivativeGainLossOnDerivativeNet', window );">Gains (losses) recognized in net income</a></td>
<td class="num">$ (10,023)<span></span>
</td>
<td class="nump">$ 9,823<span></span>
</td>
<td class="nump">$ 4,262<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_DerivativeGainLossOnDerivativeNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 fair value of derivatives recognized 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://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4A<br> -Subparagraph (b)(1)<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_DerivativeGainLossOnDerivativeNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DerivativeInstrumentsGainLossLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 815<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 4E<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480434/815-10-50-4E<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DerivativeInstrumentsGainLossLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_HedgingDesignationAxis=us-gaap_NondesignatedMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627409856784">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Revenue Recognition - Narratives (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerAbstract', window );"><strong>Revenue from Contract with Customer [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CapitalizedContractCostGross', window );">Capitalized Contract Cost, Gross</a></td>
<td class="nump">$ 13,265,000<span></span>
</td>
<td class="nump">$ 14,578,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CapitalizedContractCostGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before accumulated amortization 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/2009/role/commonPracticeRef<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_CapitalizedContractCostGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>103
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408273808">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Disaggregation by Geography and Type (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
</tr>
<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=cgnx_StandardProductandServicesMember', window );">Standard products and services</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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">734,140<span></span>
</td>
<td class="nump">848,153<span></span>
</td>
<td class="nump">889,253<span></span>
</td>
</tr>
<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=cgnx_ApplicationofCustomerSpecificSolutionsMember', window );">Application-specific customer solutions</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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">103,407<span></span>
</td>
<td class="nump">157,937<span></span>
</td>
<td class="nump">147,845<span></span>
</td>
</tr>
<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_AmericasMember', window );">Americas [Member]</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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">330,415<span></span>
</td>
<td class="nump">390,573<span></span>
</td>
<td class="nump">435,220<span></span>
</td>
</tr>
<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_EuropeMember', window );">Europe [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">220,665<span></span>
</td>
<td class="nump">234,643<span></span>
</td>
<td class="nump">247,744<span></span>
</td>
</tr>
<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=cgnx_GreaterChinaMember', window );">Greater China [Member]</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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Revenue</a></td>
<td class="nump">164,115<span></span>
</td>
<td class="nump">227,447<span></span>
</td>
<td class="nump">200,135<span></span>
</td>
</tr>
<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=cgnx_OtherAsiaMember', window );">Other Asia [Member]</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_DisaggregationOfRevenueLineItems', window );"><strong>Disaggregation of Revenue [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 122,352<span></span>
</td>
<td class="nump">$ 153,427<span></span>
</td>
<td class="nump">$ 153,999<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DisaggregationOfRevenueLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 5<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-5<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 3: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 4: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 5: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 6: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (e)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 7: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br><br>Reference 8: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 91<br> -Subparagraph (g)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479777/606-10-55-91<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DisaggregationOfRevenueLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_srt_ProductOrServiceAxis=cgnx_StandardProductandServicesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_StandardProductandServicesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_ApplicationofCustomerSpecificSolutionsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_ApplicationofCustomerSpecificSolutionsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_AmericasMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_AmericasMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_EuropeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_GreaterChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_OtherAsiaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_OtherAsiaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404036528">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Allowance for Credit Loss (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward', window );"><strong>Accounts Receivable, Allowance for Credit Loss [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Beginning balance</a></td>
<td class="nump">$ 730<span></span>
</td>
<td class="nump">$ 776<span></span>
</td>
</tr>
<tr class="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 );">Increases to the allowance for credit losses</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">191<span></span>
</td>
</tr>
<tr class="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, net of recoveries</a></td>
<td class="num">(645)<span></span>
</td>
<td class="num">(237)<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_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="num">(2)<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllowanceForDoubtfulAccountsReceivable', window );">Ending balance</a></td>
<td class="nump">$ 583<span></span>
</td>
<td class="nump">$ 730<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AllowanceForDoubtfulAccountsReceivable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of allowance for credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 944<br> -SubTopic 210<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.7-03(a)(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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(4))<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 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 4: 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><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 6: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (f)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of direct write-downs of accounts receivable charged against the allowance.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProvisionForDoubtfulAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of expense (reversal of expense) for expected credit loss on accounts receivable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 326<br> -SubTopic 20<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 13<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479319/326-20-50-13<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03(5))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProvisionForDoubtfulAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>105
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408192880">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CustomerContractsLiabilityCurrentRollForward', window );"><strong>Customer Contracts Liability, Current</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_ContractWithCustomerLiabilityCurrent', window );">Beginning balance</a></td>
<td class="nump">$ 40,787<span></span>
</td>
<td class="nump">$ 35,743<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_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease', window );">Deferred revenue and customer deposits</a></td>
<td class="nump">21,538<span></span>
</td>
<td class="nump">39,076<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_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized', window );">Recognition of revenue deferred in prior period</a></td>
<td class="num">(20,987)<span></span>
</td>
<td class="num">(31,520)<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_cgnx_ContractLiabilityForeignExchangeRateChanges', window );">Foreign exchange rate changes</a></td>
<td class="num">(608)<span></span>
</td>
<td class="num">(2,512)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ContractWithCustomerLiabilityCurrent', window );">End balance</a></td>
<td class="nump">31,525<span></span>
</td>
<td class="nump">$ 40,787<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredRevenueRefundPayments1', window );">Deferred Revenue, Refund Payments</a></td>
<td class="num">$ (9,205)<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_cgnx_ContractLiabilityForeignExchangeRateChanges">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract Liability Foreign Exchange Rate Changes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ContractLiabilityForeignExchangeRateChanges</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract with Customer, Liability, Current And Prior Period Revenue 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;">cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Contract With Customer, Liability, Period Increase (Decrease)</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_CustomerContractsLiabilityCurrentRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Customer Contracts Liability Current [Roll Forward]</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CustomerContractsLiabilityCurrentRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ContractWithCustomerLiabilityCurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 8<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479806/606-10-50-8<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 606<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479837/606-10-45-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ContractWithCustomerLiabilityCurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredRevenueRefundPayments1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 customers for refund payments of revenue that was previously reported as deferred or unearned 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;">us-gaap_DeferredRevenueRefundPayments1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>106
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411505152">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Shareholders' Equity - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">3 Months Ended</th>
<th class="th" colspan="1">9 Months Ended</th>
<th class="th" colspan="8">12 Months Ended</th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 03, 2021 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>Vote </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 01, 2023 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Oct. 02, 2022 </div>
<div>$ / shares</div>
</th>
<th class="th" colspan="2">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Mar. 03, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 12, 2020 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 29, 2018 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Apr. 25, 2018 </div>
<div>shares</div>
</th>
<th class="th">
<div>Apr. 27, 2016 </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockSharesAuthorized', window );">Authorized shares (in shares) | shares</a></td>
<td class="nump">400,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">400,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PreferredStockParOrStatedValuePerShare', window );">Preferred stock par value (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.01<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockParOrStatedValuePerShare', window );">Common stock par value, in dollars per share | $ / shares</a></td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 0.002<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockSharesAuthorized', window );">Common stock, shares authorized (in shares) | shares</a></td>
<td class="nump">300,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">300,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<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,000,000<span></span>
</td>
<td class="nump">200,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_VoteEntitledForEachCommonShareOutstanding', window );">Vote entitled for each common share outstanding | Vote</a></td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock Repurchased During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 79,794,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 204,314,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 161,652,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CommonStockDividendsPerShareCashPaid', window );">Cash dividends per common share (in dollars per share) | $ / shares</a></td>
<td class="nump">$ 0.075<span></span>
</td>
<td class="nump">$ 0.060<span></span>
</td>
<td class="nump">$ 0.286<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.070<span></span>
</td>
<td class="nump">$ 0.265<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="nump">$ 0.065<span></span>
</td>
<td class="nump">$ 0.245<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"><sup>[1]</sup></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member', window );">Repurchase Program October 2018 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of authorized common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000,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_StockRepurchasedDuringPeriodShares', window );">Stock Repurchased During Period, Shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">957,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock Repurchased During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 78,652,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member', window );">Repurchase Program March 2020 [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of authorized common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 200,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodShares', window );">Stock Repurchased During Period, Shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,677,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,060,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchasedDuringPeriodValue', window );">Stock Repurchased During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 117,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 83,000,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled', window );">Repurchase of common stock, not yet settled (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">5,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member', window );">Repurchase Program March 2022</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ClassOfStockLineItems', window );"><strong>Class of Stock [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramAuthorizedAmount1', window );">Repurchase of authorized common stock</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="nump">$ 500,000,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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRedeemedOrCalledDuringPeriodShares', window );">Stock Redeemed or Called During Period, Shares | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,723,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,682,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRedeemedOrCalledDuringPeriodValue', window );">Stock Redeemed or Called During Period, Value</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 79,794,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 87,314,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1', window );">Stock Repurchase Program, Remaining Authorized Repurchase Amount</a></td>
<td class="nump">$ 332,892,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">332,892,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_cgnx_StockRepurchaseProgramBuybackExciseTax', window );">Stock Repurchase Program, Buyback Excise Tax</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 446,000<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="fn" style="border-bottom: 0px;"></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr><td colspan="16"></td></tr>
<tr><td colspan="16"><table class="outerFootnotes" width="100%"><tr class="outerFootnote">
<td style="vertical-align: top; width: 12pt;" valign="top">[1]</td>
<td style="vertical-align: top;" valign="top"><span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,790&#160;</span></td>
</tr></table></td></tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_StockRepurchaseProgramBuybackExciseTax">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stock Repurchase Program, Buyback Excise Tax</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_StockRepurchaseProgramBuybackExciseTax</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Stock Repurchased During Period, Shares Not Yet Settled</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_cgnx_VoteEntitledForEachCommonShareOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Vote entitled for each common share 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;">cgnx_VoteEntitledForEachCommonShareOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_CommonStockDividendsPerShareCashPaid">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 dividends paid during the period for each share of common stock 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> -Topic 505<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.3-04)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480008/505-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockDividendsPerShareCashPaid</td>
</tr>
<tr>
<td style="padding-right: 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_CommonStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of common stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CommonStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of common shares permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(29))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CommonStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockParOrStatedValuePerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockParOrStatedValuePerShare</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_PreferredStockSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://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 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 210<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.5-02(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_PreferredStockSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRedeemedOrCalledDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 stock bought back by the entity at the exercise price or redemption price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRedeemedOrCalledDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-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_StockRedeemedOrCalledDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock bought back by the entity at the exercise price or redemption price.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRedeemedOrCalledDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockRepurchaseProgramAuthorizedAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramAuthorizedAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount remaining of a stock repurchase plan authorized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_StockRepurchasedDuringPeriodShares">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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)(2))<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_StockRepurchasedDuringPeriodShares</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_StockRepurchasedDuringPeriodValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -SubTopic 10<br> -Topic 505<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481112/505-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 946<br> -SubTopic 830<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 11<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480167/946-830-55-11<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 205<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 4<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480767/946-205-45-4<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 505<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481004/946-505-50-2<br><br>Reference 5: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 946<br> -SubTopic 220<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 3<br> -Subparagraph (SX 210.6-09(4)(b))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/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(28))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480566/210-10-S99-1<br><br>Reference 7: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 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(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_StockRepurchasedDuringPeriodValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramOctober2018Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2020Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareRepurchaseProgramAxis=cgnx_RepurchaseProgramMarch2022Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>107
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410585984">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Additional Information (Detail)<br></strong></div></th>
<th class="th" colspan="1">8 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>group </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($) </div>
<div>group </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($) </div>
<div>$ / shares </div>
<div>shares</div>
</th>
<th class="th">
<div>May 03, 2023 </div>
<div>shares</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<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_cgnx_NumberOfGroupsWithinEmployeePopulation', window );">Number of groups within the employee population | group</a></td>
<td class="nump">3<span></span>
</td>
<td class="nump">3<span></span>
</td>
<td class="text">&#160;<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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement', window );">Estimated forfeiture rate for unvested options for senior management</a></td>
<td class="nump">8.00%<span></span>
</td>
<td class="nump">8.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement', window );">Estimated forfeiture rate for unvested options for all non-senior management</a></td>
<td class="nump">13.00%<span></span>
</td>
<td class="nump">13.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates', window );">Increase in compensation expense due to revised estimated forfeiture rates</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 234,000<span></span>
</td>
<td class="nump">$ 1,536,000<span></span>
</td>
<td class="nump">$ 255,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Weighted-average grant-date fair values of stock options granted | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 17.76<span></span>
</td>
<td class="nump">$ 21.39<span></span>
</td>
<td class="nump">$ 33.79<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_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue', window );">Total intrinsic values of stock options exercised</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 6,227,000<span></span>
</td>
<td class="nump">$ 8,424,000<span></span>
</td>
<td class="nump">$ 80,369,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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue', window );">Total fair values of stock options vested</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">34,751,000<span></span>
</td>
<td class="nump">41,497,000<span></span>
</td>
<td class="nump">45,328,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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions', window );">Total unrecognized compensation expense related to non-vested stock options</a></td>
<td class="nump">$ 58,489,000<span></span>
</td>
<td class="nump">$ 58,489,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1', window );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">1 year 11 months 1 day<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 54,768,000<span></span>
</td>
<td class="nump">54,505,000<span></span>
</td>
<td class="nump">43,774,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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,442,000<span></span>
</td>
<td class="nump">9,540,000<span></span>
</td>
<td class="nump">6,764,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_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO', window );">Estimated Forfeiture Rate for Unvested Options for CEO</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<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=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember', window );">Cognex Corporation 2023 Stock Option And Incentive Plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized | shares</a></td>
<td class="nump">8,443,492<span></span>
</td>
<td class="nump">8,443,492<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">8,100,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized', window );">Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized | shares</a></td>
<td class="nump">343,492<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_PlanNameAxis=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember', window );">Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Shares available for grant under stock option plans | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">10,610,800<span></span>
</td>
</tr>
<tr class="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 Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant', window );">Shares available for grant under stock option plans | shares</a></td>
<td class="nump">7,978,000<span></span>
</td>
<td class="nump">7,978,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_cgnx_ExpirationPeriodOfStockOptionPlan', window );">Expiration period of stock option plan</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">10 years<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 44.86<span></span>
</td>
<td class="nump">$ 62.49<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Vested (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod', window );">Granted | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">46,000<span></span>
</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_AwardTypeAxis=us-gaap_RestrictedStockUnitsRSUMember', window );">Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Cash used to fund tax payments</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 7,836,000<span></span>
</td>
<td class="nump">$ 2,406,000<span></span>
</td>
<td class="nump">$ 568,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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">$ (3,229,000)<span></span>
</td>
<td class="num">$ (1,049,000)<span></span>
</td>
<td class="nump">$ 126,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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 58.06<span></span>
</td>
<td class="nump">$ 87.03<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Vested (in shares) | shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">521,000<span></span>
</td>
<td class="nump">192,000<span></span>
</td>
<td class="nump">16,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Employee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MinimumMember', window );">Minimum [Member] | Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Employee Stock Option [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">5 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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Performance Shares</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">3 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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_srt_RangeAxis=srt_MaximumMember', window );">Maximum [Member] | Restricted Stock Units (RSUs) [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1', window );">Vesting period for stock option plans</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">4 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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for all non-senior management.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated Forfeiture Rate for Unvested Options for CEO</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</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_cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Estimated forfeiture rate for unvested options for senior management.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_ExpirationPeriodOfStockOptionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expiration period of stock option 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;">cgnx_ExpirationPeriodOfStockOptionPlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Increase (decrease) in compensation expense due to revised estimated forfeiture rates.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_NumberOfGroupsWithinEmployeePopulation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 groups within employee population.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NumberOfGroupsWithinEmployeePopulation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:integerItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options vested 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;">cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Shares based compensation arrangement by shares based payment award options exercised intrinsic 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;">cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost to be recognized for option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 additional shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of shares authorized for issuance under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (a)(3)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 718<br> -SubTopic 10<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_PlanNameAxis=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AwardTypeAxis=us-gaap_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_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>108
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403880352">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail) - 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>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward', window );"><strong>Shares</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 );">Beginning balance outstanding</a></td>
<td class="nump">8,467<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod', window );">Granted</a></td>
<td class="nump">1,541<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod', window );">Forfeited or expired</a></td>
<td class="num">(670)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Ending balance outstanding</a></td>
<td class="nump">9,008<span></span>
</td>
<td class="nump">8,467<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Beginning balance outstanding, weighted-average exercise price</a></td>
<td class="nump">$ 51.56<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">46.33<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice', window );">Exercised, weighted-average exercise price</a></td>
<td class="nump">33.64<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice', window );">Forfeited or expired, weighted-average exercise price</a></td>
<td class="nump">57.65<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice', window );">Ending balance outstanding, weighted-average exercise price</a></td>
<td class="nump">$ 50.87<span></span>
</td>
<td class="nump">$ 51.56<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber', window );">Exercisable, Shares</a></td>
<td class="nump">5,207<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Options vested or expected to vest</a></td>
<td class="nump">8,548<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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</a></td>
<td class="nump">$ 47.78<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Options vested or expected to vest, weighted-average exercise price</a></td>
<td class="nump">$ 50.79<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2', window );">Outstanding, weighted-average remaining contractual term (in years)</a></td>
<td class="text">5 years 11 months 1 day<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 term (in years)</a></td>
<td class="text">4 years 5 months 1 day<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1', window );">Options vested or expected to vest, weighted-average remaining contractual term (in years)</a></td>
<td class="text">5 years 9 months 10 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue', window );">Outstanding, aggregate intrinsic value</a></td>
<td class="nump">$ 17,164<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_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue', window );">Exercisable, aggregate intrinsic value</a></td>
<td class="nump">16,212<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue', window );">Options vested or expected to vest, aggregate intrinsic value</a></td>
<td class="nump">16,896<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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="nump">11,104<span></span>
</td>
<td class="nump">$ 12,267<span></span>
</td>
<td class="nump">$ 63,860<span></span>
</td>
</tr>
<tr class="ro">
<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 );">Share-Based Payment Arrangement, Exercise of Option, Tax Benefit</a></td>
<td class="num">$ (4,691)<span></span>
</td>
<td class="nump">$ 2,548<span></span>
</td>
<td class="nump">$ 46,529<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic 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;">cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ProceedsFromStockOptionsExercised">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cash inflow from exercise of option under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 14<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-14<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2A<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ProceedsFromStockOptionsExercised</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 presentations that combine terminations, 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 or that expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 of options that were either forfeited or expired.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Net number of 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/2009/role/commonPracticeRef<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-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_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average price at which option holders acquired shares when converting their stock options into shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(1)(iv)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>109
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403833184">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail) - Employee Stock Option [Member]<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate', window );">Risk-free rate</a></td>
<td class="nump">4.00%<span></span>
</td>
<td class="nump">2.20%<span></span>
</td>
<td class="nump">1.30%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate', window );">Expected dividend yield</a></td>
<td class="nump">0.61%<span></span>
</td>
<td class="nump">0.44%<span></span>
</td>
<td class="nump">0.27%<span></span>
</td>
</tr>
<tr class="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">39.00%<span></span>
</td>
<td class="nump">37.00%<span></span>
</td>
<td class="nump">39.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1', window );">Expected term (in years)</a></td>
<td class="text">5 years<span></span>
</td>
<td class="text">5 years 6 months<span></span>
</td>
<td class="text">6 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_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The risk-free interest rate assumption that is used in valuing an option on its own shares.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(iv)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (f)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:durationItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>110
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404058688">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail) - Restricted Stock [Member]<br> shares in Thousands</strong></div></th>
<th class="th" colspan="1">12 Months Ended</th>
</tr>
<tr><th class="th">
<div>Dec. 31, 2023 </div>
<div>$ / shares </div>
<div>shares</div>
</th></tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward', window );"><strong>Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested beginning balance outstanding | shares</a></td>
<td class="nump">1,269<span></span>
</td>
</tr>
<tr class="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 );">Granted | shares</a></td>
<td class="nump">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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod', window );">Vested | shares</a></td>
<td class="num">(521)<span></span>
</td>
</tr>
<tr class="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 or expired | shares</a></td>
<td class="num">(110)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding | shares</a></td>
<td class="nump">1,429<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward', window );"><strong>Weighted-Average Grant Fair Value</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue', window );">Nonvested beginning balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 61.74<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price | $ / shares</a></td>
<td class="nump">46.14<span></span>
</td>
</tr>
<tr class="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 );">Vested, weighted-average exercise price | $ / shares</a></td>
<td class="nump">59.22<span></span>
</td>
</tr>
<tr class="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 or expired, weighted-average exercise price | $ / shares</a></td>
<td class="nump">59.20<span></span>
</td>
</tr>
<tr class="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 );">Nonvested ending balance, weighted-average exercise price | $ / shares</a></td>
<td class="nump">$ 54.22<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_AwardTypeAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AwardTypeAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>111
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404323616">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract', window );"><strong>Share-Based Payment Arrangement [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Recognition period for unrecognized compensation expense</a></td>
<td class="text">1 year 11 months 1 day<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 54,768,000<span></span>
</td>
<td class="nump">$ 54,505,000<span></span>
</td>
<td class="nump">$ 43,774,000<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense', window );">Income tax benefit recognized related to stock-based compensation expense</a></td>
<td class="nump">8,442,000<span></span>
</td>
<td class="nump">9,540,000<span></span>
</td>
<td class="nump">6,764,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount', window );">Compensation expense capitalized</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_IncomeStatementLocationAxis=cgnx_ProductCostOfRevenueMember', window );">Product cost of revenue [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">1,979,000<span></span>
</td>
<td class="nump">2,016,000<span></span>
</td>
<td class="nump">1,345,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_IncomeStatementLocationAxis=us-gaap_ResearchAndDevelopmentExpenseMember', window );">Research, development, and engineering 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">16,480,000<span></span>
</td>
<td class="nump">17,693,000<span></span>
</td>
<td class="nump">13,535,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_IncomeStatementLocationAxis=cgnx_SellingGeneralAndAdministrativeMember', window );">Selling, general, and administrative [Member]</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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems', window );"><strong>Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AllocatedShareBasedCompensationExpense', window );">Stock-based compensation expense</a></td>
<td class="nump">$ 36,309,000<span></span>
</td>
<td class="nump">$ 34,796,000<span></span>
</td>
<td class="nump">$ 28,894,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Employee service share based compensation recognized period costs capitalized amount.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_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_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of tax benefit for recognition of expense of award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (h)(1)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_IncomeStatementLocationAxis=cgnx_ProductCostOfRevenueMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_ProductCostOfRevenueMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_SellingGeneralAndAdministrativeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_SellingGeneralAndAdministrativeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403799520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details) - Performance Shares - $ / shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested beginning balance outstanding</a></td>
<td class="nump">33<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Nonvested beginning balance, weighted-average exercise price</a></td>
<td class="nump">$ 62.49<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Granted</a></td>
<td class="nump">46<span></span>
</td>
<td class="text">&#160;<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue', window );">Granted, weighted-average exercise price</a></td>
<td class="nump">$ 44.86<span></span>
</td>
<td class="nump">$ 62.49<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Vested</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="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 );">Vested, weighted-average exercise price</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod', window );">Forfeited or expired</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="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 or expired, weighted-average exercise price</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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber', window );">Nonvested ending balance outstanding</a></td>
<td class="nump">79<span></span>
</td>
<td class="nump">33<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Nonvested ending balance, weighted-average exercise price</a></td>
<td class="nump">$ 52.23<span></span>
</td>
<td class="nump">$ 62.49<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_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(03)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of grants made during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(01)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(i)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(ii)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:perShareItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 718<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)(2)(iii)(02)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480429/718-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_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>113
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414485952">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Employee Savings Plan - Additional Information (Detail) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CompensationAndRetirementDisclosureAbstract', window );"><strong>Retirement Benefits [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan', window );">Minimum age to be eligible to defined contribution plan</a></td>
<td class="text">21 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_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent', window );">Maximum contribution by company expressed as percentage of employee pre-tax salary</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch', window );">Company match 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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent', window );">Percent of employee contribution</a></td>
<td class="nump">6.00%<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_cgnx_CompanyContributionsVestAtEndOfOneYear', window );">Company contributions vest at end of one year</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfTwoYear', window );">Company contributions vest at end of two years</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="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_CompanyContributionsVestAtEndOfThreeYears', window );">Company contributions vest at end of three years</a></td>
<td class="nump">75.00%<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_cgnx_CompanyContributionsVestAtEndOfFourYears', window );">Company contributions vest at end of four years</a></td>
<td class="nump">100.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DefinedContributionPlanCostRecognized', window );">Company contributions to employee savings plan</a></td>
<td class="nump">$ 3,392,000<span></span>
</td>
<td class="nump">$ 3,284,000<span></span>
</td>
<td class="nump">$ 2,898,000<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_CompanyContributionsVestAtEndOfFourYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of four years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfFourYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_CompanyContributionsVestAtEndOfOneYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company Contributions Vest At End Of One 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;">cgnx_CompanyContributionsVestAtEndOfOneYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_CompanyContributionsVestAtEndOfThreeYears">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of three years.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_CompanyContributionsVestAtEndOfThreeYears</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_CompanyContributionsVestAtEndOfTwoYear">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Company contributions vest at end of two 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;">cgnx_CompanyContributionsVestAtEndOfTwoYear</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum age to be eligible to defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</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_CompensationAndRetirementDisclosureAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CompensationAndRetirementDisclosureAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanCostRecognized">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of cost for defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 715<br> -SubTopic 70<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480794/715-70-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanCostRecognized</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage employer matches of the employee's percentage contribution matched.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 percentage of employee gross pay the employee may contribute to a defined contribution plan.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>114
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411298032">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Additional Information (Details) - USD ($)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic', window );">Domestic income from continuing operations before taxes</a></td>
<td class="nump">$ 16,039,000<span></span>
</td>
<td class="nump">$ 48,546,000<span></span>
</td>
<td class="nump">$ 121,729,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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign', window );">Foreign income from continuing operations before taxes</a></td>
<td class="nump">119,309,000<span></span>
</td>
<td class="nump">202,149,000<span></span>
</td>
<td class="nump">$ 197,171,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_cgnx_UnrecognizedTaxBenefitsGross', window );">Unrecognized Tax Benefits, Gross</a></td>
<td class="nump">29,053,000<span></span>
</td>
<td class="nump">15,866,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability', window );">Unrecognized Tax Benefits, Gross, Noncurrent Liability</a></td>
<td class="nump">26,685,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes', window );">Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</a></td>
<td class="nump">2,368,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued', window );">Interest and penalties, gross</a></td>
<td class="nump">3,339,000<span></span>
</td>
<td class="nump">$ 2,219,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Minimum decrease in income tax expense due to release in reserves</a></td>
<td class="nump">650,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_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves', window );">Maximum decrease in income tax expense due to release in reserves</a></td>
<td class="nump">$ 1,000,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="nump">6.00%<span></span>
</td>
<td class="nump">7.00%<span></span>
</td>
<td class="nump">5.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense', window );">Income tax penalties and interest expense</a></td>
<td class="nump">$ 1,032,000<span></span>
</td>
<td class="nump">$ 229,000<span></span>
</td>
<td class="nump">$ 281,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_IncomeTaxesPaidNet', window );">Income tax paid net</a></td>
<td class="nump">56,618,000<span></span>
</td>
<td class="nump">57,016,000<span></span>
</td>
<td class="nump">$ 49,435,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_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">339,000<span></span>
</td>
<td class="nump">53,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_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">943,000<span></span>
</td>
<td class="nump">7,661,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 custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsForeignTaxStructureChange', window );">Foreign tax structure deferred 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="nump">$ 437,500,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_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences</a></td>
<td class="nump">274,327,000<span></span>
</td>
<td class="nump">$ 298,922,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 350,000,000<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardAxis=us-gaap_ResearchMember', window );">Research Tax Credit Carryforward [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsValuationAllowance', window );">Deferred tax assets, valuation allowance</a></td>
<td class="nump">5,427,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">1,720,000<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign', window );">Deferred Tax Assets, Tax Credit Carryforwards, Foreign</a></td>
<td class="nump">$ 943,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="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member] | Revenue Commissioners, Ireland [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">12.50%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member] | State Administration of Taxation, China [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">25.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member] | KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_IncomeTaxAuthorityAxis=us-gaap_ForeignCountryMember', window );">Foreign Tax Authority [Member] | JAPAN</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">34.60%<span></span>
</td>
<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_IncomeTaxAuthorityAxis=us-gaap_DomesticCountryMember', window );">Domestic Tax Authority [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_TaxCreditCarryforwardLineItems', window );"><strong>Tax Credit Carryforward [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState', window );">Deferred Tax Assets, Tax Credit Carryforwards, State</a></td>
<td class="nump">$ 8,740,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>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_DeferredTaxAssetsForeignTaxStructureChange">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Foreign Tax Structure Change</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsForeignTaxStructureChange</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Tax Credit Carryforwards, State</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax 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;">cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 decrease in income tax expense due to release in reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Minimum decrease in income tax expense due to release in reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_UnrecognizedTaxBenefitsGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecognizedTaxBenefitsGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross, Noncurrent 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;">cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Unrecognized Tax Benefits, Gross, Offset to Tax Attributes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign 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_DeferredTaxAssetsTaxCreditCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic 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 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><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.3)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><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.3)<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_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_TaxCreditCarryforwardLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_TaxCreditCarryforwardLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return.</p></div>
<a href="javascript: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 15<br> -Subparagraph (c)<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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the 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 15<br> -Subparagraph (c)<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_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_TaxCreditCarryforwardAxis=us-gaap_ResearchMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_TaxCreditCarryforwardAxis=us-gaap_ResearchMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<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=us-gaap_RevenueCommissionersIrelandMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_RevenueCommissionersIrelandMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_StateAdministrationOfTaxationChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_StateAdministrationOfTaxationChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=country_KP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=country_KP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=country_JP">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=country_JP</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>115
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627415177520">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Constituents of Provision for Income Taxes (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Current:</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_CurrentFederalTaxExpenseBenefit', window );">Federal</a></td>
<td class="nump">$ 29,084<span></span>
</td>
<td class="nump">$ 48,355<span></span>
</td>
<td class="nump">$ 27,870<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit', window );">State</a></td>
<td class="nump">3,544<span></span>
</td>
<td class="nump">5,689<span></span>
</td>
<td class="nump">5,372<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentForeignTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">9,207<span></span>
</td>
<td class="nump">10,243<span></span>
</td>
<td class="nump">8,406<span></span>
</td>
</tr>
<tr class="reu">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_CurrentIncomeTaxExpenseBenefit', window );">Current income tax expense (benefit), Total</a></td>
<td class="nump">41,835<span></span>
</td>
<td class="nump">64,287<span></span>
</td>
<td class="nump">41,648<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract', window );"><strong>Deferred:</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_DeferredFederalIncomeTaxExpenseBenefit', window );">Federal</a></td>
<td class="num">(24,731)<span></span>
</td>
<td class="num">(40,772)<span></span>
</td>
<td class="num">(19,266)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit', window );">State</a></td>
<td class="num">(5,877)<span></span>
</td>
<td class="num">(8,354)<span></span>
</td>
<td class="num">(769)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit', window );">Foreign</a></td>
<td class="nump">10,887<span></span>
</td>
<td class="nump">20,009<span></span>
</td>
<td class="nump">17,406<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredIncomeTaxExpenseBenefit', window );">Deferred income tax expense (benefit), Total</a></td>
<td class="num">(19,721)<span></span>
</td>
<td class="num">(29,117)<span></span>
</td>
<td class="num">(2,629)<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 (benefit), continuing operations, Total</a></td>
<td class="nump">$ 22,114<span></span>
</td>
<td class="nump">$ 35,170<span></span>
</td>
<td class="nump">$ 39,019<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_CurrentFederalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentFederalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentForeignTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentForeignTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 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_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_CurrentStateAndLocalTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (a)<br> -SubTopic 10<br> -Topic 740<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_CurrentStateAndLocalTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredFederalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredFederalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredForeignIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><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></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredForeignIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 28<br> -Subparagraph (b)<br> -SubTopic 10<br> -Topic 230<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482740/230-10-45-28<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -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_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SX 210.4-08(h)(1)(Note 1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 9<br> -Subparagraph (b)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-9<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.7)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479360/740-10-S99-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>116
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627404815936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="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 Tax Disclosure [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate', window );">Income tax expense at U.S. federal statutory corporate tax rate</a></td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
<td class="nump">21.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes', window );">State income taxes, net of federal benefit</a></td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential', window );">Foreign tax rate differential</a></td>
<td class="num">(6.00%)<span></span>
</td>
<td class="num">(7.00%)<span></span>
</td>
<td class="num">(5.00%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits', window );">Tax credits</a></td>
<td class="num">(3.00%)<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
<td class="num">(2.00%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent', window );">Taxation on multinational operations</a></td>
<td class="num">(0.03)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent', window );">Tax reserves</a></td>
<td class="nump">0.03<span></span>
</td>
<td class="nump">0.01<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent', window );">Limitation on deduction for executive compensation</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent', window );">Discrete tax expense related to employee stock-based compensation</a></td>
<td class="num">(1.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
<td class="num">(3.00%)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements', window );">Discrete tax expense related to tax return filings</a></td>
<td class="num">(2.00%)<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="num">(1.00%)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal', window );">Discrete tax expense related to rate revaluation on state tax assets</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">0.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_EffectiveIncomeTaxRateReconciliationGiltiPercent', window );">Discrete tax benefit related to GILTI adjustments</a></td>
<td class="num">(2.00%)<span></span>
</td>
<td class="num">(3.00%)<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance', window );">Discrete tax benefit for release of valuation allowance</a></td>
<td class="num">(4.00%)<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl custom" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent', window );">Discrete tax benefit for audit settlements</a></td>
<td class="nump">0.00%<span></span>
</td>
<td class="nump">1.00%<span></span>
</td>
<td class="nump">0.00%<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments', window );">Other</a></td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">2.00%<span></span>
</td>
<td class="nump">1.00%<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_EffectiveIncomeTaxRateContinuingOperations', window );">Income tax expense</a></td>
<td class="nump">16.00%<span></span>
</td>
<td class="nump">14.00%<span></span>
</td>
<td class="nump">12.00%<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Audit Settlement, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Executive Compensation, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types1: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_cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Tax Reserves, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:pureItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateContinuingOperations">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateContinuingOperations</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential</td>
</tr>
<tr>
<td style="padding-right: 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_EffectiveIncomeTaxRateReconciliationGiltiPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of reported income tax expense from difference to expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to global intangible low-taxed income (GILTI).</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_EffectiveIncomeTaxRateReconciliationGiltiPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationOtherAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Name Accounting Standards Codification<br> -Section 35<br> -Paragraph 2<br> -SubTopic 740<br> -Topic 718<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480887/718-740-35-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 12<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-12<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits.</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><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationTaxCredits</td>
</tr>
<tr>
<td style="padding-right: 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_EffectiveIncomeTaxRateReconciliationTaxSettlements">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to income tax settlements. Including, but not limited to, domestic tax settlement, foreign tax settlement, state and local tax settlement, and other tax settlements.</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><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationTaxSettlements</td>
</tr>
<tr>
<td style="padding-right: 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_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax 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 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/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 1<br> -Subparagraph (SAB Topic 6.I.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_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal</td>
</tr>
<tr>
<td style="padding-right: 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_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>117
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414566432">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward', window );"><strong>Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 13,647<span></span>
</td>
<td class="nump">$ 13,812<span></span>
</td>
<td class="nump">$ 13,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_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions', window );">Reductions as a result of tax positions taken in prior periods</a></td>
<td class="num">(242)<span></span>
</td>
<td class="num">(119)<span></span>
</td>
<td class="num">(280)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions', window );">Additions as a result of tax positions taken in prior periods</a></td>
<td class="nump">12,556<span></span>
</td>
<td class="nump">2,850<span></span>
</td>
<td class="nump">100<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions', window );">Additions as a result of tax positions taken in the current period</a></td>
<td class="nump">1,877<span></span>
</td>
<td class="nump">505<span></span>
</td>
<td class="nump">525<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities', window );">Reductions relating to settlements with taxing authorities</a></td>
<td class="num">(1,230)<span></span>
</td>
<td class="num">(2,329)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations', window );">Reductions as a result of the expiration of the applicable statutes of limitations</a></td>
<td class="num">(894)<span></span>
</td>
<td class="num">(1,072)<span></span>
</td>
<td class="num">(485)<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnrecognizedTaxBenefits', window );">Balance of reserve for income taxes</a></td>
<td class="nump">$ 25,714<span></span>
</td>
<td class="nump">$ 13,647<span></span>
</td>
<td class="nump">$ 13,812<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefits">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of unrecognized tax benefits.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10B<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482525/740-10-45-10B<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefits</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 settlements with taxing authorities.</p></div>
<a href="javascript: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)(3)<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_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 taken in prior period tax returns.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 15A<br> -Subparagraph (a)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-15A<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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>118
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403725920">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Income Taxes - Constituents of Deferred Tax Assets (Details) - USD ($)<br></strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2019</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DeferredTaxAssetsGrossAbstract', window );"><strong>Deferred tax assets:</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure', window );">Intangible asset in connection with change in tax structure</a></td>
<td class="nump">$ 375,360,000<span></span>
</td>
<td class="nump">$ 386,221,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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost', window );">Stock-based compensation expense</a></td>
<td class="nump">20,916,000<span></span>
</td>
<td class="nump">21,962,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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic', window );">Tax credit carryforwards</a></td>
<td class="nump">7,848,000<span></span>
</td>
<td class="nump">8,284,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_DeferredTaxAssetsInventory', window );">Inventory and revenue related</a></td>
<td class="nump">10,897,000<span></span>
</td>
<td class="nump">8,117,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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther', window );">Bonuses, commissions, and other compensation</a></td>
<td class="nump">6,243,000<span></span>
</td>
<td class="nump">5,116,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_cgnx_NoncurrentDeferredTaxAssetsDeprecation', window );">Depreciation</a></td>
<td class="nump">1,840,000<span></span>
</td>
<td class="nump">4,881,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_DeferredTaxAssetsOperatingLossCarryforwardsForeign', window );">Foreign net operating losses</a></td>
<td class="nump">339,000<span></span>
</td>
<td class="nump">53,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_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses', window );">Capitalization of R&amp;D expenses</a></td>
<td class="nump">28,521,000<span></span>
</td>
<td class="nump">16,889,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_cgnx_DeferredTaxAssetsOtherNoncurrent', window );">Other</a></td>
<td class="nump">5,514,000<span></span>
</td>
<td class="nump">15,102,000<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_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross', window );">Total deferred tax assets</a></td>
<td class="nump">457,478,000<span></span>
</td>
<td class="nump">466,625,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_DeferredTaxAssetsValuationAllowance', window );">Valuation allowance</a></td>
<td class="num">(943,000)<span></span>
</td>
<td class="num">(7,661,000)<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_DeferredTaxAssetsLiabilitiesNet', window );">Deferred Tax Assets, Net, Noncurrent</a></td>
<td class="nump">456,535,000<span></span>
</td>
<td class="nump">458,964,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_DeferredTaxLiabilitiesAbstract', window );"><strong>Deferred tax liabilities:</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_DeferredTaxLiabilitiesPropertyPlantAndEquipment', window );">Amortization</a></td>
<td class="num">(28,685,000)<span></span>
</td>
<td class="num">(2,762,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_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome', window );">GILTI tax basis differences in connection with change in tax structure</a></td>
<td class="num">(274,327,000)<span></span>
</td>
<td class="num">(298,922,000)<span></span>
</td>
<td class="num">$ (350,000,000)<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_DeferredTaxLiabilities', window );">Deferred Tax Liabilities, Net</a></td>
<td class="num">(303,012,000)<span></span>
</td>
<td class="num">(301,684,000)<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_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet', window );">Deferred income taxes</a></td>
<td class="nump">$ 153,523,000<span></span>
</td>
<td class="nump">$ 157,280,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_cgnx_DeferredIncomeTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred income tax assets (liabilities), net</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredIncomeTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Capitalization Of Research And Development Expenses</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, Intangible Asset, Change in Tax Structure</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxAssetsOtherNoncurrent">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred tax assets other non current.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsOtherNoncurrent</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Assets, With Jurisdictional Netting, Gross</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax 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;">cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_NoncurrentDeferredTaxAssetsDeprecation">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Noncurrent deferred tax assets deprecation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_NoncurrentDeferredTaxAssetsDeprecation</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_DeferredTaxAssetsGrossAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsGrossAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxAssetsInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsLiabilitiesNet">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsLiabilitiesNet</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxAssetsOperatingLossCarryforwardsDomestic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxAssetsOperatingLossCarryforwardsForeign</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from compensation and benefits, 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_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>debit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxAssetsValuationAllowance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxAssetsValuationAllowance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilities">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-2<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 740<br> -SubTopic 10<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_DeferredTaxLiabilities</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DeferredTaxLiabilitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 740<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 6<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482685/740-10-50-6<br><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_DeferredTaxLiabilitiesPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>119
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408708000">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares - Calculation of Weighted Average Shares (Detail) - shares<br> shares in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_EarningsPerShareAbstract', window );"><strong>Earnings Per Share [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic', window );">Basic weighted-average common shares outstanding</a></td>
<td class="nump">172,249<span></span>
</td>
<td class="nump">173,407<span></span>
</td>
<td class="nump">176,463<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment', window );">Effect of dilutive stock options</a></td>
<td class="nump">1,150<span></span>
</td>
<td class="nump">1,462<span></span>
</td>
<td class="nump">3,453<span></span>
</td>
</tr>
<tr class="rou">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding', window );">Diluted weighted-average common and common-equivalent shares outstanding</a></td>
<td class="nump">173,399<span></span>
</td>
<td class="nump">174,869<span></span>
</td>
<td class="nump">179,916<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_WeightedAverageNumberDilutedSharesOutstandingAdjustment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation.</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_WeightedAverageNumberDilutedSharesOutstandingAdjustment</td>
</tr>
<tr>
<td style="padding-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_WeightedAverageNumberOfDilutedSharesOutstanding">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 16<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-16<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_WeightedAverageNumberOfSharesOutstandingBasic">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 45<br> -Paragraph 10<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482689/260-10-45-10<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_WeightedAverageNumberOfSharesOutstandingBasic</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>120
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627414580784">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Weighted Average Shares - Additional Information (Detail) - shares<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</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 Compensation Plan [Member]</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">6,854,092<span></span>
</td>
<td class="nump">4,715,104<span></span>
</td>
<td class="nump">497,504<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember', window );">Restricted Stock [Member]</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">365<span></span>
</td>
<td class="nump">26,079<span></span>
</td>
<td class="nump">605<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember', window );">Performance Shares</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_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems', window );"><strong>Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Stock options to purchase anti-dilutive common stock</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) or earnings per unit (EPU) in the future that were not included in the computation of diluted EPS or EPU because to do so would increase EPS or EPU amounts or decrease loss per share or unit amounts for the period presented.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 260<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482662/260-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:sharesItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_EmployeeStockOptionMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_RestrictedStockMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis=us-gaap_PerformanceSharesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>121
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627408197312">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Additional Information (Detail) - Segment<br></strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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_NumberOfReportableSegments', window );">Number of reportable segments</a></td>
<td class="nump">1<span></span>
</td>
<td class="nump">1<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Total Revenue | Revenue from a single customer, percentage | Customer 2 [Member]</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_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.00%<span></span>
</td>
<td class="nump">17.00%<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember', window );">Total Revenue | Revenue from a single customer, percentage | Customer 1 [Member]</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_ConcentrationRiskLineItems', window );"><strong>Concentration Risk [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_ConcentrationRiskPercentage1', window );">Maximum percentage of revenue accountability</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11.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_ConcentrationRiskLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 954<br> -SubTopic 310<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481027/954-310-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskPercentage1">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the "benchmark" (or denominator) in the equation, this concept represents the concentration percentage derived from the division.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 280<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 42<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482810/280-10-50-42<br><br>Reference 2: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 21<br> -Subparagraph (a)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-21<br><br>Reference 3: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 825<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482907/825-10-50-20<br><br>Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 18<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-18<br><br>Reference 5: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Name Accounting Standards Codification<br> -Topic 275<br> -SubTopic 10<br> -Section 50<br> -Paragraph 20<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482861/275-10-50-20<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskPercentage1</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>dtr-types:percentItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_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_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByBenchmarkAxis=us-gaap_SalesRevenueNetMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ConcentrationRiskByTypeAxis=us-gaap_CustomerConcentrationRiskMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cgnx_Customer2Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cgnx_Customer2Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_MajorCustomersAxis=cgnx_Customer1Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_MajorCustomersAxis=cgnx_Customer1Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>122
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411285936">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="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>Revenues from External Customers and Long-Lived Assets [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">$ 837,547<span></span>
</td>
<td class="nump">$ 1,006,090<span></span>
</td>
<td class="nump">$ 1,037,098<span></span>
</td>
</tr>
<tr class="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 );">Long-lived assets</a></td>
<td class="nump">112,937<span></span>
</td>
<td class="nump">86,357<span></span>
</td>
<td class="nump">84,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_srt_StatementGeographicalAxis=country_US', window );">United States [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Revenues from External Customers and Long-Lived Assets [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">288,324<span></span>
</td>
<td class="nump">343,835<span></span>
</td>
<td class="nump">393,690<span></span>
</td>
</tr>
<tr class="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 );">Long-lived assets</a></td>
<td class="nump">62,946<span></span>
</td>
<td class="nump">66,928<span></span>
</td>
<td class="nump">63,141<span></span>
</td>
</tr>
<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_EuropeMember', window );">Europe [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Revenues from External Customers and Long-Lived Assets [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">220,665<span></span>
</td>
<td class="nump">234,643<span></span>
</td>
<td class="nump">247,744<span></span>
</td>
</tr>
<tr class="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 );">Long-lived assets</a></td>
<td class="nump">17,005<span></span>
</td>
<td class="nump">14,725<span></span>
</td>
<td class="nump">16,982<span></span>
</td>
</tr>
<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=cgnx_GreaterChinaMember', window );">Greater China [Member]</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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">164,115<span></span>
</td>
<td class="nump">227,447<span></span>
</td>
<td class="nump">200,135<span></span>
</td>
</tr>
<tr class="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 );">Long-lived assets</a></td>
<td class="nump">17,028<span></span>
</td>
<td class="nump">1,334<span></span>
</td>
<td class="nump">960<span></span>
</td>
</tr>
<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=cgnx_OtherGeographicAreaMember', window );">Other [Member]</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_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems', window );"><strong>Revenues from External Customers and Long-Lived Assets [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_RevenueFromContractWithCustomerExcludingAssessedTax', window );">Revenue</a></td>
<td class="nump">164,443<span></span>
</td>
<td class="nump">200,165<span></span>
</td>
<td class="nump">195,529<span></span>
</td>
</tr>
<tr class="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 );">Long-lived assets</a></td>
<td class="nump">$ 15,958<span></span>
</td>
<td class="nump">$ 3,370<span></span>
</td>
<td class="nump">$ 3,705<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_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_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=srt_EuropeMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">srt_StatementGeographicalAxis=srt_EuropeMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_srt_StatementGeographicalAxis=cgnx_GreaterChinaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_GreaterChinaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_OtherGeographicAreaMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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=cgnx_OtherGeographicAreaMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>123
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403297872">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Business Acquisitions - Moritex Narrative (Details)<br> &#165; in Thousands, $ in Thousands</strong></div></th>
<th class="th" colspan="2"></th>
<th class="th" colspan="2">3 Months Ended</th>
<th class="th" colspan="3">12 Months Ended</th>
<th class="th" colspan="1"></th>
</tr>
<tr>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Mar. 31, 2024 </div>
<div>JPY (&#165;)</div>
</th>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Oct. 18, 2023 </div>
<div>JPY (&#165;)</div>
</th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payments related to business 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="nump">$ 257,056<span></span>
</td>
<td class="nump">$ 5,050<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=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</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_cgnx_BusinessCombinationEnterpriseValue', window );">Enterprise value</a></td>
<td class="nump">$ 270,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="nump">&#165; 40,000,000<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationConsiderationTransferred1', window );">Purchase price</a></td>
<td class="nump">296,138<span></span>
</td>
<td class="nump">&#165; 44,376,245<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Cash paid in purchase price</a></td>
<td class="nump">295,144<span></span>
</td>
<td class="nump">&#165; 44,227,414<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash acquired</a></td>
<td class="nump">38,088<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Payments related to business acquisitions</a></td>
<td class="nump">257,056<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost', window );">Asset acquisition, transaction costs</a></td>
<td class="nump">$ 5,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>
</tr>
<tr class="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=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Forecast</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Cash paid in purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 994<span></span>
</td>
<td class="nump">&#165; 148,831<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="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_cgnx_BusinessCombinationEnterpriseValue">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Combination, Enterprise 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;">cgnx_BusinessCombinationEnterpriseValue</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_AssetAcquisitionConsiderationTransferredTransactionCost">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 cost incurred as part of consideration transferred in asset acquisition.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/exampleRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 55<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479908/805-50-55-1<br><br>Reference 2: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 25<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480060/805-50-25-1<br><br>Reference 3: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 1<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480027/805-50-30-1<br><br>Reference 4: http://www.xbrl.org/2009/role/commonPracticeRef<br> -Topic 805<br> -SubTopic 50<br> -Name Accounting Standards Codification<br> -Section 30<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480027/805-50-30-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript: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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_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=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_StatementScenarioAxis=srt_ScenarioForecastMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="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_StatementScenarioAxis=srt_ScenarioForecastMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>124
<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.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411393152">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Business Acquisitions - Moritex Purchase Price Allocation (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Oct. 18, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 07, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="nump">$ 393,181<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 242,630<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 241,713<span></span>
</td>
</tr>
<tr class="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</a></td>
<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,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=cgnx_MoritexCorporationMember', window );">Moritex Corporation</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents', window );">Cash and cash equivalents</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 38,088<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables', window );">Accounts receivable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">11,572<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory', window );">Inventories</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">22,788<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment', window );">Property, plant and equipment</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">19,876<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_Goodwill', window );">Goodwill</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">145,047<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<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 assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,516<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">4,935<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable', window );">Accounts payable</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(6,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>
</tr>
<tr class="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 );">Accrued expenses</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(13,521)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(22,055)<span></span>
</td>
<td class="text">&#160;<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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes', window );">Reserve for income taxes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(5,864)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther', window );">Other liabilities</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(2,594)<span></span>
</td>
<td class="text">&#160;<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet', window );">Purchase price</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">296,138<span></span>
</td>
<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=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Customer 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>
</tr>
<tr class="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>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">66,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="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=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Completed 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>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessAcquisitionLineItems', window );"><strong>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">32,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>
</tr>
<tr class="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=cgnx_MoritexCorporationMember', window );">Moritex Corporation | Trademarks</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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>Business Acquisition [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles', window );">Finite-lived intangible assets</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 850<span></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_cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income 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;">cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates.</p></div>
<a href="javascript: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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 for goods and services received that are used in an entity's business and related party payables, 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 inventory 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 liabilities due after 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 property, plant, and equipment 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_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_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_BusinessAcquisitionAxis=cgnx_MoritexCorporationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_MoritexCorporationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_CompletedTechnologyMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_CompletedTechnologyMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_TrademarksMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_TrademarksMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>125
<FILENAME>R107.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627403652912">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Loss from Fire (Details) - Fire - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="2">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_UnusualOrInfrequentItemLineItems', window );"><strong>Unusual or Infrequent Item, or Both [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_LossFromCatastrophes', window );">Loss from Catastrophes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 20,779<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_cgnx_GrossLossFromCatastrophes', window );">Gross Loss from Catastrophes</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">48,339<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_InsuranceRecoveries', window );">Insurance Recoveries</a></td>
<td class="nump">$ 8,000<span></span>
</td>
<td class="nump">$ 27,560<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_cgnx_InsuranceRecoveriesBusinessInterruption', window );">Insurance Recoveries, Business Interruption</a></td>
<td class="nump">2,500<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_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses', window );">Insurance Recoveries, Lost Inventory And Other Losses</a></td>
<td class="nump">$ 5,500<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_cgnx_GrossLossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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 Loss from Catastrophes</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_GrossLossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_InsuranceRecoveriesBusinessInterruption">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Insurance Recoveries, Business Interruption</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">cgnx_InsuranceRecoveriesBusinessInterruption</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Insurance Recoveries, Lost Inventory And Other 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;">cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>cgnx_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_InsuranceRecoveries">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 recovered from insurance. These recoveries reduce costs and losses that are reported as a separate line item under operating expenses.</p></div>
<a href="javascript: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_InsuranceRecoveries</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_LossFromCatastrophes">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The charge against earnings in the period for the uninsured portion of a loss from a fire, explosion, or natural disaster (hurricane, earthquake).</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef<br> -Topic 220<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SX 210.5-03.9)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_LossFromCatastrophes</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_UnusualOrInfrequentItemLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</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_UnusualOrInfrequentItemLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_UnusualOrInfrequentItemAxis=us-gaap_FireMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_UnusualOrInfrequentItemAxis=us-gaap_FireMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>126
<FILENAME>R108.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410544048">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Additional Information (Details)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th">
<div>Dec. 31, 2023 </div>
<div>USD ($)</div>
</th>
<th class="th">
<div>Dec. 31, 2022 </div>
<div>USD ($) </div>
<div>Employees</div>
</th>
<th class="th">
<div>Dec. 31, 2021 </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_RestructuringAndRelatedActivitiesAbstract', window );"><strong>Restructuring and Related Activities [Abstract]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated', window );">Number of positions eliminated | Employees</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">18<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges | $</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,657<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_RestructuringAndRelatedActivitiesAbstract">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- References</a><div><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedActivitiesAbstract</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>The number of positions eliminated during the period as a result of restructuring activities.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated</td>
</tr>
<tr>
<td style="padding-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_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>127
<FILENAME>R109.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411925088">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Schedule of Restructuring and Related Costs (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 charges</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,657<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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits [Member]</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_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,584<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination [Member]</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_RestructuringCostAndReserveLineItems', window );"><strong>Restructuring Cost and Reserve [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">$ 73<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_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>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (c)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(2)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 3: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (b)(1)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br><br>Reference 4: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 2<br> -Subparagraph (SAB Topic 5.P.4(b)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147479823/420-10-S99-2<br><br>Reference 5: 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 6: 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 7: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 420<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 1<br> -Subparagraph (d)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482017/420-10-50-1<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringCostAndReserveLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_OneTimeTerminationBenefitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ContractTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_ContractTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>128
<FILENAME>R110.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627410577264">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 charges</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 1,657<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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember', window );">One-time Termination Benefits [Member]</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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">1,584<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCostAndReserveAxis=us-gaap_ContractTerminationMember', window );">Contract Termination [Member]</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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="nump">73<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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | December 2022</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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Beginning Balance</a></td>
<td class="nump">1,039<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,657)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 payments</a></td>
<td class="num">(1,048)<span></span>
</td>
<td class="num">(646)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Foreign exchange rate changes</a></td>
<td class="nump">9<span></span>
</td>
<td class="nump">28<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Ending Balance</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">1,039<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | One-time Termination Benefits [Member] | December 2022</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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Beginning Balance</a></td>
<td class="nump">964<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(1,584)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 payments</a></td>
<td class="num">(973)<span></span>
</td>
<td class="num">(646)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Foreign exchange rate changes</a></td>
<td class="nump">9<span></span>
</td>
<td class="nump">26<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Ending Balance</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">964<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember', window );">Accrued Liabilities [Member] | Contract Termination [Member] | December 2022</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_RestructuringReserveRollForward', window );"><strong>Restructuring Reserve [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Beginning Balance</a></td>
<td class="nump">75<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringCharges', window );">Restructuring charges</a></td>
<td class="text">&#160;<span></span>
</td>
<td class="num">(73)<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 payments</a></td>
<td class="num">(75)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_RestructuringReserveTranslationAdjustment', window );">Foreign exchange rate changes</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="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 );">Restructuring Reserve, Ending Balance</a></td>
<td class="nump">$ 0<span></span>
</td>
<td class="nump">$ 75<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_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_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>
<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_RestructuringReserveRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_RestructuringReserveRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</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_RestructuringCostAndReserveAxis=us-gaap_OneTimeTerminationBenefitsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_OneTimeTerminationBenefitsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_ContractTerminationMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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_ContractTerminationMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_BalanceSheetLocationAxis=us-gaap_AccruedLiabilitiesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></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=cgnx_December2022Member">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( 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=cgnx_December2022Member</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><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>129
<FILENAME>R111.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627413927296">
<tr>
<th class="tl" colspan="1" rowspan="1"><div style="width: 200px;"><strong>Subsequent Events - (Details)<br></strong></div></th>
<th class="th">
<div>Feb. 15, 2024 </div>
<div>$ / shares</div>
</th>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember', window );">Subsequent Event [Member]</a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_SubsequentEventLineItems', window );"><strong>Subsequent Event [Line Items]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_DividendsPayableAmountPerShare', window );">Dividends Payable, Amount Per Share</a></td>
<td class="nump">$ 0.075<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_DividendsPayableAmountPerShare">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></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 a dividend declared, but not paid, as of the financial reporting 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 230<br> -SubTopic 10<br> -Section 50<br> -Paragraph 3<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147482913/230-10-50-3<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_DividendsPayableAmountPerShare</td>
</tr>
<tr>
<td style="padding-right: 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_SubsequentEventLineItems">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent 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 830<br> -SubTopic 30<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147481674/830-30-50-2<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 855<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section 50<br> -Paragraph 2<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147483399/855-10-50-2<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventLineItems</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_SubsequentEventTypeAxis=us-gaap_SubsequentEventMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>130
<FILENAME>R112.htm
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<html>
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="include/report.css">
<script type="text/javascript" src="Show.js">/* Do Not Remove This Comment */</script><script type="text/javascript">
							function toggleNextSibling (e) {
							if (e.nextSibling.style.display=='none') {
							e.nextSibling.style.display='block';
							} else { e.nextSibling.style.display='none'; }
							}</script>
</head>
<body>
<span style="display: none;">v3.24.0.1</span><table class="report" border="0" cellspacing="2" id="idm140627411044608">
<tr>
<th class="tl" colspan="1" rowspan="2"><div style="width: 200px;"><strong>Schedule II -Valuation and Qualifying Accounts (Detail) - USD ($)<br> $ in Thousands</strong></div></th>
<th class="th" colspan="3">12 Months Ended</th>
</tr>
<tr>
<th class="th"><div>Dec. 31, 2023</div></th>
<th class="th"><div>Dec. 31, 2022</div></th>
<th class="th"><div>Dec. 31, 2021</div></th>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">$ 730<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">583<span></span>
</td>
<td class="nump">$ 730<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_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember', window );">Reserve for Uncollectible Accounts Receivable and Sales Return [Member]</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_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">730<span></span>
</td>
<td class="nump">776<span></span>
</td>
<td class="nump">$ 831<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">191<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="num">(645)<span></span>
</td>
<td class="num">(237)<span></span>
</td>
<td class="num">(55)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</a></td>
<td class="num">(2)<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">583<span></span>
</td>
<td class="nump">730<span></span>
</td>
<td class="nump">776<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember', window );">Sales Returns and Allowances [Member]</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_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">1,518<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
<td class="nump">1,291<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">500<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts', window );">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">0<span></span>
</td>
<td class="nump">227<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</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="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">2,018<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
<td class="nump">1,518<span></span>
</td>
</tr>
<tr class="rh">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember', window );">Deferred Tax Valuation Allowance [Member]</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_MovementInValuationAllowancesAndReservesRollForward', window );"><strong>SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]</strong></a></td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
<td class="text">&#160;<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at Beginning of Period</a></td>
<td class="nump">7,661<span></span>
</td>
<td class="nump">8,188<span></span>
</td>
<td class="nump">8,568<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense', window );">Charged&#160;to Costs and Expenses</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">2,234<span></span>
</td>
<td class="nump">1,420<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts', window );">SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account</a></td>
<td class="nump">0<span></span>
</td>
<td class="nump">3,889<span></span>
</td>
<td class="nump">0<span></span>
</td>
</tr>
<tr class="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesDeductions', window );">Deductions</a></td>
<td class="num">(6,718)<span></span>
</td>
<td class="num">(6,650)<span></span>
</td>
<td class="num">(1,800)<span></span>
</td>
</tr>
<tr class="re">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesAdjustments', window );">Other</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="ro">
<td class="pl" style="border-bottom: 0px;" valign="top"><a class="a" href="javascript:void(0);" onclick="Show.showAR( this, 'defref_us-gaap_ValuationAllowancesAndReservesBalance', window );">Balance&#160;at End of Period</a></td>
<td class="nump">$ 943<span></span>
</td>
<td class="nump">$ 7,661<span></span>
</td>
<td class="nump">$ 8,188<span></span>
</td>
</tr>
</table>
<div style="display: none;">
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_MovementInValuationAllowancesAndReservesRollForward">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>No definition available.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_MovementInValuationAllowancesAndReservesRollForward</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:stringItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesAdjustments">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 valuation and qualifying accounts and reserves from adjustment.</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 4<br> -Subparagraph (SX 210.12-09)<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesAdjustments</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ValuationAllowancesAndReservesBalance">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column B))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br><br>Reference 2: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column E))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesBalance</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>instant</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(1))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>xbrli:monetaryItemType</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td>credit</td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td>duration</td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Definition</a><div><p>Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column C)(2))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ValuationAllowancesAndReservesDeductions">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></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 valuation and qualifying accounts and reserves.</p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ References</a><div style="display: none;"><p>Reference 1: http://www.xbrl.org/2003/role/disclosureRef<br> -Topic 235<br> -SubTopic 10<br> -Name Accounting Standards Codification<br> -Section S99<br> -Paragraph 4<br> -Subparagraph (SX 210.12-09(Column D))<br> -Publisher FASB<br> -URI https://asc.fasb.org//1943274/2147480678/235-10-S99-4<br></p></div>
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">+ Details</a><div style="display: none;"><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesDeductions</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td>us-gaap_</td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<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_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_UncollectibleReceivablesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_SalesReturnsAndAllowancesMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="authRefData" style="display: none;" id="defref_us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember">
<tr><td class="hide"><a style="color: white;" href="javascript:void(0);" onclick="Show.hideAR();">X</a></td></tr>
<tr><td><div class="body" style="padding: 2px;">
<a href="javascript:void(0);" onclick="Show.toggleNext( this );">- Details</a><div><table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><strong> Name:</strong></td>
<td style="white-space:nowrap;">us-gaap_ValuationAllowancesAndReservesTypeAxis=us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember</td>
</tr>
<tr>
<td style="padding-right: 4px;white-space:nowrap;"><strong> Namespace Prefix:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Data Type:</strong></td>
<td>na</td>
</tr>
<tr>
<td><strong> Balance Type:</strong></td>
<td></td>
</tr>
<tr>
<td><strong> Period Type:</strong></td>
<td></td>
</tr>
</table></div>
</div></td></tr>
</table>
</div>
</body>
</html>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>EXCEL
<SEQUENCE>132
<FILENAME>Financial_Report.xlsx
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 Financial_Report.xlsx
M4$L#!!0    ( !0T3U@'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    "  4-$]83I>)3N\    K @  $0   &1O8U!R;W!S+V-O<F4N>&ULS9+/
M:L,P#(=?9?B>*';V!TSJ2\M.&PQ6V-C-V&IK&CO&UDCZ]DNR-F5L#["CI9\_
M?0(U)DK3)7Q)7<1$#O/-X-N0I8DK=B"*$B"; WJ=RS$1QN:N2U[3^$Q[B-H<
M]1Y!5-4]>"1M-6F8@$5<B$PUUDB34%.7SGAK%GS\3.T,LP:P18^!,O"2 U/3
MQ'@:V@:N@ E&F'S^+J!=B'/U3^S< 79.#MDMJ;[OR[Z><^,.'-Z?GU[G=0L7
M,NE@</R5G:13Q!6[3'ZKUYOM(U.B$K=%)0I^M^5<UD+RAX_)]8??5=AWUNW<
M/S:^"*H&?MV%^@)02P,$%     @ %#1/6)E<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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
MN:;$HUSN )\O&1.[#?D%>??X\#]02P,$%     @ %#1/6 R P&H^ @  NP4
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
MBJKCK :2K\H>[(E+Z.C*VQBZ=%8H WB_X%R^#M0'ZKY__!-02P,$%     @
M%#1/6/!Y,O7' @  Z@8  !@   !X;"]W;W)K<VAE971S+W-H965T-2YX;6RM
M5=]OVC 0_E=.636UTFA"DK*V@TB44!5I_%!#NX=I#R:YD&B.S6P#W?[ZV4G(
M: =5'_H2^^S[/M^=<Y^[6RY^R@Q1P5-!F>Q9F5*K:]N6<88%D>=\A4SOI%P4
M1&E3+&VY$DB2$E10VW6<CEV0G%E!MUR;B:#+UXKF#&<"Y+HHB/A]@Y1O>U;;
MVBW<Y\M,F04[Z*[($B-4#ZN9T);=L"1Y@4SFG(' M&?UV]>A;_Q+A\<<MW)O
M#B:3!><_C3%*>I9C D**L3(,1 \;'""EADB'\:OFM)HC#7!_OF._+7/7N2R(
MQ &GW_)$93WKTH($4[*FZIYO[[#.Y\+PQ9S*\@O;VM>Q(%Y+Q8L:K",H<E:-
MY*FNPQZ@W3D"<&N ^Q+@'P%X-<![*\"O 66I[2J5L@XA423H"KX%8;PUFYF4
MQ2S1.OV<F6N/E-"[N<:I8#"=1-.OH[ _'X80S?4P'D[F$4QO83 =S^Z'=\-)
M-'H<PFBB[2&<SHA IC)4>4SH&;3@(0KA].0,3B!G,,_X6A*6R*ZM='3F##NN
M([FI(G&/1-)V8<PULX0A2S!Y3F#KM)K<W%UN-^ZKC"'&Y^"U/X'KN-Z!@ 9O
MA[L'X.';X>U7LO&:F_)*/N\(7Z2(0MUP"G@* U[H+L],^VT01BSF!<+W_D(J
MH3OIQZ'J5^S^87:C+M=R16+L69I8HMB@%7S\T.XX7PY5[CW)PG<B>U95OZFJ
M_QI[,"=/@&FJ5<B4=<VT=-+\#R:PU)()IY1+>09&GS8DIV1!L:6EMB4)1?V[
M;U J<R,'__;JW(OR7".^F\#W+J^Z]F:_CO\[M2ZN?.^Y5WC RW6=3N-596[O
MJ4"!8EFJJ828KYFJFJ99;02[7^K4B_4;+>25[OZCJ5Z!,1'+G$F@F&I*Y_RS
MCDE4REH9BJ]*K5EPI96KG&;Z,4)A'/1^RKG:&>: YGD+_@)02P,$%     @
M%#1/6+HBXXW!!P  G2$  !@   !X;"]W;W)K<VAE971S+W-H965T-BYX;6R]
M6FUOVS80_BN$&^P%<&J1U&N:&$B3;BNPM4'3;I\9F8F%RJ(KT4F[7[^CI$BR
M>*)=H%@0)+)]/#UW/-[SD/+YDRH_5VLI-?FZR8OJ8K;6>GNV6%3I6FY$]5)M
M90&?W*MR(S2\+!\6U;:48E4/VN0+YGGA8B.R8K8\K]^[*9?G:J?SK) W):EV
MFXTHO[V6N7JZF-'9\QL?LH>U-F\LEN=;\2!OI?ZTO2GAU:+SLLHVLJ@R59!2
MWE_,+NG9E5\/J"W^SN13-;@F)I0[I3Z;%V]7%S//()*Y3+5Q(>#?H[R2>6X\
M 8XOK=-9=T\S<'C][/VW.G@(YDY4\DKE_V0KO;Z8Q3.RDO=BE^L/ZND/V084
M&'^IRJOZ+WEJ;;T927>55IMV,"#89$7S7WQM$S$80/V) :P=P(X=P-L!O ZT
M05:'=2VT6)Z7ZHF4QAJ\F8LZ-_5HB"8KS#3>ZA(^S6"<7EZ]?W?[_L^WUY<?
MWUR3UY=_7KZ[>D-N_WCSYN,M.26?;J_)+R>_DA.2%>3C6NTJ4:RJ\X6&.YOQ
MB[2]R^OF+FSB+M<R?4DXG1/F,8X,OSI^.-L?OH!XNZ!9%S2K_?&IH'=E*0M-
M1%5)79UA\30.?-R!65MGU5:D\F(&BZ>2Y:.<+7]Z04/O%1;=#W*V%ROO8N4N
M[\LK4:T)S!I)S87\LLL>10[!H[/8N IJ5Z8!/"XAXV$0G"\>A_'89C2F//([
MLSVD?H?4=R-M9R4K'F6E-P;CG(B-*G7VKP3\JM)$W9,3RMD\2I(ZJ!/&^#SP
M U.?IK;J-TV5S*''5%M9-XG\&_C)H6&)(I4$6A])2[G*-,D5%$!5._4L#UA^
MF@#"8> LX0D;Y<<V8S2.@@3/3]#E)W#FYS)-U0Z2 I&E$F;Q+I>'XPKB)J*3
MB-LA[B<)"SBP Z8^#?U1P(@9"WP:X0&'7<"A,^!/Q5V6YS#UI7R4Q4YB $,[
MU;XWG@_$B$83LQ%UX"(GN+=0I85692;1E139&0D9B\<K"3%CS(\]'%O<88N=
MV&Y*N179BLBOP/:F$LR$*[V64"%[K0]#'EN0PMA+DA%PQ"KRDPG<28<[<>+^
MJ+3(CX"8(#>/DR0:8;3-(AJ%R<3$4Z^G3,\)\YTJ3M,CFQ4+/&A67K,&_2B<
M4S_^GYI5&\7^VO 9]T9I0NQ\6+Q3JY<.I 4]4(:@-DL- 6US4>AYC=8PT-;D
M:TX*J5'<U%X47A#[XQ)$[*(DHA,L1'MQ0)U\O'P/H(7.B@>22Q"(CCIL'>TA
M""@=+W+$C$=AS": ]LQ.W=3^NU*K)^B0*#1NWS/A0--C;+8=\UG()U8R[<F<
MNMG\;:%%\9 !2;4)G)YOA%6!5H-Q%\?LF#\YWSVM4C>O7LM["8MY!8LJ51M)
MM/B*]W1JTYSO>? [!HK910!U FG/A]1-B._K%NZH1YOH(B^.Q_!LJS#T^02X
MG@^IFQ";YNT 9W,=\V@44VN>$5),@ICZ4S79TR*-C]+]>29 660:N!L5_]1)
MK]^K_G^4M_V@>TZE;E+M9.-6?#.:$0W8IDI&@03&,X.81=2;*!W6$RIS$RI
M+'>RUROHALQFJ8@-]QSM5LLV2SCCP03$GLN8F\N>(1[J$0PAKS#QQM($,X.5
M,"%-V&!CZ^:NKI>UDKG9^=7'"- Y5G*KJ@Q?G@PA*1JP,9<A9M#;X@FMP'HN
M8VXN&Y/N8(FB:&W:2D)F%8-M%0^K>A]K3VW,36W[,O404H2U AK'%E;$+HZ@
M?4^@[>F-N>EMJ%;5=V;9)K(P3B*KF&TS#K4\A;RG.^:FNZ.)F6&[P#"V@6)V
M21).$#/KN8^YN>]#T[=KN7X0+,*#86CM#!$S&L1A. &UYT#FWAL.RT$<V]3L
MW1Z-.1\+"\2,<V^R@GL&8VX&:V3/H5I%N,G:M2)&-/$FR('W_,7=_-4TA ,
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
MV100WS\41?WRH7F1V/9==I?_!U!+ P04    "  4-$]8/T!V_?D"  #"!P
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
M%C!YXW5+=/#W%T]S5#11LS>$3#Y2/8*%AI-IVP@/YVQB6H3Q<U4P='@- 4*
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
MK5+&1?).HLZ-,+'=7YT<7GRUTB=Y[\D/D5#,)RK'MU3P#LU,*&$FH#]FLAC
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
M:B?Z7[6*E[_W"IME* $-!J"HF*/]^CZM/UA)2$<EQ:LDPZ71'=9J/BGDUBE
M22E^7_) / #DFV1G*1R:E^.FUK%-]P;1&F)^U& D!$,F#,&)9=:(,M>!30"P
M%ZU/K.:9R$M-<X&3&Z2+85-0MWB,JN5GIEK$V>9)U[QMP;<T*=)[3A:.$1%
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
M87V3RP;^^W[EO$4._*?/R*!BVJ^"ZN*MJV6J;@=(?*?LDQK<_?$/\7S\YPL
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
M965T,3<N>&ULC55=;RHW$/TKHVU5)=**_23)30$)2'OO?4@5W?3CH>J#V1W
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
M/\BQ ,Y+:\/PP0;&_VBV_P)02P,$%     @ %#1/6*+#W%1M!   & L  !D
M  !X;"]W;W)K<VAE971S+W-H965T,C$N>&ULS59-;]LX$/TKA KTE,:.DS9!
MZAA(TNYN#P&"=C\.BSW0TLABPP^5'-GQO^\;2OY(F@38'A9[L45QYLV;-S,4
MIZL0[U)#Q.K>69\NBH:Y/1^-4MF0T^DPM.2Q4X?H-&,9%Z/41M)5=G)V-!F/
MWXV<-KZ83?.[VSB;AHZM\70;5>J<TW%]13:L+HJC8O/BLUDT+"]&LVFK%_2%
M^(_V-F(UVJ)4QI%/)G@5J;XH+H_.KT[$/AO\:6B5]IZ59#(/X4X6GZJ+8BR$
MR%+)@J#QMZ1KLE: 0./;@%EL0XKC_O,&_9><.W*9ZT37P?YE*FXNBK-"553K
MSO+GL/J-AGS>"EX9;,J_:M7;3DX+57:)@QN<P< 9W__K^T&'/8>S\3,.D\%A
MDGGW@3++#YKU;!K#2D6Q!IH\Y%2S-\@9+T7YPA&[!GX\^^0K<M[4IM19I=L8
MED843],1 U^L1N6 ==5C39[!.IJHF^"Y2>HC4*N' ",0V[*;;-A=35Y$_$#E
MH3H^.E"3\>3X!;SC;;;'&>_X&;Q?.QVU9Z*D_KZ<)XYHBG^>2K2'.7D:1@;E
M/+6ZI(L"DY H+JF8O7YU]&[\_@62)UN2)R^A_\N2_"R6^GA?4LM*)V6-,TR5
MFJ_5C4Y)ETV7B!D;>G6@N"'LO,%S4J'.R^O@6NW7&,IOG8FD#"L.R@RQUJJD
MR#@/T+\QDF<5HI+C@Z*J8%YRB.D 6&!%\J1]I<BU-JRE,(]BZ 60$BNZQSF4
ML&]\ALUT8>B4! K>#V.^,MPH0@ZJC:$DJHQ?B,FJ,7@'8)#!N"@C2,M@ET""
M!AK))$RRA)>"BA<L&YV?<HFK'&F3FD;]#1M*A^JQR(#V <HNM;%Z;JGG!/P6
M'$4IO<\-P?&JIP<A&ZSG1#BOJJ]=)9 (S(WFK$H+P1"A,E4? G@@LPBA4K66
M*%B)'<YGV.7@<[*&ZAV$'G32:6,\IR0P3*#(CPMPJ'[' B>.<9U3;6 4U&BK
MM N=SW+5'7=H@E:O<5C#?[]Z9>@L*D6;5JDD5Z?O2'40+8IM(E%CTY70KO-#
M0_:A-U BC*<EG+8=D,RBEQU$RB#<(]E>L#! FT>UV84Z5)>[LA\\8)TE6U*?
M"C0Q+H-"X:B6VG8T:/0#=:F)V$8H)'V1 4)$G?'!$S%BRK[S+F%04WH8UFFT
M>YFG,C&&0L=J.YO/Y_%4_PMJTC;',I %UE57,N*M&E09DV-X!RE#!:/^:X,&
MDV'=-GH_L:K2#M_HO>E[,JJ)U9M61UZC&WB8_  R,;>7E4]QA]X!'30RK(RO
M(V: I'%4:;5QZ8=AD5RZ1(_:\O6KL\G1Z?M=:O]YGQZ(! [.!R@G]^-HK9+#
M2ON2L)^Z^=<AB=K< ],%3RR=D*N:?J*_ 84K!^' E/.XD[+)>8;3&L4>!/P_
MS<!3G\/1WFT%[;;(=[(D)?#<7URV;[?7OLO^MK,S[^^,-SHN(+BR5,-U?'CZ
MME"QOX?U"PYMOOO, Z.W\V.#JRM%,<!^'= HPT(";"_#L^]02P,$%     @
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
MH_'X9*O(O-G,.6;1NX=<8,UG_A#:/?=#-T"OA2M#\!_40L8]XY:*)AX1+_/
MUX<U.-@?*]Y5:1MDLY>XU=4[6S2N0077A!F"V5H0SL^AU/V QSYC!&$WAIL%
M#P70Z084*S*(E2 8@-6RG3\"/"*Y0L@FD W;$Z$Z]8:HW6KX&N4%D_B&*993
MO]V5^(H+R>="XBP0FR+GMD14.!T@ ]@8[&',XK T-42XIX-I"3;"'=8=R!K=
M++$M(FI8F'O<*W86??]H&QZW]-M&$DN3^>3WE.%,%C2J40!8AN$;I_"*.Y(;
MIFBIG>!A-S18P4.^0/AZMX=]?M9>M=_>O (U%ZT,^[W0UUXRP,#R&6RU Q>?
MA(4PUD%/;.&JB!HB1_#PM>$F;-JQ>#!T L3D"(1N# JP-=BNCWOO?W.2Q6_>
MT?08UV..LI]Q-(IEL56(K7%6W)ZQ0ET$"L^-%6CO8X-TCA\"YYXY=7+C D A
M+-R$8O]AV!T;I)Z<AXHMY_O--AA\;9\Q'D]@T;(@JBRJ6=(*Y?BL'MP[;]O(
M![\D10:%R6IMA;]@QGI:X+(;.Q2-8'BLUF.WA&'GZE:1688+JN^I1KEXB]O]
MNKL#7\:KWWYYO$!CS"^%LIBL"Y@F@^FDQTR\E,87I^MP$9QKAVME>"QQCR?C
M%^#[0N.0V;YX![O_&;CX%U!+ P04    "  4-$]8:T:%5DP,  #J(@  &0
M 'AL+W=O<FMS:&5E=',O<VAE970R-2YX;6RM6FMSVS86_2L8U>W:,PS-MZ2\
M9I(T?7SHQI-LVMG9V0^0"$EL*$(%23OJK]]S+T"*DBG;[>P'6Q0)X+[//0#U
M\DZ;+_5&J49\W995_6JR:9K=\^OK>KE16UG[>J<J/%EILY4-OIKU=;TS2N8\
M:5M>1T&076]E44U>O^1[-^;U2]TV95&I&R/J=KN59O]6E?KNU22<=#<^%NM-
M0S>N7[_<R;7ZI)K/NQN#;]?]*GFQ555=Z$H8M7HU>1,^?YO0>![P:Z'NZL&U
M($L66G^A+S_GKR8!*:1*M6QH!8F/6_5.E24M!#7^<&M.>I$T<7C=K?X#VPY;
M%K)6[W3Y6Y$WFU>3V43D:B7;LOFH[WY2SIZ4UEOJLN;_XLZ.3>*)6+9UH[=N
M,C38%I7]E%^='P839L&9"9&;$+'>5A!K^;ULY.N71M\)0Z.Q&EVPJ3P;RA45
M!>538_"TP+SF]:=&+[\\>PN[<O%.;Q'K6I*[7EXW6)W&7"_=2F_M2M&9E<)(
M_**K9E.+]U6N\N,%KJ%6KUO4Z?8V>G#%[]72%W'HB2B(X@?6BWM;8UXO/F?K
M1AKE;+V1>Z16(]X8(ZNUXNO_O%G4C4&>_'?,>KMV,KXVU<[S>B>7ZM4$Q5$K
M<ZLFK[_[)LR"%P]HGO2:)P^M_I>B].!*XWJ>6U[P W%3RJH6_]HH?BBK_7??
MS*)P^J(6-4]<\$1Y)TU>BV8C&U1KC:H01266P^745[I6N(FBKANA5W8%H7?T
MO/9H8F.*98/U[).V*II:7$X^?OI<3ZX\(:M<[)1A-*J6ZOR$&SO#%S]7XA>Y
MYQSRH)T2-:7!1I>Y,C6IT!P,$W*W,_H6B]F;ZTI]Q8?9:6,MH%6<5S[L+*Q
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
M-'K+EQLE075I )ZOM&ZZ+R2@_WG+Z_\!4$L#!!0    ( !0T3U@C=6*.60,
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
M/"/10Z8$P&G/,;<>8*%$5;1G0(H#1:6.E:J'G]NRS5+ A X#I<SQ??@_7(B
M-!J28MDVU*N;H)^*\\<BM&/LB S,'NAIHK,I&XO&FS5: [I1#2)]*$6R+T7O
M)?Q#JH#7". =D.OZCE)&5=[J'-K+[L1)%,[8I-#C"?>X_*V\44;]A;I%.&Q5
M!C_/>; RB@*QABL@5-ABU#+D\E<R'([\M:UTG>I=-N-6K=!D-.Y?(/\E6;$
M_Q=K]!..^%Z"J&F[_XF.1?(5Y4R;=O>V_X" D,FZI0QK^=IU47VKHRG33\.O
MR(;]@9[Y;L_U@VG$WP<,>"[?83X<;AQD93N!S^HY83^08N[J7=]%,69<IW<N
M>8.=E,DUCDJ:[J3[72B1C,@+$WB,7,$A2TW%A?*0R93Q\5_M5",\OL*=0K$%
M[E/)L@9&^LC9QNR<Z'D+;H"659FSV3.U@A[(@9%H.[W"<ADUHKC!+J+9X]"(
M%O!B&[OPQ1N=*I&5"0@LVX*S)G&"S+5MUH;; Z>B81$E]Q9C1^,SB[)YX%R:
MWEA%#;*2^*V5F4FOW-VPNM=EIE-Y-W 5$VF:K%>H+18KA J\;5VAU;P#C]81
M.>K8=":"L<.V)P[T6<&>J1&DL8OM40XUAVA6=<*2ISIK256]\#";J-=PQ=[<
MG*M)8@KI"AED*GXY&C+=:<PIMKL+8KUL5VN#SBI%<W/JZ0MNHF]E;CM]RAVT
M^Y)J"?7]'R!YT2IQA:RDJ7&<7'ZXFIPRVS<2*;*M=UWN'N#9Z:AG)/X<1CKZ
M!Z 4;3K@%[AM3#<TN1E=J+V<!E/!#U77X5JY\2L2X%:A=J[)I*/DP\:@569"
M4-.(P#K24$AOUI5('B&B?S?0<^R(>^?OTM833QG;=#8*YVN5:45%9.] F2KX
MOPT4KC/]:32K(D:LEA!0,'Z7$G9HE& 2+[/UR19&<+_+;"#8%KNO@^:^;"M!
ML^'<F..\N-O5.RBZ3#17>X.?*9B,;BS^'@9]7]J!@'3&<NJZ;KD.&"C>8PNK
M7^+8(J&I<>^'H=(AO$!UG.JG[^W/E;U#,V5OOC=/OI#U6FRD3N_#\J9L)#%]
M$@+UNO,]^F'LS-Q#P_%@X01^.#ZE&^[RG.7<S)UH\7L+'[6=NNR2%V.61N54
MU9#FAN6+-LJFJ?0U8QO.T2NJ4P@[-8+0 X7)W:'9X-"' .7]%O*QV<V12>R[
M^Y#^!=D;3JC)'?D6*0ON4-AG=.QPQD\9)6-GW53HT0@(G@@_#M%0\(QZ'CF>
MYR+1'IDV=J[BS9R%&P$3.(O(&XQ;12*KZ@[6W\H*S6GLS(.YF#O>/ "/R+2,
M+T@?E<V['0*F ?LBQE(7.?1M62 CU0Q8<OB]P9FTS23%$4L1/PP(L3&"<C:5
M2NQ@'?UL,!.!,Y_O1L<\7S:C7F3<#&T%S7/]A0A]>.\&H#;3O_?IX,/7,M^\
M?-=)C;0T=T(:UT0@NK!3P= )T56B"W)GT 2Y^:&V2P3P\2">BP"]4N2%XN=#
M4\M%0,/JV(DBEQXB! B6T _Y:@Y-!V/K#WSOA3C/"6I;WD]HZD;=Y2E?.G'D
MG=II*X\849GK41A\AK\\\^+ \3U^VK$ 5Y['A_@S-+YN=^WB<#3L_X*ZA\K
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
MW)H,3L81F,[I7>"H">[*R;%7P[+BRQ&-+^#\@LCM C^@OVYG?P!02P,$%
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
M9U0#5'D54PZ,7+GKC[DT1F;N,4$>H[(3Z/M"2K,=V 7J"['IOU!+ P04
M"  4-$]8OS'&=Z@Q  "_LP  &0   'AL+W=O<FMS:&5E=',O<VAE970S-RYX
M;6SM?6ES&T>RX%_IX#M&C  IDKHL'XJ@*-N/+SPCA6B//VSLAP*Z +35Z,;T
M00C^]2_/JJSN!D1I/+NQ&_XB$4!W55965MZ9]>VN;CZT:^^[[..FK-KO3M9=
MM_WZ\>-VL?8;UY[76U_!+\NZV;@./C:KQ^VV\2ZGES;EXZN+B^>/-ZZH3EY]
M2]^]:UY]6_==653^79.U_6;CFOUK7]:[[TXN3_2+]\5JW>$7CU]]NW4K?^>[
M7[;O&OCT.(R2%QM?M45=98U??G=R??GUZR?T CWQ]\+O6O-WADN9U_4'_'";
M?W=R@1#YTB\Z',+!?_?^QI<EC@1P_$,&/0ESXHOV;QW]!UH\+&;N6G]3E[\6
M>;?^[N2KDRSW2]>7W?MZ]U]>%O0,QUO494O_9CM^]OG%2;;HVZ[>R,L P::H
M^'_W41!A7OCJT M7\L(5P<T3$91O7.=>?=O4NZS!IV$T_(.62F\#<$6%NW+7
M-?!K >]UK^YX-[)ZF=T5JZI8%@M7==GU8E'W55=4J^Q=71:+PK?9(_WK]-O'
M'4R- SQ>R#2O>9JK ]-<7F5_K:MNW6;?5[G/TP$> \P!\"L%_/75T1'?^,5Y
M]N1REEU=7#TY,MZ3@(@G--Z3 ^--K?A_7<_;K@'"^=]3*^;QGDZ/AZ?IZW;K
M%OZ[$S@NK6_N_<FK__RWR^<7WQR!]FF ]NFQT5_]S75]XW'7WFY]XY# VRD8
M/W^4[*9>5?XC_-=L:_XN>W32K3U\L]FZ:G^2U4UVPD^=G&9%F[FL!'Z F%N5
M]=R5V;:I[XO<-SCRQBW6,&UV7]!!AI_R?M'!2U6>M779\Z3=VG59L<$7?>:7
M2\1_M=C34__H75ET_+?+<T!F"V]N"&Z$:U.W7;9HB@Y(MX3YJGX)6]8W"!"^
MDQ>PB<6<9LH6:U>6OEKY]OS(-CP+V_#L* )_:0F*[]NN  8!%%-4!-*[QF^=
M( ]^_Z&H7+4H +J[#AX#IM9-[M:_;++L9WANFSZW#,^U\3D8<E%7R.P1X[NB
M6P/?# =C"SA=%-L2YE[Y"BBF+/?XN]]V/E=P?JD*_$23MSC1]<8WL#79HU_.
M[\ZS'Z^OWYT"/_]'7\!.XG8!\\?)LZZ&3Q]@^\,"<?=^Z_,5PT8TXI9+X.<T
M$2RG;G JMT$ :2[7MEZ(JRS<O #"*60@? 5(85'6K1 ]K!27A7,G#[=*64#+
M@"*?L7S, :99&&IJ]L;?^ZJ7^?Q'D)PM?,B9%/&EO7?-.3#7#D@:GFY!=+0
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
M/8XU&HPUB5?'*P??P-;=L_BYC?6 4\C] P9*88SY^E?',^W?2Y.O][')UR2
MGSW*(,M0M-XV=!4KQ@D0II7BG6108EO!/%9*/;J^NSG-GE\\GVE%A\Y,A^$F
M>#QIO!O-,CO7"H^?R2G?^)A<08WF[FYP3+)N;!JH!17C5I5&#D#P%POQG:FW
M3M(=-NB!E0Q/S!F3"&2:]%94Q@BB$1N_++T.F?CR\<W(.V,!Q-9'KH($WI6L
M 251 ?83CZ!AI639N(U'=L-E.!PTU.2] 98TN,@>! E1[%4]"G&.X)/5M;(+
M8?B\B!7:>5L%(!DD.AQ[#-77KB^;GFB<G\N>.$S<7[!!-OE4R%F<GEM<#L].
MD\(GI0!R]CZB1F"G1U= >@W\W6+\!H3F8.$W(T0IC2;')82 6N/$IU?2Q,D5
M2!/3XW!!]99 #0#:PA-'I:".YNH&,#5M)N;P=-A D;W7'/\(&FH$ (61^H0Q
M@:@9^,T3_[TS1"&><@PT<<FIB#J._W*&!QY?"B=3$R(,V9/"QN"+()"?V)T3
MHF2SB9H;^VM"H&L)9*!+VH4HKP;'I9##!%K2HVADU7AOWQF2>#LFZK#U!S;Z
M($6URE:TRZ9L!]*S\IZ<"G=A\(FCKJQTT$(U,*:AZZ;QJ[YT#6:6^K($"Y>[
M?U+N+Y--)$*6RA3DXRT4FXR=!J"^H?)=2ZR&$[71>X):3"CX1?48;-V%]M.C
M5 M9CFGWA OW'X-2,*+/F6H8JAK3:8U#'<#O>78=4U[.0H5N&'[0:I9S7C;
M42C#G8/.(1%/9, $EB=A0X?S-%A<TH@6%)XD]B,I)*'T54!$[_(9& \^\/!T
M;QTQ<FJLFP_?E80',C%T>"ICH>27?!IL%TCB /1 <Z"];C6;!4L(J +%)%_A
M4&.I1CXC,(7@S"%AQ&(8.=ET1#7[/T1:G)0P<:.V ;"'CM6\[_!GL,J715E*
M.HIFV5#";X"5<R8E/Y%R5>@="[E)5Z2CFAQ.?([/I=)W4#F)-08UPWH'#V3I
M<T)"2#(XHG#0MA^2LX0YKF<K-L'\.'#2Y("1,3H)J[K]S5"!9457>DB=D7)H
M'GM0TTWAGZEQK/D@#(OR(#!DY) =OQFH"3\;!> =*0 )0F-.R+2VD-JO8TG0
M615,XA9C]4M(H.%\WF/*87JBKZ4W\* 4/3)>JD=PF!M,G7B%JJ2$+S@:1LOB
MPA63^:(Y8XZ+G,@(H[ECW!]K&N8:I:J2\QIK@J:1* U76290_$V](F+Z2^07
M'81E\0$S4 \A7$O'.4 T\+T1&U#6?=01%SB-+CRZ' ,"!CM='5A<77'"+*^K
MH^X($YE;+NGLB>>G@8W+8M?GC)R_>+CK!5B?H>H "TLYBJ[>=&#1]T/.T&]S
M;F/;M4GY^8'5I'%0<C0/J^Z9H,D<D0HR4CP>A-:H4 :.16D&AG*%#+!3?A=S
MCAK?]4WH\GZ>_5>]0TS-A):I!KFF_U/W(/HAJ607J5J%6AS/Q1$?EH/R,(J>
M(.50\H8;P;7Z>]YD B26[,L0  M@?5F71<U*,6X%U9P,A&(0+:P%) PXA%<&
MO0<D\!2=S A#6@!I'2G*R%03E'[(J-V ;K0_""XZ;K%BAG/]C:42 JG2G%S9
M.4S&?$QHDK@#CA084E0VJ36VM>C&#%T.WR'%.[%->*R#^XIY*A)_FE+'DFS!
MD',8RQQCG(%*/\]<B;I=6GE+L;V9\CR1,MV$%L3H"_GQ*"Z,M# H(H$I\='$
MN1"^3$_J>V/9JM_D5[5LK\6R/81-E#!W:ME^RKFC)E],9>(U/UP"!K\./C6R
M8%+U(\D(1GZ-["*PT7 ,-&]QD M)P*AI@RZ@P,.HEA(=L1Q2:50EWT\,CH9E
M26Y(<L6 4;K>M\1IMC4GD6ID Z/(6J&_(Q<7%FAJIM=,.\)8*SXU##":O@QD
MQ!@9("SDO<>V\W@<]1S.TG7:F+0&YD+;!R4[%FQD1:23N0?:3Y^S9]88 ?[*
M/07L'AU^-:3G8!X.!9A@RTJC\44^1_Z3_(RW62"?]D09-78CR3C)[K=K*?$,
M3)5OMWB(MXNB!<R5D>=U:TIM2(9'*<>Y%.X#@&#HC*L8QJ26$'= #FK\#87E
M! .C=AVF*1>:E$RQB0)SE'J-T3,P-$E;(DS+?I*=:.FH/F3%IBV?6G^0IAY(
MO+=52$^D\A2M&+<[D:3,ZB+.8J8_;R]M*0W<LD7:))L=4OK4$B=%)4$+=^1
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
M04<<;6((2%S3C1/[=BCZY.ZWV(E%CB51+G"2ZA-%?K'+P-7Q+@-X"8/L_#M
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
MT)]K#^3=X /P^[*N._V $V"S=P+OU?\ 4$L#!!0    ( !0T3U@'0P40*@,
M !@'   9    >&PO=V]R:W-H965T<R]S:&5E=#,X+GAM;)55;6_3,!#^*Z>
M$)/*\M:5KK25U@T$$A-C&_ !\<%)+HTUQPZVTS)^/><D30,J17QI[^R[YY['
M/E_F6Z4?3(%HX4<II%EXA;75S/=-6F#)S*FJ4-).KG3)++EZ[9M*(\N:I%+X
M41!,_))QZ2WGS=J-7LY5;067>*/!U&7)].,*A=HNO-#;+=SR=6'=@K^<5VR-
M=V@_53>:/+]'R7B)TG E06.^\"["V6KLXIN SQRW9F"#4Y(H]>"<=]G""QPA
M%)A:A\#H;X.7*(0#(AK?.TRO+^D2A_8._4VCG;0DS."E$E]X9HN%-_4@PYS5
MPMZJ[5OL])PYO%0)T_S"MHV=O/0@K8U599=,#$HNVW_VHSN'0<(T^$M"U"5$
M#>^V4,/RBEFVG&NU!>VB"<T9C=0FF\AQZ2[ESFK:Y91GEV\8U_"9B1KA&IFI
M-=*)6P//[UDBT)S,?4M57*R?=HBK%C'Z"V(8P;62MC#P6F:8_0[@$[V>8[3C
MN(J.(EYA>@IQ.((HB.(C>'&O.6[PXG]KON(F%<K)-O#U(C%64YM\.R2ZA1P?
MAG1/9V8JEN+"H[=A4&_06SY[$DZ"5T<(CWO"XV/HRPMCD.Z$R0S><Y9PP2TG
MPMV%9< L##2Y7H=;3&NMN5S#BAEN#BDZ6O.PHOL"(5>"7K)#MJY%NN?,?Q(A
MZ[:Y9#+E3 #;LQ8#UN6 =>Y8;_:L=<\Z<:P) E0.=/]8)JC['H#G7%(Q51L"
M-R<S^%@K2X@WFJ=4@3;O^%KRG*=,6OA M#1\DBIQ*AK.[V15NR9_CQL4$)]
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
M..8I?V_W+T9NW%UY)@W<O-UP+;*%4'8!?%]*"$K]8A4T?YY,_P%02P,$%
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
M<77]_JHG5JW=FV>A++V@W#"C)RMJ)J#]I5)V.V$![2-X]A]02P,$%     @
M%#1/6%JC2HB9!   P P  !D   !X;"]W;W)K<VAE971S+W-H965T-#<N>&UL
MK5=M;]LV$/XK![7H$D"M*>K5J6/ 2;JM0(L%2;=B&/:!ELXR44G42#I.]NMW
ME&S5Z5R[#?I%(BG><\^]D:?)6NE/9HEHX;ZN&G/N+:UMST8CDR^Q%N:5:K&A
M+PNE:V%IJLN1:36*HA.JJQ%G+!G50C;>=-*M7>OI1*UL)1N\UF!6=2WTPP56
M:GWN!=YVX4:62^L61M-)*TJ\1?M[>ZUI-AI0"EEC8Z1J0./BW)L%9Q>)V]]M
M^$/BVNR,P5DR5^J3F[PMSCWF"&&%N74(@EYW>(E5Y8"(QC\;3&]0Z01WQUOT
MGSO;R9:Y,'BIJH^RL,MS+_.@P(585?9&K7_%C3VQP\M59;HGK/N]4>I!OC)6
MU1MA8E#+IG^+^XT?=@0R]A4!OA'@'>]>4<?R2E@QG6BU!NUV$YH;=*9VTD1.
M-BXHMU;35TER=GJ#=]BL$&XP5V4C.T^=?!#S"LWI9&1)@]LWRC=H%ST:_PI:
MP.&]:NS2P)NFP.(QP(BH#?SXEM\%/XAXA?DK" ,?../A ;QPL#?L\,(C]BZT
MJN&2N&K*"_*Y7<)EYVW4\-=L;KKUO_=YH,>/]N.[&CHSK<CQW*,B,:COT)N^
M>!8D[/4!]M' /CJ$/KV21I2EQE)T@5(+V-BSC^A!J/U$/RS),ZJB2I5-"=:E
MP:9<Y;]HH/BL'@LJR=Z5LNG/!L=H_@ EJE*+=BES$'1,=#53 'VS!)YO?/R3
M@5RMR/L/SHA"U3*7I.M$NFUJ9413F-,S^!.%[E,)*!&PGE-TMLG@'MP] I@1
MHLR%@><0ALR/@MB-QLR/TY!&41C[G#-XL])TF $-_22)@8>1GT2$$Z5^&D7P
M"[&UI.!R*1L!01+Y 0%QGOI1E)(BY@=A#+^1&1IF1M(6SOTPYA#$H1_QM'N/
MQV/2F(6I'Y/0<PA\.AU]-F;]F-;9.(,?X>?MLGUHG^RX6TO[A2Z@U:I8Y=8
MS<$E@\S1N3,E'P61(Y]%F4\&NE$V]CF-9FU;D=<=GY>FQ5PN*.3; (-1U<I]
M,A P<@]S[DG]<4AO\G<6Q=_@I@,5$P\5$Q^LF)ESLFARYV\*K<9"6GBGC-E7
M,0>AGE0Q^5(T);UEG_[B$9N\9U,1&]KR90AGM2L0N!!5)T#9397R93 #%Z,T
M@;<-@0D'8]513<$X@(]:6GRI%@OC0T-W/V%KN@+NJ) <%QZFIT#7'EUJ#>!]
M;P9HRL?!I!?/,A[PUT<(<DHA]GWT8L:.T4NB^!B]$WYZA)K+Y3@+#V59,F19
M<C#+]E\D/KR38BXK:1_V9=M!R"=EF_,L=22H]<ZQX2IZJ,H"6V6DJW/7#1&Q
MIZ<=':HIG9Y7G3Y1]2'J59+-%3&0VS.?^!!D2\%3Q:-X;CN.<.PSRN+=)F0'
M;C") %O"T!LH."$Z,6?'4\&/@Z/IP"%B?IJE/\8B3LS"[/LMHKMIG%'MW:!=
MZ0;_'SHXH=.7'4__A&7?4@"=!^.]-3#:Z2J)0-GUSIM[NV\PA]6A/9_U7>GG
M[7UO_U[H4M)54.&"1-FKE$Y:W??+_<2JMNM1Y\J2M=UP2;\8J-T&^KY0RFXG
M3L'PTS+]#U!+ P04    "  4-$]84YFFG# &  !1$   &0   'AL+W=O<FMS
M:&5E=',O<VAE970T."YX;6RM6%MOVS84_BL'7M<Y@"+K+CE-#"1MNO6A:Y T
M+89A#[1T;!.11(^D[7B_?H>4+#NMHV; 7BQ>#L_M.Q?2YQLA']0"4<-C5=;J
M8K#0>GDV&JE\@153KEAB33LS(2NF:2KG([64R I[J"I'@><EHXKQ>C YMVLW
M<G(N5KKD-=Y(4*NJ8G)[A:787 S\P6[AEL\7VBR,)N=+-L<[U/?+&TFS4<>E
MX!76BHL:),XN!I?^V55FZ"W!%XX;=3 &8\E4B <S^5!<##RC$):8:\.!T6>-
M;[$L#2-2X^^6YZ 3:0X>CG?<WUO;R98I4_A6E%]YH1<7@VP !<[8JM2W8O,;
MMO;$AE\N2F5_8=/2>@/(5TJ+JCU,&E2\;K[LL?7#2PX$[8' ZMT(LEJ^8YI-
MSJ78@#34Q,T,K*GV-"G':P/*G9:TR^F<GMQID3^<7I%=!;P5%6&MF'77\#.;
MEJA.SD>:Q!CB4=ZRO&I8!L^P] /X*&J]4'!=%U@\93 B_3HE@YV25T$OQW>8
MNQ#Z#@1>$/;P"SNC0\LO?,[H!9/8&GW#MA1C&BZE9/4<[?C/RZG2D@+FKV/6
M-[RCX[Q-$IVI)<OQ8D!9HE"N<3!Y_9.?>&]Z-(\ZS:,^[I.[)G= S, B!Y^6
M%JU+$]Q<;X_IV\_Q\P)A)DI*3E[/01O0VPSE_Z "3=LF+EB]??U3%OCI&P7*
M2A;+?5J1Y#.P7E7PU28"%J<'H\OY7.*<:81/*ZTTJPLCC"EC!X&+U13E#N
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
ML@;T/9?2[!4;8/@#)'\ 4$L#!!0    ( !0T3UC?C.7]4@,  "T'   9
M>&PO=V]R:W-H965T<R]S:&5E=#4Q+GAM;(V5;6_;-A#'O\I!&X86X"*)E/60
MV0:2-.L*M&@0IQN&82]HZRP)E4B/I.-TG[Y'RG8]P//V1CH^W)^_.Q[)Z4Z;
MS[9%=/ R],K.HM:YS74<VU6+@[17>H.*1M;:#-)1TS2QW1B4=7 :^I@G21X/
MLE/1?!KZ'LQ\JK>N[Q0^&+#;89#FRRWV>C>+TNC0\=@UK?,=\7RZD0TNT'W:
M/!AJQ4>5NAM0V4XK,+B>13?I]6WFYX<)OW:XLR<V^$B66G_VC7?U+$H\$/:X
M<EY!TN\9[[#OO1!A_+77C(Y+>L=3^Z#^<XB=8EE*BW>Z_ZVK73N+R@AJ7,MM
M[Q[U[A?<QS/Q>BO=V_"%W7YN$L%J:YT>]LY$,'1J_,N7?1[^CP/?._# /2X4
M*-]()^=3HW=@_&Q2\T8(-7@37*?\IBR<H=&._-Q\@0VEV(%4-;Q%W1BY:;L5
MO%/C?OO$O7J2RQ[MZVGL:$'O%J_VXK>C./\7\93#!ZU<:^%>U5C_4R FTB,N
M/^#>\HN*;W!U!2)EP!,N+NB)8_@BZ(G_"/\1-]JX3C7PQ\W2.D/%\N>Y>$>U
M[+R:/T#7=B-7.(OHA%@TSQC-?_@NS9.?+K!F1];LDOI\00>RWO8(>DV\SZBV
M"&NC![A_<6B4[.$NU L:&[;SO5;-C^^IYFNXL1:=9;#\<K+)Y'!#Y]B>B_,B
MR?DXGUK"T3V=<I]&YVMF?]2[O]%"=U)1<DG7 S3?RDUZ#GC5*7"MWEJBMZ^O
MX9/J',$OG'0D<+\U=!7!6YI*X<)=VRD)'UU+]I-V%,SO*,U8:$!E@L.21@ZE
M<DS8]\#+D@F>>8LG+,\G9*5YQM+T8&69(*L4!9MDQ9C&/J11AC1"SEF5Y9 6
M+$DFX<=+2">LFI1>(:5A45S"X2<X(A.L%'YI+C*6AZ4Y+PBB\%:2L'1$I,5R
MEE3).:"<51XA8P4G("9$!H*)(O%AY$Q,+M*DIS258'GE_7A6L"++#@R!,*TF
M;,*KD8;2DU3E.1K!TBRE3+*JY%#E";$4B?<O"; LX=Q9B$^N,*K@)ES4%E9Z
MJ]QXFQU[CV_!S7@%?IL^/B0?I&DZ9:''-;DF5\4D C->SF/#Z4VX$)?:T7$)
M9DOO&1H_@<;76KM#PR]P?"'G7P%02P,$%     @ %#1/6./$PWYC P  _ 8
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
MFDJ=^;;=H<0]MP9^@/AN,.Z3F])GYH54ZGR'4<]+#0<CZ(CTH(WTH#/23_0
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
M_?"W)5A9*-?!OL^E-&\-=P#5G!].?P)02P,$%     @ %#1/6+(E\99W @
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
MS'16SC>1"S)CN6 +EE)AR%6:RK4P3.3D07*6,M"D0VYD@8MK:6=] ^16I+(
M\B8!0QG7;]'@TRPA;WY^._8-AF8'\-,JC.LRC.A &&%$[J4P2TU^$QED^P(^
MYE0G%CTG=AT=54P@O2#=\!V)@JC;$M#-Z>Y1BWMRNGMX))MN/4U=I]<]H(?S
ML2[6G!K(R!]F">K 7-Q)C1/Q^0[=R:V!0O_=-A?E6+WVL6REN=0KFL+$PQ$T
MJ UXTU]^"OO!KVT<SRF6G$ELCW&O9MP[IK['6#K&Z1YCCFRQ"QO::+MAL.IB
M61&X394"D3X1HZC0*. *6O8/[EZLD$:_(P(+.#H8^M@V'658L0O+UNG-M-N/
MXP#_QOYF%W73L#<,6@R3HXF^$F-<8XR/8OR N:X%?H,X^P])6FI8/"R1#98)
M.N?007 =33D0)C9P(J1RT/Y.[H,XC)N,FG;A:#3H-QD=S>*5C/HUH_Y11G<U
ME'KMZ"U=O4#(\8OMWG,I\HX!52 K_+$KDHHG[,:5UH:IWTP_&H1-3"?:)4?S
M>"6E04UI\-V55*^CDHB"E%.M\3.%74A$5@ 1V@J4VWFM6 :-=#OA*.XUN;09
M#J,FET%C*T;=O46VE_&PSGAX<@EJ*_-VW9#/]U#,0;56]J/R_[>RGU,L.9/8
M'M91C77T [^>HW,R/J=8<B:Q/<9A\'*2#'[4=JU&BK^_7ULMVS9LBV'KCO5W
MSM(%J-S=2>QW'X_#Y>FS[JWO/5?NM/]-_[6]#[DS^HM,>9FZIRJW=#@L4#*X
M&&!0JKR?E TC5^[$/I<&S__N<8EW.E#6 -\OI#3/#3M ?4N<?@502P,$%
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
MDHX#0;?YRY@%%8(F^>6&X"5AF8'\?46I>!UD[W?*]WFS_P!02P,$%     @
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
M^+@1\5H4M8#\_T.>5]\NZN^4.'V'R/+_4$L#!!0    ( !0T3U@LCKGAY 8
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
M[Z ##T/KQ57MPH\QT;>#.GNFER\&D>"J=.%'G/O;L9W=TZL7DWL'#^@]Y_D
M^V)G_GJ)8KZM5)'"1WB(P([A[(BOMXO:'30]>/JY>?3\)BX?DKQ"J;B7J[S7
M@5Q>[I[FWEW4Q6K[0/1=4==%MGVY%/%"E(V!_/R^*.I?%\TSUOMGZF?_ 5!+
M P04    "  4-$]8I@/UN-@"  !7"   &0   'AL+W=O<FMS:&5E=',O<VAE
M970V-2YX;6RM5EU/VS 4_2M6AJ8B4?+9C+$V$FV (8T)P=@>ICVXR6T3X<3%
M=ENV7[]K)\W:$"HF\9+$]CG']]SK^G:XYN)!9@"*/!6LE",K4VIQ:MLRR:"@
M\I@OH,25&1<%53@4<ULN!-#4D IF>XX3V@7-2RL:FKD;$0WY4K&\A!M!Y+(H
MJ/@]!L;7(\NU-A.W^3Q3>L*.A@LZASM0]XL;@2.[44GS DJ9\Y((F(VL,_<T
M#C7> +[GL)9;WT0[F7+^H =7Z<AR=$# (%%:@>)K!1-@3 MA&(^UIM5LJ8G;
MWQOU"^,=O4RIA EG/_)492/KQ"(IS.B2J5N^_@RUGX'62SB3YDG6-=:Q2+*4
MBA<U&2,H\K)ZTZ<Z#UL$-WR!X-4$KTT(7B#X-<%_+2&H"8')3&7%Y"&FBD9#
MP==$:#2JZ0^33,-&^WFIRWZG!*[FR%/1A,KLB.@G.7]<YBO*H%3RB- R)5?E
M"J0J] 3IDUN@+/\#*;G$PT1Z7[B4AP0KMXWJQ:!HSG"A3^[O8M([."0'!.'?
M,KZ4J"F'ML*H]=YV4D<XKB+T7HC0]<@U+U4FR7F90KHK8*/=QK.W\3SV]BK&
MD!P3WSTBGN/Y'0%-7D_W.NCQZ^GN'C=^4T'?Z/E[*FC*U2XB^7DVE4K@+^M7
M5]8KU:!;5=\VIW)!$QA9>)U($"NPHO?OW-#YU)6QMQ2+WTAL)YM!D\U@GWIT
M*?!<XWU6G_4YGO7.,UNI#(R*OEI7D>MB-5?;2>G ^/XN)GZ.\8*PP>Q8&#06
M!O]C@>$(.CU4,N'6WGW/"0<M%QTHWVV!X@Z0ZW3;"!L;X5X;7['G[=:!]"HO
MAUUFPF>)[+L?!T'+3!?JQ&N9>0[R_'9-[*TKMP Q-ZU+DH0O2U7=1,ULTQW/
M3%-HS8^Q:U9-[I],U7*OJ9AKUPQF*.D<?\"(1-7&JH'B"W.Q3[G"-F$^,^S\
M(#0 UV><J\U ;]#\EXC^ E!+ P04    "  4-$]8J@;MPPT&   Z*0  &0
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
MGX3#B:!9L1G_1(6@27&X)3@D3!7(]]>4BI<3M;]?_9\S_Q=02P,$%     @
M%#1/6,/3!&%T!   XQ@  !D   !X;"]W;W)K<VAE971S+W-H965T-CDN>&UL
MO9EM;]LV$,>_"J$50PLDD2C;LIS9!I(H10,TJ)&LVXMA+QB)MHE*HDI2<=I/
M/U*294MFN-1E^B;6P]V?=S^)IR,SW5#VA:\Q%N I2W,^<]9"%.>NR^,USA _
MHP7.Y9TE91D2\I2M7%XPC)+**4M=W_,"-T,D=^;3ZMJ"S:>T%"G)\8(!7F89
M8M\N<4HW,P<ZVPMW9+46ZH([GQ9HA>^Q^%PLF#QS6Y6$9#CGA.: X>7,N8#G
M$9PHA\KB+X(W?.\8J%0>*/VB3FZ2F>.IB'"*8Z$DD/QYQ%<X3962C.-K(^JT
M8RK'_>.M^OLJ>9G, ^+XBJ9_DT2L9T[H@ 0O49F*.[KY@)N$1DHOIBFO_H)-
M8^LY("ZYH%GC+"/(2%[_HJ<&Q)X##)YQ\!L'O^\P?,9AT#@,7NHP;!R&%9DZ
ME8I#A 2:3QG= *:LI9HZJ&!6WC)]DJOG?B^8O$NDGY@OF'R%F/AV A8IR@5
M>0*NOY:DD,]6@%-PD21$/2"4@IN\?LW4XWH;88%(RM])D\_W$7C[YAUX T@.
M_ES3DDL1/G6%#$\-XL9-*)=U*/XSH4 ?W-)<K#FXSA.<= 5<F5>;G+]-[M(W
M*D8X/@,#> )\SQ]H KIZN;NO<8_,[I]B<09@J!N]D\V@?52#2F]PU*/ZY^*!
M"R:GT;\Z\K7R4*^L:LLY+U",9XXL'ARS1^S,?_\-!MX?.FHVQ2)+8AVBPY;H
MT*0^CP@O*$<I5V^N9$MHHH-7BXPJ$55''^6K.O3AU'W<IZ*Q&@]&8=<J,@9T
M9+JC-MV1,=T[G)1UM:5+67#C,BM3)' BZZ0<+2;UU$Y*# 0%R9:-CD@]3M A
M L-ACXC&*@B\GE5DC/E((D%+)# 2^4@Y!RKG*EFR95.T,ZUH9QK>SC0=C^ @
M4]^?]&@<VHQ'?1;&:(]D,6Y9C'^FO'R4YN!&X(QK"\S89H&Q*199$NLP#5NF
MH8T"$VJFTV&!T5AI"HPQH"/3G;3I3GY1@9F\J,!HK#0%QACSD42@M^NOO%]2
M8IIA]I,]/2PR.JO#,F,.^5@D>RTG-"*1E2;&..%@R6@&[E&*%9%>_3GI%B M
M$GCPR0W[/(R1_&@IL:76Y>;ON/E&;K>4$8&?P!5E!6759-)B,:K\:"VVJA;9
M4NL2W'70\*=:Z/_YQD&K7;15M<B66A?LKI&&YDYZ82IG\E,@#UE_2== M=01
M-U!MJD50T]-/PG'0%IDNK5T?#LV->(0RM,)U^7LOP9R ZZ<BI=5>"F7@DUAC
M!CZ@[XCID5EJF1MD-M4B6VI=LKM^'@:OMD:&EKKO!JM-M<B66A?K;FD C5VR
MO2;&ZC*A4>LLJ0:C?J_S&OT_W"T 8/B:7QQ+W7S#RZ9:9$NM"W:WU(#FM8:U
M5]+2\J!!/#GX8IQJWDFK2Q)W;_<WPVQ5[:)S$-,R%_5>:7NUW:F_J/:G>]<O
MX?E5O=^^DZFW_V\16Y&<@Q0OI:1W-I8)LGI'O3X1M*CVF!^H$#2K#M<8)9@I
M WE_2:G8GJ@!VO]KS/\#4$L#!!0    ( !0T3UA-6DW05 @  'Q+   9
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
M"]*5(G.E8FL'M]AQ[@9.\ 9G!L4U"OT/*/""$#TM9NCRXNI?&U=%'_,'8_[
M^(:G\_^Z70K)U1;_MD4;+"9V"WWL;T1/"I@ZZEP+X!MP\O?O_,C[=")@. 8,
M3[GGJMZ)+=.@PD:E_SF;W \C/\C<C04V&6&3<S!L@PVJZ!#F)V%DA^$1AL_!
M(AL,'\'2>/(&*QI9T3E6;&-%1ZPDP;Z=%8^L^!PKL;'B8U:88CLK&5G)2=9C
M#:J55A*XC9@<$7$8X-B.3$=D>AK))*$V6GI\(CT<I?_CW(-FH_OV=\)732<0
MA4H)O>M8.?"A%PX3R7K3?Y9,JFYFAK7Z? #7"]3SBC&YG^B6-GZ0\K]02P,$
M%     @ %#1/6&\9&Y]= P  M P  !D   !X;"]W;W)K<VAE971S+W-H965T
M-S(N>&ULM5?);MLP$/V5@5H4#=!&J[?4-A KW0Y!@[C+H>B!EL8648ET2=I.
M_KXDI2BVHZ@)H%XD+C./[XV&Y&B\X^*WS! 5W!0YDQ,G4VI]YKHRR; @\I2O
MD>F9)1<%4;HK5JY<"R2I=2IR-_"\OEL0RISIV(Y=B>F8;U1.&5X)D)NB(.)V
MACG?31S?N1NXIJM,F0%W.EZ3%<Y1?5M?"=US:Y24%L@DY0P$+B?.N7\6^X%Q
ML!;?*>[D7AN,E 7GOTWG<SIQ/,,(<TR4@2#ZM<48\]P@:1Y_*E"G7M,X[K?O
MT#]8\5K,@DB,>?Z#IBJ;.$,'4ER23:ZN^>X35H)Z!B_AN;1/V%6VG@/)1BI>
M5,Z:04%9^28W52#V'/S^(PY!Y1 <.T2/.(250VB%ELRLK NBR'0L^ Z$L=9H
MIF%C8[VU&LK,9YPKH6>I]E/3CYRG.YKG\!;BC+ 52J ,5(80$R%N*5O!=Y)O
M$/@2:MO7%Z@(S4^TT[?Y!;Q^>0(OC=O7C&\D8:D<NTIS,RNX2<5C5O(('N'A
M!W#)F<HDO&<IIH< KA95*PONE,V"5L0+3$XA]-] X 5A Z'XZ>Y!"YVP#G1H
M\<)_!?KG-==/G8,[(M)?39$J@:)F(+.OS^2:)#AQ],:5*+;H3%^]\/O>NR:5
M'8$=:(YJS5$;>JWY#<QP11DSV30C.6$)-NDNP7H6S!P_VVD0!?W0&[O;?45-
M9O[ #VNS ZZ]FFNOE:O^('K+,\";Q.X#$$0AE.W&?"[A^GLT>CTO.N+ZT.BM
M'T5!,]5^3;7_Q+#JO?*/F/8?$ A'H3_TCW@^-#L*_0'104UTT$IT?A[#G JZ
MD7">;@W%%.+;!0J&BB82/A:+3TVD6U&?NP$Z CL(P+ .P+"K33_L4G-'8 >:
M1[7FT1.S\XN^1@1\9HFN+R2:6Z-LG33I;P5]KO[1PR,B[(V:D]GW[J]*KU79
M)1=4X0W$7*RY/AYT&=)XT;6B/%=*5VB'FO?* [^K#*Z0NM+=$=JA[N!>=_ _
MLKA"W<\\/]+7PN#HO&U?_;GJW+WZKT"QLF6QA(1OF"H+IGJT+KW/;<%Y-#XS
M);FM*^]ARGK^D@A]@TO(<:DAO=.!EBC*$KGL*+ZV5>:"*UVSVF:F?RM0& ,]
MO^1<W77, O6/RO0O4$L#!!0    ( !0T3UCRXV %D 0  *8;   9    >&PO
M=V]R:W-H965T<R]S:&5E=#<S+GAM;+5976_;-A3]*X16#"VP1")I?3BS#:0.
MV@5HBR!)VX=A#XS,V$(DT2/IN-VO'R4K^J39V*!?$LFZ]_#<:Y+GF)IL&7\2
M*THE^)&EN9@Z*RG7%ZXKXA7-B#AG:YJK)X^,9T2J6[YTQ9I3LBB3LM1%GA>X
M&4ER9S8I/[OALPG;R#3)Z0T'8I-EA/]\3U.VG3K0>?G@-EFN9/&!.YNLR9+>
M4?EU?</5G5NC+)*,YB)A.>#T<>I<PHLY]HJ$,N);0K>B=0V*4AX8>RINKA=3
MQRL8T93&LH @ZM\SG=,T+9 4CW\K4*<>LTAL7[^@?RB+5\4\$$'G+/V>+.1J
MZD0.6-!'LDGE+=O^1:N"_ (O9JDH_X)M%>LY(-X(R;(J63'(DGSWG_RH&M%*
M@*,]":A*0*]-P%4"+@O=,2O+NB*2S":<;0$OHA5:<5'VILQ6U21Y\37>2:Z>
M)BI/SJYS2?)E\I!2<"D$E0*<@<N,<9G\1Q=@^/3M%94D2=^IL*]W5^#MFW?@
M#4AR<+]B&T'RA9BX4M$JP-VXHO!^1P'MH7!%XW. X1\ >0AKTN>O3T?==%<U
MH^X(JCN"2CR\!^]#DB>2GGU2LTO7@+\_J7AP+6DF_M'5N@,?Z<&+17DAUB2F
M4T>M.D'Y,W5FO_\& ^]/7>66P#I]P'4?L E]]I$S(<"<</XSR9?@&TDW5%?P
M#L4O48I-XWD&\1AC.'&?VZ4,P_ (COTZJL-Q5',<&3E>QO$FVZ1$JJ^JFK6D
MV!UT/'=(08O &0IP..[QU(7!,()ZHGY-U#<2_:(VY%^WTA^,#2$:^ZA'41.&
M1G"D9QC4# ,CPSG+UBDM&GE/XU7.4K9,J)KNGVGV0+EVJAL!#YWJEL ZM8=U
M[>$IEWQHLP^6P#I]B.H^1%:6?#28@ &"Q=[=F:;#*!1Y,-1/TW%-<6QMQ8\U
M2]D+1WZ/IR8,AN%HSWJ"7J.LGH4U7X&TAQ]!'$8]DIHPZ*$0[R'9DG]H7O:E
MQ: <W-*T;*18)6OSLC<C'CK?;:%UZV_$'IY4[:%5N;>%UNU%(_C0CN)7,.VY
M&/KCH+^N-&%^A*,],[:1?&A/\Z%&S7T\$%1=&(X";P_51O2A#=6'0ST/O0#V
MMU--&!R'^]K9R#XTZ_X7EI_%2ON5] .RY)2JWVA2[^*MZKTMM&[9C>+#DTH^
MM*KYMM"ZO6A4']J1?3A4=#SR^M/4.-:QM33V -KS!U!G$/!@<S .>&1!J'$1
MR(:+0#I[T/<0YI&.K:2Q&LAL->XY6=",\"?M[F)./OB'\RE<!6H=(9SV#,'N
M(<(I7 5J7 6RXRK0T"Z,O;X(FL<ZMI;&>R![W@/IO$=_MS2/=VP]C4%!-@Q*
M!=(^NXG\P3=C'.G82AH;@UYO8RYK&V/\'6-&/'B5G<+/H,;/H)/Z&635S]A"
MZ_:B\3/(CI\QPQQ<M-D==6MI_ RRYV?,4 ?7HS\7T1>$&S^#;?@9,\BAI51H
MG3/JH']TXK9>HA1OL#X3ODQR 5+ZJ+*\\U"E\]U+H=V-9.ORO<H#DY)EY>6*
M*HO#BP#U_)$Q^7)3O*JI7\W-_@=02P,$%     @ %#1/6&%-OT.'!   Y"
M !D   !X;"]W;W)K<VAE971S+W-H965T-S0N>&ULM9IK;]LV%(;_"J$50PNT
MT<VW9+:!Q%*Q $T7).WV8=@'QCZVB4JB1])Q NS'CZ(4R4ID-@J.O\2ZG8?D
M>64>OF;&.RY^R#6 (@]IDLF)LU9J<^:Z<KZ&E,H3OH%,WUERD5*E3\7*E1L!
M=&&"TL0-/&_@II1ESG1LKEV+Z9AO5<(RN!9$;M.4BL<+2/ANXOC.TX4;MEJK
M_((['6_H"FY!?=]<"WWF5I0%2R&3C&=$P'+BG/MG<>#E >:)/QGLY-XQR8=R
MQ_F/_.1R,7&\O$>0P%SE"*H_[F$&29*3=#_^+:%.U68>N'_\1/]L!J\'<T<E
MS'CR%UNH]<09.60!2[I-U W?_0[E@/HY;\X3:?Z27?'LH.^0^58JGI;!N@<I
MRXI/^E F8B_ [QT(",J X'G H1;",B!\;0N],J#W/" \$- O \S0W6+L)G$1
M570Z%GQ'1/ZTIN4')OLF6N>+9?F+<JN$OLMTG)I>9HIF*W:7 #F7$I0DG\A7
M*@3-]2/O(U"4)?*#OOK]-B+OWWT@[PC+R+<UWTJ:+>385;H7.<N=ERW.BA:#
M RV&Y(IG:BU)G"U@T8QW=>^K(01/0[@(K, (YB?$&WXD@1<$;?UY17CHF_"P
M)3RRA_\Q5R?$'QT,C^WA5_21! ,3[5ER$59RA@87'L!]9AE3\.F+%F]!7FK[
M]Q?]/+E4D,I_6OIZ4<![[?!\SCJ3&SJ'B:,G)0GB'ISIK[_X ^^WMK1CPB),
M6(P$:RC4JQ3JV>A/"B5&(58K1(U";:(4O+[AY?/^_30<>?IEN=]/MK71KLG&
MA,5(L$:R^U6R^]9D7S[/[T>RE;#<)B1A2VA+MITW)(] 1>ND9PWL*@ F+$:"
M-0085 (,K F+F%2"W6W-HN K*+, (KIPD)FI;2#(#20TORW7;-/Z_EM;Z#HI
M8<(B3%B,!&O(-*QD&AZS; PQ%<*$19BP& G64&A4*33J-I.UZ6!%=-4!$Q9A
MPN+1BX+8"X-171$;"3ZM$GQJ37 U'XG]^8C\IU>K0G\W'LB,BPT7YE9;[JWT
MKKG'A$68L!@)UI#(]VJSXAUSGBKI2"*ATB)46HQ%:^JT9RI]Y$6N'=A9&DQ:
M5-+V)YS!X/3Y$CS&:K29\Z#.>8"\UK4#.^?<WCV_?W#M'*%V),:B-76H';AO
MM8_3&4\W"2C]XBN8KS.>\!6##H7$CN^L"JH+1Z7%6+2F4+41]WM'+2:8+GF&
M2HM0:3$6K:E3[>%]N^E^0S'!],\S5%I4T@;[/^<$X<MB<@S7[M>VW;?[]C<4
M$U2;_I/NG5IJ":HIQZ(U9:AMN6_UE--O@BX@I?EO)J^O'ZAN')46H=)B+%I3
MG-J1^Z.CU@]4MXY*BU!I,1:MJ5-M['V[LW]#_4 U\ZBTJ*3MFY%1_T7U.(9-
M#VJ;'ECMY1NJAQW8->,_Z5YXN'J@]B/&HA4RN'N[O"F(E=E>EV3.MYDJ-GRK
MJ]46_KG9N';KQXO]_RLJ5BR3)(&E#O5.AOIU$L66>G&B^,;L&=]QI7AJ#M>@
M:Y'(']#WEYRKIY.\@>H?&Z;_ U!+ P04    "  4-$]8O<[+:.<"  "L"0
M&0   'AL+W=O<FMS:&5E=',O<VAE970W-2YX;6RMEEU/VS 4AO^*E:$)I(U\
M-FE8&ZFTP+C8A"@P3=,NW.2TL7#BSG9:V*^?G82HM"%%U6X:?YSW]7-.G=B#
M->./(@60Z"FCN1@:J93+,],4<0H9%J=L";F:F3.>8:FZ?&&*)0><E**,FHYE
M^6:&26Y$@W+LAD<#5DA*<KCA2!19AOGS.5"V'AJV\3)P2Q:IU -F-%CB!4Q!
MWB]ON.J9C4M",L@%83GB,!\:(_ML'.KX,N"!P%ILM)'.9,;8H^Y<)T/#TD!
M(9;: :O'"L9 J392&']J3Z-94@LWVR_NEV7N*I<9%C!F] =)9#HT^@9*8(X+
M*F_9^BO4^?2T7\RH*'_1NHZU#!070K*L%BN"C.35$S_5==@0V-X; J<6..\5
MN+7 +1.MR,JT)ECB:,#9&G$=K=QTHZQ-J5;9D%S_BU/)U2Q1.AE=YQ+G"S*C
M@$9"@!3H,[H0DJ@"08)&&>.2_,5EQ2^>U-81@*9%' ,D)%^@2R)B3-%/P%R@
MXPE(3.B)<KB?3M#QT0DZ0B1'=RDK!,X3,3"E(M;KFG%-=U[1.6_032 ^1:[]
M"3F6X[;(Q^^7.Z_EIJI34RRG*993^KEO^%TQEJP)I4AE@W8K-U'5H$P4'-"O
MT4Q(KO;H[[:DJU6\]E7T>WLFECB&H:%>3 %\!4;T\8/M6U_:2O"?S%X5Q&T*
MXG:Y1ZJN7EN"E:I7JO1W9!79MML/!^9JD[S3^T!RKR'W]I'WVL@KE?^*W/+]
M+?).[P/)>PUY;Q^YWT;>VR6W MO>(N_T/I#<;\C]?>1!&[F_0QX&;K %WFE]
M('C0@ ?[P/MMX,$NN&7UM\ [K0\$[S?@_4[PNQ34T3Z7P-OP^SOXOFUYVSNF
M<X4#^<.&/^SD_ZZN,6/,^;,^;!XP+: MC[#E:^.$/6<KD98PQ[.])JHB-#?.
M4GV/^8;Y@N0"49@KG74:* ->W0VJCF3+\GB=,:D.Z[*9JNL4<!V@YN>,R9>.
M/K&;"UKT#U!+ P04    "  4-$]8'[5,4I #  !9"P  &0   'AL+W=O<FMS
M:&5E=',O<VAE970W-BYX;6RM5EV/TSH0_2M6N$(@[6T2)VW2O6VEW2X()! K
M*N#93::M16(7V]WN_GO&3C:;)1^ =%]:VYDY<\[8'L_B+-5W?0 PY+XLA%YZ
M!V..E[ZOLP.43$_D$01^V4E5,H-3M??U40'+G5-9^#0(9G[)N/!6"[=VJU8+
M>3(%%W"KB#Z5)5,/UU#(\](+O<>%SWQ_,';!7RV.; \;,%^.MPIG?H.2\Q*$
MYE(0!;NE=Q5>KD-J'9S%5PYGW1H3*V4KY7<[>9\OO< R@@(R8R$8_MW!&HK"
M(B&/'S6HU\2TCNWQ(_I;)Q[%;)F&M2R^\=P<EE[JD1QV[%28S_+\#FI!4XN7
MR4*[7W*N;!.,F)VTD67MC/.2B^J?W=>):#F$LP$'6CO07QWB 8>H=HB<T(J9
MDW7##%LME#P39:T1S0Y<;IPWJN'";N/&*/S*T<^LKK),G2 G;^[Q8&C0Y%^R
MED(;;DX@C"9R1SHFKV[ ,%Z\1MLOFQORZI_7"]\@%XOH9W7<ZRHN'8@;4O)1
M"G/0Y(W((7\.X*.(1@E]5')-1Q%O()N0*+P@-*!1#Z'UG[O3$3I1D]C(X44#
M>+]FD=59A#J+?2FK$.-^1'NA+_619;#T\,9J4'?@K5Z^"&?!?WUR_R>P9^+C
M1GP\AH[)W(%2J/;('DJ7 04%,[A@)-F<6,&V>,PF%^2#R2>8FA\GKKF]UGU9
MJ4)-72A;E>Y6P<*_:TOM6H1SFF(E>S)\)F/:R)B.RG@O,B2/989DLK3;QH8X
M5CBS-H-@%D_;#"JJ/8;I=!H/4ITU5&>C5#>84\7Q<C+ALJYD41##[OL/VJS#
M(DV2N,NVQRZDX2#9I"&;C)+% HSEU3X#ABNP!X3(;<'W+KV]A)-NVF@:]>2W
M:YB$\V'&:<,X'67\E66#>Y]V0DY3FG2I]=G%R2"U>4-M/DKM&U.*"?/PNQ3.
M.^%C&O?L>8]=E$P':8;!TTL3C!+]9 Z@>E^*H!,R"H)XWN768TGGZ6R$7>L=
M#$?97?U!?:XAGITN&O5=G-JR79+F$8U&B-(GHG24Z&U54@FV</:I-ESL[=2^
M-SP'Y0X ^<#9EA?</%R03T>W*/;XD&,MPS([((YV*-,XL-HZXD8)_NW3XK>:
MEQ+4WO5T&BON29BJCVE6F[[QRG5+_I-YU71^9&K/A28%[- UF"0H1E5]7#4Q
M\NA:H:TTV%BYX0%[7U#6 +_OI#2/$QN@Z:97/P%02P,$%     @ %#1/6(B<
MU#)2 P  5PH  !D   !X;"]W;W)K<VAE971S+W-H965T-S<N>&ULK59=;YLP
M%/TK%JNF3EH+,81D78+4A%;;0[6JW<?#M <7;H(U8V>V2=I_/]L0F@^2=5)?
M$AO..;[GFFO?T4K(WZH T.BQ9%R-O4+KQ87OJZR DJASL0!NWLR$+(DV4SGW
MU4("R1VI9#X.@M@O">5>,G+/;F4R$I5FE,.M1*HJ2R*?)L#$:NSUO/6#.SHO
MM'W@)Z,%F<,]Z&^+6VEF?JN2TQ*XHH(C";.Q=]F[2(<6[P#?*:S4QAA9)P]"
M_+:3S_G8"VQ P"#35H&8OR5,@3$K9,+XTVAZ[9*6N#E>JU\[[\;+ U$P%>P'
MS74Q]H8>RF%&*J;OQ.H3-'[Z5B\33+E?M&JP@8>R2FE1-F0304EY_4\>FSQL
M$'KQ 0)N"'B7$!T@A TA?"DA:@B1RTQMQ>4A)9HD(RE62%JT4;,#ETS'-O8I
MM]M^KZ5Y2PU/)Y=9)BO(T=6C^9 4*'2&I@7A<S.B'/T@4A*NG]"7!T;GQ.Z4
M0J<I:$+9.P/]=I^BTY-WZ,2"OQ:B4H3G:N1K$YG5][,FBDD=!3X010^C&\%U
MH= 5SR'?%O"-I=877ON:X*.**63G*.R]1SC 84= TY?3<0<]?3F]=\1-V.Y2
MZ/3" WHW8@FFUK1-\[TV.28R1[=2Y%6FGS?)[25AZ.>=8 R9LE@9V*^NW:A7
MB[I7LR?-A5J0#,:>.4H4R"5XR=LWO3CXV)7)UQ1+7TEL*\M1F^7HF'HR@3GE
MG/(YFA!&> 9=J:LE^D["GJG+) H'_9&_W$S)/J@?X<$V*.T"!7$+VK+0;RWT
MCUHPW\22*E>FYDI J_K3H+::E;)UGE?2&M0%H 5(*O(NC_4:\49D^$,4['C<
M!_6&@WC'XSXHQ/T#'N/68WS4XW7%9I0Q5P]BMO;XA,3S&=5E*MX+Y2P,!L,=
M5QTH_ 'OH-(N+1SVNWT-6E^#X[Z$-+<41_"8N1,82:(!U>-.1X.]*'8^L>G1
M!?^W-%]);"LWPS8WPZ.Y,=?"/^IRN%^7.(IV\M$!VBO>=!^T5;QU_/[&E5N"
MG+O61:%,5%S7MU3[M.V.+EU3L/-\8KJFNLEYEJE;KALBS7FD$(.9D0S.!R8D
M6;<Q]42+A;O8'X0V;8(;%J;S VD!YOU,"+V>V 7:7C+Y"U!+ P04    "  4
M-$]8WISMH8,"  !%!P  &0   'AL+W=O<FMS:&5E=',O<VAE970W."YX;6RM
ME5U/VS 4AO^*E4T32 SGJV5C:21H-.!B6@5BNYAVX2:GC85C9[;;PK_?<9)&
M10VHF[A)[.2\[_%YG!PG&Z4?3 E@R6,EI)EXI;7U.:4F+Z%BYE35(/'-0NF*
M69SJ)36U!E8THDK0T/?'M&)<>FG2/)OI-%$K*[B$F29F555,/UV"4)N)%WC;
M![=\65KW@*9)S99P!_:^GFF<T=ZEX!5(PY4D&A83[R(XSV(7WP3\X+ Q.V/B
M*IDK]> F-\7$\]V"0$!NG0/#VQJF((0SPF7\Z3R]/J43[HZW[E^;VK&6.3,P
M5>(G+VPY\3YYI( %6PE[JS;7T-4S<GZY$J:YDDT;>Q9[)%\9JZI.C"NHN&SO
M[+'CL",(7A*$G2 \5!!U@NA00=P)&M2T+:7AD#'+TD2K#=$N&MW<H('9J+%\
M+MVVWUF-;SGJ;#I55<4M[J,UA,F"3)6T7"Y!YAP,^4@NBH*[#6*"W,CV*W/;
M=92!95P<8\3]74:.WA\GU.)RG"G-N]27;>KPA=09Y*<D"DY(Z(?1@'QZN#P<
MD&>'RX/G<HH,>Y!A#S)L_*+_ IEQDPME5AK(KXNYL1J_]]]#R-HD\7 2UP/.
M3<URF'CXDQO0:_#2#^^"L?]E".!;FF5O9/8,;M3#C5YS3V<KG9?X=Q.E"] $
MVY>Q"!GY#C%LO4:-EVM[ZW0<Q*//ON\G=+W+Y]6D_\KGC<R>\8E[/O&K?+[;
M$K'<R#5^?DH_G9 ML()<*568$W*EE3%#L.(]6($_QF7MP=H/'(7C?:C90%Q\
MMAO65DAW>I8[8+XQO>32$ $+%/JG9^B@VZ;=3JRJFS8V5Q:;8C,L\9P#[0+P
M_4(INYVXSMB?G.E?4$L#!!0    ( !0T3U@90Z#POP,  "X4   9    >&PO
M=V]R:W-H965T<R]S:&5E=#<Y+GAM;+68:V_;-A2&_PJA#4,"M-'=<5+;0&))
M:XIE"!JTPU#L R,=RT(ETB5I.ROZXWLH*8J]*JH-</D04Q3?ASQ\Q>MDR\5G
MN010Y+$JF9Q:2Z56E[8MTR545)[Q%3!\L^"BH@H?16[+E0":U:*JM#W'&=D5
M+9@UF]1Y=V(VX6M5%@SN!)'KJJ+BWVLH^79JN=93QOLB7RJ=8<\F*YK#/:@/
MJSN!3W9'R8H*F"PX(P(64^O*O4Q<1POJ$A\+V,J=--&A/'#^63_<9%/+T2V"
M$E*E$11_-C"'LM0D;,>7%FIU=6KA;OJ)GM3!8S /5,*<EW\5F5I.K;%%,EC0
M=:G>\^U;: ,*-2_EI:S_DVU3-@PLDJZEXE4KQA94!6M^Z6/;$3L"SWM!X+4"
M[U"!WPK\0P5!*P@.%82M(#Q4,&H%H[KOF\ZJ>SJBBLXF@F^)T*61IA.U7;4:
M.[A@^LNZ5P+?%JA3LPA$L:':77+#I!)K_&J4)*_)5985VGM:D@@4+4I)3MK$
MZ<166+4&V&E;S753C?="-3ZYY4PM)8E9!EF/?CZL=[T!@(TQ=X%[3X%?>X/$
M"-(SXKNOB.=X/OEP'Y&37_L"FYO!1(=CO %,?#C&'< DQP3U[NYO<O+;+^XH
M?',ZT/%^]\7Y-3QX 8X3 @YW1N+'=$E9#@0SME3T?137@R0]Z5[*%4UA:N&L
M*D%LP)KIACIO^HPT"8M,PF*3L,00;,_;H/,VJ.G^SV>33W_@.W*CH)+_]%D;
MF+36)"PR"8M-PA)#L#UKP\[:<'#8/EO[BC#>K@RTXFNFR#?23 ]]/@]2C_79
M)"PR"8M-PI(&YC9KMMX;;F:!T_U-[$V/CZ/.Q]&@C[_C;A.7\I)+"?(4-X<I
MSUGQ%3)2,,)P*UNPE%?09V4##G=:-0["T6Z+&I<&&W"L2R9AL4E88@BVY^)Y
MY^+YH(M_<H7;,HGK*%5H'97D+61YP?*=71SY= O5 XC>Z7<0?^RP- F+3,)B
MD[#$$&S/\'%G^-C4RCHV::U)6&02%IN$)89@>]9>=-9>#([E6ZK6 L]:( E?
MD$6S&];)%$\\ H_>LL_E0>:Q+@\WT"=5??;JL]1D,V*3L,00;,]2UWD^5CO_
MUS([3#[6VI:VNVJ_=AT\U_VP;D<]12_&/07CGH*!-_)^*)B8"J4QP=ZYYJA
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
M_2L6JZ96Z@J!A&0=05H358W43E6S=@_5'ARX"5:-S6R3=/]^MJ&(C/1+2E_
M'_<<SCWVQ8XV7#S(#$"AQYPR.78RI8I3UY5)!CF6)[P IF>67.18Z:Y8N;(0
M@%,+RJGK>U[HYI@P)X[LV+6((UXJ2AA<"R3+/,?B[QE0OAD[/>=IX(:L,F4&
MW#@J\ KFH&Z+:Z%[;L.2DAR8))PA <NQ\[UW.AF9>!MP1V C6VUD,EEP_F Z
MLW3L>$804$B48<#ZM88)4&J(M(P_-:?3?-( V^TG]G.;N\YE@25,./U%4I6-
MG9&#4ECBDJH;OKF .I^!X4LXE?:)-G6LYZ"DE(KG-5@KR FKWOBQ]J$%Z/6?
M ?@UP'\K(*@!@4VT4F;3FF*%XTCP#1(F6K.9AO7&HG4VA)E5G"NA9XG&J7@*
M@JRQL1+-F%2BU"ND)/J"SC#%+ $TMWOIDB?8VGXX!84)E4<ZY'8^18<'1^@
M$89^9KR4F*4R<I769=C=I-9P5FGPG]60G*"@=XQ\SP]VP"=OA_O;<%>[T5CB
M-Y;XEB]XU1)YC,XQ$>@.TQ+0_:4.1#,%N?R]*\F*M;^;U53CJ2QP F-'EYL$
ML08G_ORI%WK?=J6\)[(M X+&@. E]OB'7G"<\Y(IQ)<(2PEZ1]CO, 7IKM0K
MOH'E,_^-==P;]")WW<ZH&^,/FY MG?U&9_\=.BG!"T*)(O"*V(HT;(OUPO_$
M=F/ZPZ^[U0X:M8.7U7*%IB#)BF$M3-N*+B!=$;9J%1ZZOX)\ 6+G_GJ1_KW[
M:T]D6TZ$C1/AAQ18N$\#]D2V9<"P,6"XYP(;=O=LI\"Z,<\5V*C1.?J( AMU
M_P:= NO&= O,;1UKYDIQA86N%XDH+#7*.QEJN*B.Z:JC>&%/N@57^MRTS4S?
M;$"8 #V_Y%P]=<SAV=R5XG]02P,$%     @ %#1/6#WE2RU' P  %PL  !D
M  !X;"]W;W)K<VAE971S+W-H965T.#(N>&ULK5;[;],P$/Y73@$AD,;RZ/K8
M:"N-E0$2CVGC\0/B!S>YMA:.76RGW?Y[SDX6VB4K'2!5C1]WG[_[?+G<<*WT
M#[- M'"="VE&P<+:Y4D8FG2!.3.':HF2=F9*Y\S25,]#L]3(,N^4BS")HEZ8
M,RZ#\="O7>CQ4!56<(D7&DR1YTS?O$2AUJ,@#FX7+OE\8=U".!XNV1ROT'Y>
M7FB:A35*QG.4ABL)&F>CX#0^.8LCY^ MOG!<FXTQN%"F2OUPD[?9*(@<(Q28
M6@?!Z+'",Q3"(1&/GQ5H4)_I'#?'M^CG/G@*9LH,GBGQE6=V,0H& 60X8X6P
MEVK]!JN N@XO5<+X?UA7ME$ :6&LRBMG8I!S63[9=27$AD,\N,<AJ1R2?1TZ
ME4/'!UHR\V%-F&7CH59KT,Z:T-S :^.]*1HNW35>64V[G/SL>(*:KYB3$MY*
M8W5!5V0-/(=38Y &3&8@.)MRP2U' Y0KABPP W<'("G12$5N("L0K *[0-!.
M.E S^LT(!)Y.T#(NS#."_7PU@:>/G\%CX!(^+51AZ 0S#"W%XAB%:<7[9<D[
MN9=W>@B=^ "2*.FTN)_M[YYLNX>D8"UC4LN8>+S.PV1TZKW!;,[E'$Y=PI8B
M3KA)A3*%1OAV.B5S2N;O;1J4AQZU'^K>\!.S9"F. G\M>H7!^,FCN!>]:%/D
M/X%MZ=.I]>GL0M_4QR?6 9PSKN$+$P4>P&NMC"DWVE0HH;L>VI6EU3CNQL-P
MM1E<TR;IUR9;E(]JRD</H@QSSY+EJI"V2NTVMB5J;X-)=(?K+HLMJMV::G<G
MU0_$KN8%K'QSZS>UC62W0:$I:=/F/DE[-<_>OI*^JVK*35LFU)MMU'M-ZE'O
M#O6FS5'_N)U[O^;>WY?[;3V\V3<E^G],B5T66W0'-=W! U*BM8*W,1TT7[6&
MN$V;>\4]KMD>_T5B7%EFT152%\(YETRFG FX4(;[%N#;JVOK&HJI0'@EJ>1J
MYM9;*^GN\S_29TMOJM16/_\)8DN6./K]=8X>6#?_IRA_.+P,J2PGK9_8OW4O
MQ0@WNA;7,KYGFCZ4!@3.""\Z[%.*Z;(+*R=6+7TC,U66VB(_7%#GBMH9T/Y,
M*7L[<;U1W0N/?P%02P,$%     @ %#1/6"_6)RW) @  10@  !D   !X;"]W
M;W)K<VAE971S+W-H965T.#,N>&ULK59M3]LP$/XK5H:F(@%Y:=HQUD:BS3:0
M8$,PM@]H']SDFE@D=F<[+=NOW]E)LQ;:BDG]TMB7>Y[</6??=; 0\E'E )H\
ME0570R?7>G;FNBK)H:3J1,R XYNID"75N)69JV82:&I!9>$&GM=W2\JX$PVL
M[49& U'I@G&XD41594GE[Q$48C%T?&=IN&59KHW!C08SFL$=Z/O9C<2=V[*D
MK 2NF.!$PG3HG/MG<<_X6X?O#!9J94U,)A,A'LWF,ATZG@D("DBT8:#XF,,8
MBL(081B_&DZG_:0!KJZ7[)]L[IC+A"H8B^('2W4^=$X=DL*45H6^%8L+:/*Q
M 2:B4/:7+!I?SR%)I;0H&S!&4#)>/^E3H\,*P.]O 00-('@."+< N@V@^UI
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
M?;CYB&[0$(DMY2"0'Z'OD2]%_RSAVY;M!8T\E7A3>I\.I6I47+6AFS5@D3:
MO-( 3-!G%LFM0)\B#[RRP%#1R)&0$Y(%T2HNP1T@$_<1,8C94*&'R\U)@_GR
M<G.L:8V9=["9Z)FO=7 "O8EK:F<UV\7KS9W841?N>VI!$< /T)O]^@MVC-^:
MF'0IMNQ(K,3+RGE9.O79 C9^%/G11BTG 8U<0&JU%%(-3I76A#&5<Q*Y>)4]
MS,:6,YH.#^=XM&6VQ=.16 F/G>.QM7C^X#22U6F6@K!K(+!MX0H(K7I;$!V)
ME4 X.0A'"^+3,W#7%\THG!J*6],T*BBT^FU1="160C'*48RT*-0&O 9?C0K$
M.(+GG<^;J8SJ5)Q1E8JVJ+94.A(K41GG5,;Z 9*L&)>N(N,:FXEAC"MLZIGJ
M2\U26ZLKVSS)VSQY>[.Y7=6]B3E7Z\8&E,,HT>H%G>=[I"])\OQ(N=?/G OE
M&'PI@/71C\1_4[GG!^#*'T6GZ8<>N:_H_C-?"<F5$_EO$]Q)ESM=EV++CL1*
MG86-PO<SKM_K^NB80;^E&70X0=_%T!M]M;3 T=D0M?' =BH#65^OMA"[4BM3
M//.@\25;XG6\,N_\?$Y;SL TJ\"T56@-K".U,C!2 ".7;9W7(2-U9*8Y<*PJ
M,FTE6B/K2*V,K'#BL=;G;=QBKZ-GUNG9HX%C5^EUZM!WI5:F5[CT6._3O[X5
M7\?0JB]RQF!<]?F;LM77PJ6^[M>R*?QYK'?HL\E(5P'TT>O!(JY[]S8Q:DWN
MU+WO2JU,IG#PL=[#SSP1= !13#QPXV?)DM1&4'7??VQ;54].7W1K4._A_>/"
M_<=Z_[\TA*Z93Z/:1+%&@U&-6:>A05=J969%<(#UT<';@^LZE..FI6DTJ:+L
M*$C(4+Y'R(&+F -KO>39%^URSB$^_8Z7?Y=%28BPIP&2P$/TP8_0"U N/C:B
MU)=JIZ8(8Q2FYX\8>?2E*6+0*[6F_1XQ REB!J*/&?23_6K:;Y1J9;3M-V'K
MA=K"[DJM#+L(+8@^M+AJE;B^#_25.8WX2=X'1MP)3>["@UZJ=2^\1[Q"BGB%
MZ..5T@)#-QL.&RH!^0JN'PG?10<:[!N7XTS8/C\3'>%:J*(OOS6M]PA52!&J
M$'VH4EH@VM$RZR?(#L&D2JO3T*0KM3*M(C0A^M#DDAG>#F+]/@([XTGU!$9?
MK=80WR.&(44,0_0QS"-G+H GT)JSL'1)*9#VG)XTW%E@;-3FIUV?QH343EX;
MLCGFV"E.N,O-*P(1H@]$TM/21?FTM#A0[1>'H6R=M;N/OM%GM( (UGYCF)(5
M>5[76\N95*]K&K*16C2S;,AE.3:95!H^/+NF#H%ODNM^H7:I?233Z]D\-?^D
M8)Y<I%?2%_ANF7X84,BDWRE\IGRC)@@*8*TDE>>KZL33J__T1;)=<AF^8E*R
M,'G< O6 QQG4[VO&Y.DE+B#_ &/V/U!+ P04    "  4-$]8H*$'0CT#  #%
M"0  &0   'AL+W=O<FMS:&5E=',O<VAE970Y,2YX;6RM5EV/VC@4_2M6*JU:
MJ4R^(+2S$ F&:7>DCCJ:4=N':A],<@%K[#AK&QC^_5X[F118P_+0%["=<XY]
M[O7''6VE>M8K $->!*_T.%@94U^'H2Y6(*B^DC54^&4AE: &NVH9ZEH!+1U)
M\#")HBP4E%5!/G)C#RH?R;7AK(('1?1:"*IV4^!R.P[BX'7@D2U7Q@Z$^:BF
M2W@"\ZU^4-@+.Y62":@TDQ51L!@'D_AZ-K1X!_C.8*OWVL0ZF4OY;#MWY3B(
M[(* 0V&L L6_#=P YU8(E_%/JQET4UKB?OM5_9/SCE[F5,.-Y#]8:5;CX$-
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
M6@"_SSE7KP-MH/KW8O@?4$L#!!0    ( !0T3U@07TIBP0,  %D0   9
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
MB[I7;3(;+([2"^Y/NA/\WEK2,L_K1-+_D.86F.Z)O7XAM*G%%PL*)J\!D-$
MCI_<>VM**]];%S'IKS(;CJ08]^N*%1>12Q/UVIC@T5W\V$=>"&^AF[J";0NV
M0OK$(JAI^>58U/YP/R48][<X"\P/\<FVV\9L@:4>[L?LGG31%8A5?1J1VON6
MJ:;A[)YV)YXO=9_?>_Y@3D)U=_XJTQRCOE.Q*IA$)2RUI'<7:T^B.9DT-XIO
MZE[]A2O=^=>7:WV: V$ ^OV2<W6\,0-TY\/9_U!+ P04    "  4-$]8=+W%
M,=@$  #^$P  &0   'AL+W=O<FMS:&5E=',O<VAE970Y."YX;6RM6-MNXS80
M_15"1=L4V-B2[#B7V@82J]L&V$6#9-,^%'U@I+'-1B)=DK*3O^^0DB5;2TD&
MNB\V*<T,>0Z'PR-.=T*^JC6 )F]9RM7,6VN]N1D.5;R&C*J!V #'-TLA,ZJQ
M*U=#M9% $^N4I</0]R?#C#+NS:?VV8.<3T6N4\;A01*59QF5[W>0BMW,"[S]
M@T>V6FOS8#B?;N@*GD _;QXD]H95E(1EP!43G$A8SKS;X"8*KHR#M?B#P4X=
MM(F!\B+$J^G<)S//-S."%&)M0E#\V\("TM1$PGG\6P;UJC&-XV%['_VC!8]@
M7JB"A4C_9(E>S[PKCR2PI'FJ'\7N-R@!79AXL4B5_26[TM;W2)PK+;+2&6>0
M,5[\T[>2B .'8-+B$)8.8=-AW.(P*AU&ISJ,2X>Q9:: 8GF(J*;SJ10[(HTU
M1C,-2Z;U1OB,FW5_TA+?,O33\WL>BPS(%_H&BIR31X@%CUG*J%T5L21Z#>29
M,PT)>=)4H]5'2$#2U'9S+>0[60BY$1)?FCCDT32TP*?9AO+W'Q7Y9;D$N[[U
M>R%)/31YD&++;"J=1: I2]5/TZ%&>&:2P[B$<E= "5N@!"'Y++A>XW@\@>0X
MP!!YJ<@)]^3<A9T1(X@'9!1\(*$?CAP36ISN'CK<H]/=@PXTHVJI1S;>J'>I
M2<14G J52R!_W;XH+7'[_>UBO(@X=D<T->E&;6@,,P^+C@*Y!6_^PW?!Q/_9
MQ=:W#!9]HV!'3(XK)L==T?=,:F02WK "*R!4D^?!TX LR\VAJLT15YO#V)N&
MB^ABP&L[H*G5V[D_,*N^/23P%*.HQ^@(\$4%^*(3L-WYA%6P07T@' \EK ][
MP"_ 8<FT"]N%8T9^$YO3*&Q@ZXETA&U289MT8L/C P\'7JT.21B6*PE<,YJZ
MX'2'.YL,?/][5_E:]#A>MCE&/8X7#L<C*BXK*BX[(YG2$$M(F%8NX-W.9Z-6
MX#V.02OP'L>P#_A5!?RJ#WAYX'&2H6)@W'8QK5%@2=MV,E)$-6*@2LASS,A1
M([<+LT,KOY'8719'B*XK1->]2UD6/N?,K[^>N6/B;JMFQ;D^=?*!7ZL2OW/Z
MGUC&=+4D>)KGA4Q$H8LE%^+<J@DL1Z;Z6CNG7O!/*"H+MU43I,NJ!>6!]@HZ
M49IC6((^/DDDI-2H+510D&U2\0Z IXF(7\^-ODWZ07>/V;[;%J6G&V+)0D]P
M5PTX)B>LR0G_%SFV7H/.)68%"E:^<N9YSR#.$E*R$9YR(O7%=[%]3$@MWX).
M3=-+B#V\)&QIFE<[1^F]\*!*@;NLE\/V[9)3K"*75<LNJ<56T*VVCG"7,N,0
M]Z_WG[[<$YK\@U]+^$7: K)[C*X\Z/%L/?:BP"'%6LBHA5C0K<2<9)BJB(0
MU@<CR>H,H"E^UU,>.R5GSTAGXW9*3E%TD<NJ!7ZMU8)NK=,*G^:H6@BFN$ZA
M/0DF?05NX3)Q0.L*= RMUEY!MYKY';^TI7/6ER?MSU.L(K=5BX(.:OD4=.NG
MKS^(G$"N'(,'DR80I]6X"<1I%3: # \N1C*0*WO!I/ (S;DNK@&JI]4EUJV]
MNFD\OS.76_;"I0Y3W(Q]IG+%N"(I+#&D/[C$K)?%95/1T6)CKU]>A-8BL\TU
M4/QH,@;X?BF$WG?, -65W_P_4$L#!!0    ( !0T3U@'BHXW\ ,  /D,   9
M    >&PO=V]R:W-H965T<R]S:&5E=#DY+GAM;+57;6_;-A#^*X16#"W01B^V
M_)+9!F*[P_JA0. TW8=A'QCI;!&A2(VD8F^_OD=)4629-H(B PR+(I][=,\=
M>3K-]E(]Z@S D$/.A9Y[F3'%M>_K)(.<ZBM9@,"5K50Y-7BK=KXN%-"T,LJY
M'P7!R,\I$]YB5LW=JL5,EH8S ;>*Z#+/J?IW"5SNYU[H/4]LV"XS=L)?S JZ
M@SLP]\6MPCN_94E9#D(S*8B"[=R[":_786 -*L1W!GO=&1,KY4'*1WOS)9U[
M@?4(."3&4E"\/,$*.+=,Z,<_#:G7/M,:=L?/[+]7XE', ]6PDOQ/EIIL[DT\
MDL*6EMQLY/X/: 3%EB^17%?_9-]@ X\DI38R;XS1@YR)^DH/32 Z!N'HC$'4
M&$1]@^$9@T%C,'BMP; Q&%:1J:54<5A30Q<S)?=$632RV4$5S,H:Y3-A\WYG
M%*XRM#.++R*1.9!O] ":?"*KC(H=CI@@)@.R 0WJ"0CN+])%?B2?#PDO4R9V
M.&] @3:$BI3<@J#<,&1XOP9#&=<?D/7^;DW>O_M WEG>;YDL-6+US#<HP+KA
M)XVSR]K9Z(RS842^2F$R33Z+%-)C A^5M_*C9_G+Z"+C&I(K,@@_DBB(!@Z'
M5J\WCQSFZ]>;AQ?4#-ID#BJ^P1F^#212)(PS6ITIN27W0N'<3K#_(+6I(TL0
ML&7F*(,WN2R%T9@\A2D3=LI(7*>XWQJS#9A2"4W^VDC."9ZX/57IWZX,UAX.
MW1[:*G:M"YK W,,R56TN;_'K+^$H^,T5_;<D6[\1V5%FAFUFAI?8%TO*J4C
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
M3&2Q"$P9R/<K2L6VHR:HRT__#U!+ P04    "  4-$]80H/GJJL$  #'&
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
M=,$5VQ%>?4QH7S^UFXB7,4X6),L?X /)2+KC)]\?:!0!7B=[G 9_JQY1$<)
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
M3!MX8'$@TM/6&L\V7B&[ZP#+Z:X*P6:*5R(V4WRM ;&O&WA$D3W;6!SPP+*
MU0[$M\>!FK+[! %D%=.&[6 <B2(,@5JTUV@8(JL3PM>>'VR7!$$4V1' [ J"
M $-@-^((I@ T8$@0E,_!K>>1MWI.><V_] =_ 5!+ P04    "  4-$]8EXJ[
M',     3 @  "P   %]R96QS+RYR96QSG9*Y;L,P#$!_Q=">, ?0(8@S9?$6
M!/D!5J(/V!(%BD6=OZ_:I7&0"QEY/3P2W!YI0.TXI+:+J1C]$%)I6M6X 4BV
M)8]ISI%"KM0L'C6'TD!$VV-#L%HL/D N&6:WO606IW.D5XA<UYVE/=LO3T%O
M@*\Z3'%":4A+,P[PS=)_,O?S##5%Y4HCE5L:>-/E_G;@2=&A(E@6FD7)TZ(=
MI7\=Q_:0T^FO8R*T>EOH^7%H5 J.W&,EC'%BM/XU@LD/['X 4$L#!!0    (
M !0T3UB;_6#V! @  #1)   /    >&PO=V]R:V)O;VLN>&ULQ9Q1<]HX$(#_
MBH:7Z\V4B\%@0Z?I#$UHRTR:<"'3/MXHM@!-;8O*,DGZZV]EET0"LW<O&UY*
M >-\R)8^[6K%^P>E?]PK]8,]YEE1GG?6QFS>G9V5R5KDO/Q+;40![RR5SKF!
MIWIU5FZTX&FY%L+DV5D_"**SG,NB\^'][EQS?>8^448D1JH"7K0O?)/BH7QY
MWSYE6UG*>YE)\W3>J?^?B0[+92%S^4NDYYV@P\JU>OBBM/RE"L.S1:)5EIUW
M>LT;WX0V,CEX>6$A[_A]6;]B^/TM!Y#S3A3 "9=2EZ8^HCX_!\:M@(.;9Y51
MGV1FA+[D1GS6JMK(8F5/ ]_BS/D:=3OL'IM&?*?_3S.JY5(FXE(E52X*T[2C
M%ID%+,JUW)0=5O!<G'<NU%9H-N<K8;\4_)59VGQ! V1.<^EW$M[0L[1FI..9
M5*DT;%8T'X9W':P^@M6GQ;JXN5[<7,TN)W?32[:X@X>OT^N[!;OYQ&[FTUL'
M,D0@PY-!7MQ\G3N0 P1R<$+(?_H.Y!"!'+XBY,?)U>3Z8LH67Z;3NX4#&"&
MT<D V9LY=R!C!#(^W:6>++XXD",$<G0RR,67B=NSQPCD^(207J?I!=C8'=!B
M+JH\Y_J)J25;R%4AX6.\,&R2)*HJC'0Q4<40.^8:Y@0P<2@ *A'VV-(EPRS3
M(];,)RXU^\:S2K"O@I>5/L3#_-*C%@POUV^9_9=-?U9RRS-+]Y;Q(@5E;UU,
MS# ]8L4 "AP LSGAM1SFDQZQ4*[@:HJ2-0\N%.:0'K%$/BN5/L@L<WDP7?2(
M?3&#N7>QLG^43<I2^/<]IH@>L2-@ -.52-GT$4ZR=P$Q*_2HM:#R7)IZB*C[
MX 5$+Q!(B"+Q;_T^)H4^L11F12KRQ@7V/3OR6@@XRB7$?- G]L&ET#"6V0 -
M1K'2Z&I_T.VCD0>Q$VX%C&8@A%N1*'#J?DR$^:!/[(/%FFNQ5EDJ=/E'K03S
MY+)A$N@32V!A5/*C^Q'&6]LO<MMQ#^))S A]8B-,\TVFGH1@"[Z%/ENR><8]
M.,P,?6(SS(I$Y8+=\4=_','LT">VPW<A5VL#5W.R%9JOH.'LW>?A88[H$SMB
M(5;VB'H<_BS42O/-6B;/F0P7$U-&GU@9'ZM2%J(L85(.W;6LAQ.W#4-,%2&Q
M*JX4@"VURMDGJ=V$5(CI(236PZVP3DA,I:&?L@NXZU;>;1=B=@B)[;"H[DOQ
ML[)WWG2[IZT0S451NP'.D58PE9O-6+>.:1K]V_[Q=^5F*$),$R&Q)N;\B6UA
M\!6Z_C@$A.Q2EDFF;/#E0F*N"(E= ;,2"8YE=YJG]AZ<: T3Y8/8,,24$1(K
M XW]O11%B%DD)+;(D0B;O;GC .*U)F:3D#HKA47:?FMB-@F);>)$VKL6_---
M,V,R&1#+!.*,C=#FZ6T]LS)-V]G&W-2>=C$QNPR([?([,]#6>IA7!L1>V>4&
M6L$PKPR(O7*0)&@E1!<XB)6RGRUH!<1T,B#627N\VXJ)&65 ;)26P+>5$=/)
M@%@GQZ+,WZ N)J:3 ;%.W'BNM0TQB0R()7(DL&M1\A#SR9!Z<0,+\/R%2\PG
M0V*?M 9X, -O:4W,+T/RK%9+4-5V:PXQV0RI@QAT4ANZF)AQAM2Y+A1SX&*B
MB^K$WL$QARXFYIWA22.9R,7$U#.D5@^*&;N8F'J&U'DQ%'/D8F(2&A)+Z%A<
MV&UFF6[5!R:AB%A"[7'A;@'6G6]$F(0B8@FAF)XK(TQ"$755%XKI#N\19J'H
M),ON.TQW>(\P"T74E5UHSL)K3<Q"$75M%]J:KH4BM,"+? GF);7295ZBY5(8
M-W\:81:*B"V$9EG\GHY9*"*VT![F7BZHZV)B%HJ(+;1+!MDK+#-O'AQCVHFI
M%V8:KBY[SNJ#SN?\Z7?BP,7$M!,3:^<Y:=6U$45A(PI9,+,6T-VU=I>F8TP[
M,;%V#E-8,,O(E3:V')W-7$Q,._&K9]JZ[!K:L<D<>1<=TTY,7NUUB#DMC80S
MV9R"BXEI)R;6SD%6L&O+=8#35'O+.#&FG9A8.VV8+UWINXN)5A93EQ9CE4_>
M>!YCVHF)M7,DTPK=/4VE5Q ;8]J)B;5S%/.F,J4WUQAA%AH16^@HYD<.4D]<
M3,Q"HY.4D^TB2;>GCS +C8@M=!3S,X>>[@[O(\Q"(V(+M:T".!YR,3$+C8@M
MU(YY*4N^6FFQ<C$Q"XV(+=2..<DR]6!K'UQ,S$*C$RS]0&N*I= :Y.1B8A8:
M4:?@6NH?GP=WK]1PA.YPH4[!'5ND:B3O8F(6&A%;",7T0LDQ9J$Q]3H0BNFF
M.<:8A<;$%L(QW:31&+/0F+I^#<5TLS%CS$)CZH6@8YA-2.QB8A8:$UNHM:CX
M941R,3$+C<GKV9SEZ)?QDF?-:JJ+B5EH_(I5T'OAFLU_N)B8A<;DVV8\3.M,
M"(,RV=R@WD7'+#1^S1J$@P2-M]$2W6E)7M*&7/2]K9;X7DMB#QTKFP!FGB65
M!XKNM@R(370<M.[X'BBZ^3*@=A%:X1%ZH.@VS(#:1BCHP -%-V(&Q#XZ5HSR
M56EIQ*,'BF[/#(B-A(+N]7ITRV9 ["1_BT3K2D$O0#=Q!L0Z:J_L:9N#] )T
M4V= +*1CH+_7.#Q0=)=G0*PD%-2_.?'M__3[__<VH]BZL[8[]#^V_U.'1N[6
ME(.=*=Z%QW\-H/DY@+/Z\/+#^U0L81!)K^&/E/!Z AJ>:V8?ZG/U!T.[6WA9
M99DU]$UQI7BZ^]&?W0\6??@74$L#!!0    ( !0T3UBSZYZ ) ,  ,-!   :
M    >&PO7W)E;',O=V]R:V)O;VLN>&UL+G)E;'/-VTMJXT 4A>&M!"\@JEOO
M:I*,>I)IDPT81WD0O[#4=++[-LD@.44/>A+TCT3)^.J X,.4ZUS]&K?K^?FP
MGYZ>C]/%ZVZ[GZY73_-\_#$,T^9IW*VGR\-QW)\_>3B<=NOYO#P]#L?UYF7]
M. [>N3R<OLY8W5Q]G7EQ]W8<_V?BX>'A>3/^/&Q^[\;]_(_!PY_#Z65Z&L=Y
M=7&W/CV.\_5J>-U^WIZ&]XM=GB>O+F[OKU>GVWM;#4L'\A+(+Q\H2*"P?* H
M@>+R@9($2LL'RA(H+Q^H2*"R?* J@>KR@9H$:LL',J<R.D"D#FN UJ9<&\!K
M4[ -(+8IV08PVQ1M ZAMRK8!W#:%VP!RF])M +M-\3: WE[U]@"]O>KM 7K[
M[L<V0&^O>GN WE[U]@"]O>KM 7I[U=L#]/:JMP?H[55O#]#;J]X>H'=0O0-
M[Z!Z!X#>0?4. +U#MUD"T#NHW@&@=U"] T#OH'H'@-Y!]0X O8/J'0!Z!]4[
M /2.JG<$Z!U5[PC0.ZK>$:!W5+TC0._8;78#](ZJ=P3H'57O"- [JMX1H'=4
MO2- [ZAZ1X#>2?5. +V3ZIT >B?5.P'T3JIW NB=5.\$T#MU?U8"]$ZJ=P+H
MG53O!- [J=X)H'=2O1- [ZQZ9X#>6?7. +VSZIT!>F?5.P/TSJIW!NB=5>\,
MT#MWATT >F?5.P/TSJIW!NB=5>\,T+NHW@6@=U&]"T#OHGH7@-Y%]2X O8OJ
M70!Z%]6[ /0NJG<!Z%VZPX( O8OJ70!Z%]6[ /2NJG<%Z%U5[PK0NZK>%:!W
M5;TK0.^J>E> WE7UK@"]J^I= 7I7U;L"]*[=86^ WE7UK@"]F^K= 'HWU;L!
M]&ZJ=P/HW53O!M"[J=X-H'=3O1M [Z9Z-X#>3?5N +V;ZMT >K>NK /0VUQ?
MUP'X;:XK[#B X.:ZRHX#&&ZN*^TX@.+FNMJ. SANKBON.(#DYKKJC@-8;JXK
M[SB YN:Z^HX#>&ZN*_ X@NA] 9/1P.PKF 31^Q+FM[8PI_EM.TZ?B3[678#O
MU'L^?W?\?/[[\N-F_V[>N1Z^QIAN_@)02P,$%     @ %#1/6/-SDSM_ @
M.S\  !,   !;0V]N=&5N=%]4>7!E<UTN>&ULS=M/;YLP&,?QMQ)QK0*V 1NF
MII=VUZV'O0$&3H/"/V&W2]_]'-)6VM1%JS)IWTM0L/W\'FSI<_/UM^?)NM6A
M[P:WB7;>3Y^2Q-4[VU<N'B<[A)'M./>5#W_GAV2JZGWU8!,EA$[J<?!V\&M_
MK!'=7-_9;?78^=7G0WCMVG'81+/M7+2Z/4T\9FVB:IJZMJY\&$^>AN:WE/5+
M0AQ6+G/<KIW<59@0)>\F'$?^'/"R[NN3G>>VL:O[:O9?JC[,2@Y=XOQS9UU\
MOL0[/8[;;5O;9JP?^[ D=M-LJ\;MK/5]%Y^*7IU/]F&'[>E77IR_E#D7&&;>
MS^/DPHG-]N-QKT=R7+V>0B$[^_;\)[XEAM(7?Y\]GG9CF[_,#MO[8YSWRWFX
M9'E<OL>_GO%;_0_VH2!]I) ^,D@?.:0/#>G#0/HH('V4D#ZDH#1"$5522)44
M4R4%54E155)8E117)05629%54615%%D5159%D5519%44615%5D6155%D5119
M4XJL*476E")K2I$UI<B:4F1-*;*F%%E3BJPI1=:,(FM&D36CR)I19,THLF84
M63.*K!E%UHPB:T:1-:?(FE-DS2FRYA19<XJL.476G")K3I$UI\B:4V35%%DU
M159-D5539-44635%5DV155-DU119-4560Y'54&0U%%D-159#D=509#4460U%
M5D.1U5!D+2BR%A19"XJL!476@B)K09&UH,A:4&0M*+(6%%E+BJPE1=:2(FM)
MD;6DR%I29"TILI8464N*K"5%5BDHM$I!L54*"JY24'25@L*K%!1?I:  *P5%
M6"DHQ$J!,19T'0MC['^]D/5]'/?_.'YYQGW5#J_YR7)G_N8G4$L! A0#%
M  @ %#1/6 =!36*!    L0   !               ( !     &1O8U!R;W!S
M+V%P<"YX;6Q02P$"% ,4    "  4-$]83I>)3N\    K @  $0
M    @ &O    9&]C4')O<',O8V]R92YX;6Q02P$"% ,4    "  4-$]8F5R<
M(Q &  "<)P  $P              @ '- 0  >&PO=&AE;64O=&AE;64Q+GAM
M;%!+ 0(4 Q0    ( !0T3UA!*FO_&P<  $DN   8              " @0X(
M  !X;"]W;W)K<VAE971S+W-H965T,2YX;6Q02P$"% ,4    "  4-$]8#(#
M:CX"  "[!0  &               @(%?#P  >&PO=V]R:W-H965T<R]S:&5E
M=#(N>&UL4$L! A0#%     @ %#1/6#6A70]:!@  ]!H  !@
M ("!TQ$  'AL+W=O<FMS:&5E=',O<VAE970S+GAM;%!+ 0(4 Q0    ( !0T
M3U@TE&(?7@0   ,0   8              " @6,8  !X;"]W;W)K<VAE971S
M+W-H965T-"YX;6Q02P$"% ,4    "  4-$]8\'DR]<<"  #J!@  &
M        @('W'   >&PO=V]R:W-H965T<R]S:&5E=#4N>&UL4$L! A0#%
M  @ %#1/6+HBXXW!!P  G2$  !@              ("!]!\  'AL+W=O<FMS
M:&5E=',O<VAE970V+GAM;%!+ 0(4 Q0    ( !0T3U@(##(HHP,  (0,   8
M              " @>LG  !X;"]W;W)K<VAE971S+W-H965T-RYX;6Q02P$"
M% ,4    "  4-$]8U)FZ_[D(   N)P  &               @('$*P  >&PO
M=V]R:W-H965T<R]S:&5E=#@N>&UL4$L! A0#%     @ %#1/6*#[5W*^"0
MUTX  !@              ("!LS0  'AL+W=O<FMS:&5E=',O<VAE970Y+GAM
M;%!+ 0(4 Q0    ( !0T3U@_0';]^0(  ,('   9              " @:<^
M  !X;"]W;W)K<VAE971S+W-H965T,3 N>&UL4$L! A0#%     @ %#1/6/6[
M(!&K*   C(4  !D              ("!UT$  'AL+W=O<FMS:&5E=',O<VAE
M970Q,2YX;6Q02P$"% ,4    "  4-$]8%\T&7=,&  "-$@  &0
M    @(&Y:@  >&PO=V]R:W-H965T<R]S:&5E=#$R+GAM;%!+ 0(4 Q0    (
M !0T3U@>:M D*04  %$,   9              " @<-Q  !X;"]W;W)K<VAE
M971S+W-H965T,3,N>&UL4$L! A0#%     @ %#1/6+HH\>?C"0  [AL  !D
M             ("!(W<  'AL+W=O<FMS:&5E=',O<VAE970Q-"YX;6Q02P$"
M% ,4    "  4-$]8U5ZK5D$#  #C!@  &0              @($]@0  >&PO
M=V]R:W-H965T<R]S:&5E=#$U+GAM;%!+ 0(4 Q0    ( !0T3UC*B,59LP<
M )D6   9              " @;6$  !X;"]W;W)K<VAE971S+W-H965T,38N
M>&UL4$L! A0#%     @ %#1/6->3=[!O P  C <  !D              ("!
MGXP  'AL+W=O<FMS:&5E=',O<VAE970Q-RYX;6Q02P$"% ,4    "  4-$]8
ML[)*ONL$  "3"P  &0              @(%%D   >&PO=V]R:W-H965T<R]S
M:&5E=#$X+GAM;%!+ 0(4 Q0    ( !0T3UBC;DGC"00  )$)   9
M      " @6>5  !X;"]W;W)K<VAE971S+W-H965T,3DN>&UL4$L! A0#%
M  @ %#1/6 5EP-5U!0  W0P  !D              ("!IYD  'AL+W=O<FMS
M:&5E=',O<VAE970R,"YX;6Q02P$"% ,4    "  4-$]8HL/<5&T$   8"P
M&0              @(%3GP  >&PO=V]R:W-H965T<R]S:&5E=#(Q+GAM;%!+
M 0(4 Q0    ( !0T3UA/%KX\V08  *T1   9              " @?>C  !X
M;"]W;W)K<VAE971S+W-H965T,C(N>&UL4$L! A0#%     @ %#1/6%7"*$A.
M!@  @Q   !D              ("!!ZL  'AL+W=O<FMS:&5E=',O<VAE970R
M,RYX;6Q02P$"% ,4    "  4-$]8(+&;$?X%   E$   &0
M@(&,L0  >&PO=V]R:W-H965T<R]S:&5E=#(T+GAM;%!+ 0(4 Q0    ( !0T
M3UAK1H563 P  .HB   9              " @<&W  !X;"]W;W)K<VAE971S
M+W-H965T,C4N>&UL4$L! A0#%     @ %#1/6"-U8HY9 P  C0<  !D
M         ("!1,0  'AL+W=O<FMS:&5E=',O<VAE970R-BYX;6Q02P$"% ,4
M    "  4-$]8:B-/&<\.  !0*P  &0              @('4QP  >&PO=V]R
M:W-H965T<R]S:&5E=#(W+GAM;%!+ 0(4 Q0    ( !0T3UAE$]M"AP,  .@(
M   9              " @=K6  !X;"]W;W)K<VAE971S+W-H965T,C@N>&UL
M4$L! A0#%     @ %#1/6"1,XICM!   )0P  !D              ("!F-H
M 'AL+W=O<FMS:&5E=',O<VAE970R.2YX;6Q02P$"% ,4    "  4-$]81F%7
M@T0)  "%%@  &0              @(&\WP  >&PO=V]R:W-H965T<R]S:&5E
M=#,P+GAM;%!+ 0(4 Q0    ( !0T3U@K$,LKE00  )<*   9
M  " @3?I  !X;"]W;W)K<VAE971S+W-H965T,S$N>&UL4$L! A0#%     @
M%#1/6!Q+&I<?!   &@H  !D              ("! ^X  'AL+W=O<FMS:&5E
M=',O<VAE970S,BYX;6Q02P$"% ,4    "  4-$]8/Y_&*',"  !Z!0  &0
M            @(%9\@  >&PO=V]R:W-H965T<R]S:&5E=#,S+GAM;%!+ 0(4
M Q0    ( !0T3UCK'%T#BP,  %P(   9              " @0/U  !X;"]W
M;W)K<VAE971S+W-H965T,S0N>&UL4$L! A0#%     @ %#1/6,%Y-1U> @
M@08  !D              ("!Q?@  'AL+W=O<FMS:&5E=',O<VAE970S-2YX
M;6Q02P$"% ,4    "  4-$]8>L)NEPL%   <$P  &0              @(%:
M^P  >&PO=V]R:W-H965T<R]S:&5E=#,V+GAM;%!+ 0(4 Q0    ( !0T3UB_
M,<9WJ#$  +^S   9              " @9P  0!X;"]W;W)K<VAE971S+W-H
M965T,S<N>&UL4$L! A0#%     @ %#1/6 =#!1 J P  & <  !D
M     ("!>S(! 'AL+W=O<FMS:&5E=',O<VAE970S."YX;6Q02P$"% ,4
M"  4-$]88H':$2$&  !($0  &0              @('<-0$ >&PO=V]R:W-H
M965T<R]S:&5E=#,Y+GAM;%!+ 0(4 Q0    ( !0T3UCU-LV(? (  %L%   9
M              " @30\ 0!X;"]W;W)K<VAE971S+W-H965T-# N>&UL4$L!
M A0#%     @ %#1/6(!B96P+ P  > 8  !D              ("!YSX! 'AL
M+W=O<FMS:&5E=',O<VAE970T,2YX;6Q02P$"% ,4    "  4-$]8OA>*BWL"
M  !8!0  &0              @($I0@$ >&PO=V]R:W-H965T<R]S:&5E=#0R
M+GAM;%!+ 0(4 Q0    ( !0T3U@=O=ZSX@(  '@&   9              "
M@=M$ 0!X;"]W;W)K<VAE971S+W-H965T-#,N>&UL4$L! A0#%     @ %#1/
M6#NJ%#&X P  A @  !D              ("!]$<! 'AL+W=O<FMS:&5E=',O
M<VAE970T-"YX;6Q02P$"% ,4    "  4-$]8MS(9VCD$   M#   &0
M        @('C2P$ >&PO=V]R:W-H965T<R]S:&5E=#0U+GAM;%!+ 0(4 Q0
M   ( !0T3U@N\3CW?@4  ! /   9              " @5-0 0!X;"]W;W)K
M<VAE971S+W-H965T-#8N>&UL4$L! A0#%     @ %#1/6%JC2HB9!   P P
M !D              ("!"%8! 'AL+W=O<FMS:&5E=',O<VAE970T-RYX;6Q0
M2P$"% ,4    "  4-$]84YFFG# &  !1$   &0              @('86@$
M>&PO=V]R:W-H965T<R]S:&5E=#0X+GAM;%!+ 0(4 Q0    ( !0T3UCU@16%
MA@<  -$5   9              " @3]A 0!X;"]W;W)K<VAE971S+W-H965T
M-#DN>&UL4$L! A0#%     @ %#1/6):G:BZZ @  #08  !D
M ("!_&@! 'AL+W=O<FMS:&5E=',O<VAE970U,"YX;6Q02P$"% ,4    "  4
M-$]8WXSE_5(#   M!P  &0              @('M:P$ >&PO=V]R:W-H965T
M<R]S:&5E=#4Q+GAM;%!+ 0(4 Q0    ( !0T3UCCQ,-^8P,  /P&   9
M          " @79O 0!X;"]W;W)K<VAE971S+W-H965T-3(N>&UL4$L! A0#
M%     @ %#1/6) +PXAP P  K0@  !D              ("!$',! 'AL+W=O
M<FMS:&5E=',O<VAE970U,RYX;6Q02P$"% ,4    "  4-$]8XZ@#B!8$  "\
M%@  &0              @(&W=@$ >&PO=V]R:W-H965T<R]S:&5E=#4T+GAM
M;%!+ 0(4 Q0    ( !0T3U@'! L?B0,  $L4   9              " @01[
M 0!X;"]W;W)K<VAE971S+W-H965T-34N>&UL4$L! A0#%     @ %#1/6+(E
M\99W @  8@<  !D              ("!Q'X! 'AL+W=O<FMS:&5E=',O<VAE
M970U-BYX;6Q02P$"% ,4    "  4-$]8&C^3!GH"  "/!P  &0
M    @(%R@0$ >&PO=V]R:W-H965T<R]S:&5E=#4W+GAM;%!+ 0(4 Q0    (
M !0T3UB?"!A"= (  *@&   9              " @2.$ 0!X;"]W;W)K<VAE
M971S+W-H965T-3@N>&UL4$L! A0#%     @ %#1/6'GF-6C" P  ,0X  !D
M             ("!SH8! 'AL+W=O<FMS:&5E=',O<VAE970U.2YX;6Q02P$"
M% ,4    "  4-$]8;ZIEAA $  "^$P  &0              @(''B@$ >&PO
M=V]R:W-H965T<R]S:&5E=#8P+GAM;%!+ 0(4 Q0    ( !0T3U@TKFW9_00
M -L;   9              " @0Z/ 0!X;"]W;W)K<VAE971S+W-H965T-C$N
M>&UL4$L! A0#%     @ %#1/6.!ZPS\Q P  ,@H  !D              ("!
M0I0! 'AL+W=O<FMS:&5E=',O<VAE970V,BYX;6Q02P$"% ,4    "  4-$]8
MB/)MZ'<(  !/1   &0              @(&JEP$ >&PO=V]R:W-H965T<R]S
M:&5E=#8S+GAM;%!+ 0(4 Q0    ( !0T3U@LCKGAY 8  %\O   9
M      " @5B@ 0!X;"]W;W)K<VAE971S+W-H965T-C0N>&UL4$L! A0#%
M  @ %#1/6*8#];C8 @  5P@  !D              ("!<Z<! 'AL+W=O<FMS
M:&5E=',O<VAE970V-2YX;6Q02P$"% ,4    "  4-$]8J@;MPPT&   Z*0
M&0              @(&"J@$ >&PO=V]R:W-H965T<R]S:&5E=#8V+GAM;%!+
M 0(4 Q0    ( !0T3UBB5-RG 0,  % ,   9              " @<:P 0!X
M;"]W;W)K<VAE971S+W-H965T-C<N>&UL4$L! A0#%     @ %#1/6$5OSM]P
M!   VQD  !D              ("!_K,! 'AL+W=O<FMS:&5E=',O<VAE970V
M."YX;6Q02P$"% ,4    "  4-$]8P],$870$  #C&   &0
M@(&EN $ >&PO=V]R:W-H965T<R]S:&5E=#8Y+GAM;%!+ 0(4 Q0    ( !0T
M3UA-6DW05 @  'Q+   9              " @5"] 0!X;"]W;W)K<VAE971S
M+W-H965T-S N>&UL4$L! A0#%     @ %#1/6)7H%$5K @  G 8  !D
M         ("!V\4! 'AL+W=O<FMS:&5E=',O<VAE970W,2YX;6Q02P$"% ,4
M    "  4-$]8;QD;GUT#  "T#   &0              @(%]R $ >&PO=V]R
M:W-H965T<R]S:&5E=#<R+GAM;%!+ 0(4 Q0    ( !0T3UCRXV %D 0  *8;
M   9              " @1', 0!X;"]W;W)K<VAE971S+W-H965T-S,N>&UL
M4$L! A0#%     @ %#1/6&%-OT.'!   Y"   !D              ("!V- !
M 'AL+W=O<FMS:&5E=',O<VAE970W-"YX;6Q02P$"% ,4    "  4-$]8O<[+
M:.<"  "L"0  &0              @(&6U0$ >&PO=V]R:W-H965T<R]S:&5E
M=#<U+GAM;%!+ 0(4 Q0    ( !0T3U@?M4Q2D ,  %D+   9
M  " @;38 0!X;"]W;W)K<VAE971S+W-H965T-S8N>&UL4$L! A0#%     @
M%#1/6(B<U#)2 P  5PH  !D              ("!>]P! 'AL+W=O<FMS:&5E
M=',O<VAE970W-RYX;6Q02P$"% ,4    "  4-$]8WISMH8,"  !%!P  &0
M            @($$X $ >&PO=V]R:W-H965T<R]S:&5E=#<X+GAM;%!+ 0(4
M Q0    ( !0T3U@90Z#POP,  "X4   9              " @;[B 0!X;"]W
M;W)K<VAE971S+W-H965T-SDN>&UL4$L! A0#%     @ %#1/6#QY*+8N"P
M:+4  !D              ("!M.8! 'AL+W=O<FMS:&5E=',O<VAE970X,"YX
M;6Q02P$"% ,4    "  4-$]8.7D" +L"   W"0  &0              @($9
M\@$ >&PO=V]R:W-H965T<R]S:&5E=#@Q+GAM;%!+ 0(4 Q0    ( !0T3U@]
MY4LM1P,  !<+   9              " @0OU 0!X;"]W;W)K<VAE971S+W-H
M965T.#(N>&UL4$L! A0#%     @ %#1/6"_6)RW) @  10@  !D
M     ("!B?@! 'AL+W=O<FMS:&5E=',O<VAE970X,RYX;6Q02P$"% ,4
M"  4-$]8!4!P%S("   A!0  &0              @(&)^P$ >&PO=V]R:W-H
M965T<R]S:&5E=#@T+GAM;%!+ 0(4 Q0    ( !0T3UC[9,#\DP0  -8:   9
M              " @?+] 0!X;"]W;W)K<VAE971S+W-H965T.#4N>&UL4$L!
M A0#%     @ %#1/6'TU\?X) P  >0@  !D              ("!O (" 'AL
M+W=O<FMS:&5E=',O<VAE970X-BYX;6Q02P$"% ,4    "  4-$]87QTJ2#@#
M  !P"0  &0              @('\!0( >&PO=V]R:W-H965T<R]S:&5E=#@W
M+GAM;%!+ 0(4 Q0    ( !0T3UBI*V7.LPD  +YO   9              "
M@6L) @!X;"]W;W)K<VAE971S+W-H965T.#@N>&UL4$L! A0#%     @ %#1/
M6+*F=1L."P  @6D  !D              ("!51," 'AL+W=O<FMS:&5E=',O
M<VAE970X.2YX;6Q02P$"% ,4    "  4-$]8;]\5>^(%  ",(0  &0
M        @(&:'@( >&PO=V]R:W-H965T<R]S:&5E=#DP+GAM;%!+ 0(4 Q0
M   ( !0T3UB@H0="/0,  ,4)   9              " @;,D @!X;"]W;W)K
M<VAE971S+W-H965T.3$N>&UL4$L! A0#%     @ %#1/6(99%]6F P  L0L
M !D              ("!)R@" 'AL+W=O<FMS:&5E=',O<VAE970Y,BYX;6Q0
M2P$"% ,4    "  4-$]8PH_NX8X$  #*%@  &0              @($$+ (
M>&PO=V]R:W-H965T<R]S:&5E=#DS+GAM;%!+ 0(4 Q0    ( !0T3UC3&JYL
MV ,  ,D0   9              " @<DP @!X;"]W;W)K<VAE971S+W-H965T
M.30N>&UL4$L! A0#%     @ %#1/6!!?2F+! P  61   !D
M ("!V#0" 'AL+W=O<FMS:&5E=',O<VAE970Y-2YX;6Q02P$"% ,4    "  4
M-$]87F8 66@(  !%00  &0              @('0. ( >&PO=V]R:W-H965T
M<R]S:&5E=#DV+GAM;%!+ 0(4 Q0    ( !0T3UA-9)R-Q0,  "L.   9
M          " @6]! @!X;"]W;W)K<VAE971S+W-H965T.3<N>&UL4$L! A0#
M%     @ %#1/6'2]Q3'8!   _A,  !D              ("!:T4" 'AL+W=O
M<FMS:&5E=',O<VAE970Y."YX;6Q02P$"% ,4    "  4-$]8!XJ.-_ #  #Y
M#   &0              @(%Z2@( >&PO=V]R:W-H965T<R]S:&5E=#DY+GAM
M;%!+ 0(4 Q0    ( !0T3UCV)_5G_@0  '<6   :              " @:%.
M @!X;"]W;W)K<VAE971S+W-H965T,3 P+GAM;%!+ 0(4 Q0    ( !0T3UA"
M.<2/] (  *D(   :              " @==3 @!X;"]W;W)K<VAE971S+W-H
M965T,3 Q+GAM;%!+ 0(4 Q0    ( !0T3UBFM1@O=@,  ((/   :
M      " @0-7 @!X;"]W;W)K<VAE971S+W-H965T,3 R+GAM;%!+ 0(4 Q0
M   ( !0T3UAVB2("0@,  (H.   :              " @;%: @!X;"]W;W)K
M<VAE971S+W-H965T,3 S+GAM;%!+ 0(4 Q0    ( !0T3UA"@^>JJP0  ,<8
M   :              " @2M> @!X;"]W;W)K<VAE971S+W-H965T,3 T+GAM
M;%!+ 0(4 Q0    ( !0T3UA <AQB)04  ,@I   :              " @0YC
M @!X;"]W;W)K<VAE971S+W-H965T,3 U+GAM;%!+ 0(4 Q0    ( !0T3UCM
M\OF$' 8  *DT   :              " @6MH @!X;"]W;W)K<VAE971S+W-H
M965T,3 V+GAM;%!+ 0(4 Q0    ( !0T3UC?4 X=]0(  "$)   :
M      " @;]N @!X;"]W;W)K<VAE971S+W-H965T,3 W+GAM;%!+ 0(4 Q0
M   ( !0T3UC/_9 9O (  /,'   :              " @>QQ @!X;"]W;W)K
M<VAE971S+W-H965T,3 X+GAM;%!+ 0(4 Q0    ( !0T3UC1("'^* ,  #$.
M   :              " @>!T @!X;"]W;W)K<VAE971S+W-H965T,3 Y+GAM
M;%!+ 0(4 Q0    ( !0T3UCU?(<P804  /<D   :              " @4!X
M @!X;"]W;W)K<VAE971S+W-H965T,3$P+GAM;%!+ 0(4 Q0    ( !0T3UC:
M\4*Z%0(  ,<$   :              " @=E] @!X;"]W;W)K<VAE971S+W-H
M965T,3$Q+GAM;%!+ 0(4 Q0    ( !0T3U@[TI'A904  )\>   :
M      " @2:  @!X;"]W;W)K<VAE971S+W-H965T,3$R+GAM;%!+ 0(4 Q0
M   ( !0T3UA/KW((A ,  -\7   -              "  <.% @!X;"]S='EL
M97,N>&UL4$L! A0#%     @ %#1/6)>*NQS     $P(   L
M ( !<HD" %]R96QS+RYR96QS4$L! A0#%     @ %#1/6)O]8/8$"   -$D
M  \              ( !6XH" 'AL+W=O<FMB;V]K+GAM;%!+ 0(4 Q0    (
M !0T3UBSZYZ ) ,  ,-!   :              "  8R2 @!X;"]?<F5L<R]W
M;W)K8F]O:RYX;6PN<F5L<U!+ 0(4 Q0    ( !0T3UCS<Y,[?P(  #L_   3
M              "  >B5 @!;0V]N=&5N=%]4>7!E<UTN>&UL4$L%!@    !X
- '@ #"$  )B8 @    $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>133
<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>134
<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>136
<FILENAME>FilingSummary.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version='1.0' encoding='utf-8'?>
<FilingSummary>
  <Version>3.24.0.1</Version>
  <ProcessingTime/>
  <ReportFormat>html</ReportFormat>
  <ContextCount>305</ContextCount>
  <ElementCount>529</ElementCount>
  <EntityCount>1</EntityCount>
  <FootnotesReported>true</FootnotesReported>
  <SegmentCount>103</SegmentCount>
  <ScenarioCount>0</ScenarioCount>
  <TuplesReported>false</TuplesReported>
  <UnitCount>19</UnitCount>
  <MyReports>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R1.htm</HtmlFileName>
      <LongName>0000001 - Document - Cover Page</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CoverPage</Role>
      <ShortName>Cover Page</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>1</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R2.htm</HtmlFileName>
      <LongName>0000002 - Document - Audit Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AuditInformation</Role>
      <ShortName>Audit Information</ShortName>
      <MenuCategory>Cover</MenuCategory>
      <Position>2</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R3.htm</HtmlFileName>
      <LongName>0000003 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF OPERATIONS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>3</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R4.htm</HtmlFileName>
      <LongName>0000004 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>4</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R5.htm</HtmlFileName>
      <LongName>0000005 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>5</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R6.htm</HtmlFileName>
      <LongName>0000006 - Statement - CONSOLIDATED BALANCE SHEETS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDBALANCESHEETS</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>6</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R7.htm</HtmlFileName>
      <LongName>0000007 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical</Role>
      <ShortName>CONSOLIDATED BALANCE SHEETS (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>7</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R8.htm</HtmlFileName>
      <LongName>0000008 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF CASH FLOWS</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>8</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R9.htm</HtmlFileName>
      <LongName>0000009 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>9</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R10.htm</HtmlFileName>
      <LongName>0000010 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical</Role>
      <ShortName>CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)</ShortName>
      <MenuCategory>Statements</MenuCategory>
      <Position>10</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R11.htm</HtmlFileName>
      <LongName>0000011 - Disclosure - Summary of Significant Accounting Policies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>11</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R12.htm</HtmlFileName>
      <LongName>0000012 - Disclosure - New Pronouncements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/NewPronouncements</Role>
      <ShortName>New Pronouncements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>12</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R13.htm</HtmlFileName>
      <LongName>0000013 - Disclosure - Fair Value Measurements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurements</Role>
      <ShortName>Fair Value Measurements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>13</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R14.htm</HtmlFileName>
      <LongName>0000014 - Disclosure - Cash, Cash Equivalents, and Investments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestments</Role>
      <ShortName>Cash, Cash Equivalents, and Investments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>14</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R15.htm</HtmlFileName>
      <LongName>0000015 - Disclosure - Inventories</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Inventories</Role>
      <ShortName>Inventories</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>15</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R16.htm</HtmlFileName>
      <LongName>0000017 - Disclosure - Leases Leases</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesLeases</Role>
      <ShortName>Leases Leases</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>16</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R17.htm</HtmlFileName>
      <LongName>0000018 - Disclosure - Goodwill</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/Goodwill</Role>
      <ShortName>Goodwill</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>17</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R18.htm</HtmlFileName>
      <LongName>0000019 - Disclosure - Intangible Assets</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssets</Role>
      <ShortName>Intangible Assets</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>18</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R19.htm</HtmlFileName>
      <LongName>0000020 - Disclosure - Accrued Expenses</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpenses</Role>
      <ShortName>Accrued Expenses</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>19</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R20.htm</HtmlFileName>
      <LongName>0000021 - Disclosure - Commitments and Contingencies</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsandContingencies</Role>
      <ShortName>Commitments and Contingencies</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>20</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R21.htm</HtmlFileName>
      <LongName>0000022 - Disclosure - Indemnification Provisions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IndemnificationProvisions</Role>
      <ShortName>Indemnification Provisions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>21</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R22.htm</HtmlFileName>
      <LongName>0000023 - Disclosure - Derivative Instruments</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstruments</Role>
      <ShortName>Derivative Instruments</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>22</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R23.htm</HtmlFileName>
      <LongName>0000024 - Disclosure - Revenue Recognition</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognition</Role>
      <ShortName>Revenue Recognition</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>23</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R24.htm</HtmlFileName>
      <LongName>0000025 - Disclosure - Shareholders' Equity</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ShareholdersEquity</Role>
      <ShortName>Shareholders' Equity</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>24</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R25.htm</HtmlFileName>
      <LongName>0000026 - Disclosure - Stock-Based Compensation</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensation</Role>
      <ShortName>Stock-Based Compensation</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>25</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R26.htm</HtmlFileName>
      <LongName>0000027 - Disclosure - Employee Savings Plan</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlan</Role>
      <ShortName>Employee Savings Plan</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>26</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R27.htm</HtmlFileName>
      <LongName>0000028 - Disclosure - Income Taxes</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxes</Role>
      <ShortName>Income Taxes</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>27</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R28.htm</HtmlFileName>
      <LongName>0000029 - Disclosure - Weighted Average Shares</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageShares</Role>
      <ShortName>Weighted Average Shares</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>28</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R29.htm</HtmlFileName>
      <LongName>0000030 - Disclosure - Segment and Geographic Information</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformation</Role>
      <ShortName>Segment and Geographic Information</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>29</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R30.htm</HtmlFileName>
      <LongName>0000031 - Disclosure - Business Acquisitions</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitions</Role>
      <ShortName>Business Acquisitions</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>30</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R31.htm</HtmlFileName>
      <LongName>0000032 - Disclosure - Loss from Fire</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LossfromFire</Role>
      <ShortName>Loss from Fire</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>31</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R32.htm</HtmlFileName>
      <LongName>0000033 - Disclosure - Restructuring Charges</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringCharges</Role>
      <ShortName>Restructuring Charges</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>32</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R33.htm</HtmlFileName>
      <LongName>0000034 - Disclosure - Subsequent Events</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEvents</Role>
      <ShortName>Subsequent Events</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>33</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R34.htm</HtmlFileName>
      <LongName>0000035 - Disclosure - Schedule II - Valuation and Qualifying Accounts</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts</Role>
      <ShortName>Schedule II - Valuation and Qualifying Accounts</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>34</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R35.htm</HtmlFileName>
      <LongName>995410 - Disclosure - Pay vs Performance Disclosure</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/PvpDisclosure</Role>
      <ShortName>Pay vs Performance Disclosure</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>35</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R36.htm</HtmlFileName>
      <LongName>995445 - Disclosure - Insider Trading Arrangements</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements</Role>
      <ShortName>Insider Trading Arrangements</ShortName>
      <MenuCategory>Notes</MenuCategory>
      <Position>36</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R37.htm</HtmlFileName>
      <LongName>9954471 - Disclosure - Summary of Significant Accounting Policies (Policies)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies</Role>
      <ShortName>Summary of Significant Accounting Policies (Policies)</ShortName>
      <MenuCategory>Policies</MenuCategory>
      <ParentRole>http://cognex.com/role/SummaryofSignificantAccountingPolicies</ParentRole>
      <Position>37</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R38.htm</HtmlFileName>
      <LongName>9954472 - Disclosure - Fair Value Measurements (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsTables</Role>
      <ShortName>Fair Value Measurements (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/FairValueMeasurements</ParentRole>
      <Position>38</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R39.htm</HtmlFileName>
      <LongName>9954473 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsTables</Role>
      <ShortName>Cash, Cash Equivalents, and Investments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/CashCashEquivalentsandInvestments</ParentRole>
      <Position>39</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R40.htm</HtmlFileName>
      <LongName>9954474 - Disclosure - Inventories (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesTables</Role>
      <ShortName>Inventories (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/Inventories</ParentRole>
      <Position>40</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R41.htm</HtmlFileName>
      <LongName>9954475 - Disclosure - Property, Plant, and Equipment (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentTables</Role>
      <ShortName>Property, Plant, and Equipment (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <Position>41</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R42.htm</HtmlFileName>
      <LongName>9954476 - Disclosure - Leases (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesTables</Role>
      <ShortName>Leases (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/LeasesLeases</ParentRole>
      <Position>42</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R43.htm</HtmlFileName>
      <LongName>9954477 - Disclosure - Goodwill (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/GoodwillTables</Role>
      <ShortName>Goodwill (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/Goodwill</ParentRole>
      <Position>43</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R44.htm</HtmlFileName>
      <LongName>9954478 - Disclosure - Intangible Assets (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsTables</Role>
      <ShortName>Intangible Assets (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/IntangibleAssets</ParentRole>
      <Position>44</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R45.htm</HtmlFileName>
      <LongName>9954479 - Disclosure - Accrued Expenses (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesTables</Role>
      <ShortName>Accrued Expenses (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/AccruedExpenses</ParentRole>
      <Position>45</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R46.htm</HtmlFileName>
      <LongName>9954480 - Disclosure - Derivative Instruments (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsTables</Role>
      <ShortName>Derivative Instruments (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/DerivativeInstruments</ParentRole>
      <Position>46</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R47.htm</HtmlFileName>
      <LongName>9954481 - Disclosure - Revenue Recognition (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionTables</Role>
      <ShortName>Revenue Recognition (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/RevenueRecognition</ParentRole>
      <Position>47</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R48.htm</HtmlFileName>
      <LongName>9954482 - Disclosure - Stock-Based Compensation (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationTables</Role>
      <ShortName>Stock-Based Compensation (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/StockBasedCompensation</ParentRole>
      <Position>48</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R49.htm</HtmlFileName>
      <LongName>9954483 - Disclosure - Income Taxes (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesTables</Role>
      <ShortName>Income Taxes (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/IncomeTaxes</ParentRole>
      <Position>49</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R50.htm</HtmlFileName>
      <LongName>9954484 - Disclosure - Weighted Average Shares (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesTables</Role>
      <ShortName>Weighted Average Shares (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/WeightedAverageShares</ParentRole>
      <Position>50</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R51.htm</HtmlFileName>
      <LongName>9954485 - Disclosure - Segment and Geographic Information (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationTables</Role>
      <ShortName>Segment and Geographic Information (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/SegmentandGeographicInformation</ParentRole>
      <Position>51</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R52.htm</HtmlFileName>
      <LongName>9954486 - Disclosure - Business Acquisitions - (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsTables</Role>
      <ShortName>Business Acquisitions - (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/BusinessAcquisitions</ParentRole>
      <Position>52</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R53.htm</HtmlFileName>
      <LongName>9954487 - Disclosure - Restructuring Charges (Tables)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesTables</Role>
      <ShortName>Restructuring Charges (Tables)</ShortName>
      <MenuCategory>Tables</MenuCategory>
      <ParentRole>http://cognex.com/role/RestructuringCharges</ParentRole>
      <Position>53</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R54.htm</HtmlFileName>
      <LongName>9954488 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail</Role>
      <ShortName>Summary of Significant Accounting Policies - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>54</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R55.htm</HtmlFileName>
      <LongName>9954489 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Intangible Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>55</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R56.htm</HtmlFileName>
      <LongName>9954490 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Warranty (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>56</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R57.htm</HtmlFileName>
      <LongName>9954491 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails</Role>
      <ShortName>Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>57</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R58.htm</HtmlFileName>
      <LongName>9954492 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Advertising Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>58</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R59.htm</HtmlFileName>
      <LongName>9954493 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails</Role>
      <ShortName>Summary of Significant Accounting Policies - Comprehensive Income (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>59</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R60.htm</HtmlFileName>
      <LongName>9954494 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail</Role>
      <ShortName>Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>60</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R61.htm</HtmlFileName>
      <LongName>9954495 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>61</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R62.htm</HtmlFileName>
      <LongName>9954496 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>62</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R63.htm</HtmlFileName>
      <LongName>9954497 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>63</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R64.htm</HtmlFileName>
      <LongName>9954498 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>64</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R65.htm</HtmlFileName>
      <LongName>9954499 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails</Role>
      <ShortName>Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>65</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R66.htm</HtmlFileName>
      <LongName>9954500 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail</Role>
      <ShortName>Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>66</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R67.htm</HtmlFileName>
      <LongName>9954501 - Disclosure - Inventories - Inventories (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/InventoriesInventoriesDetail</Role>
      <ShortName>Inventories - Inventories (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>67</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R68.htm</HtmlFileName>
      <LongName>9954502 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail</Role>
      <ShortName>Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>68</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R69.htm</HtmlFileName>
      <LongName>9954503 - Disclosure - Property, Plant and Equipment - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails</Role>
      <ShortName>Property, Plant and Equipment - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>69</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R70.htm</HtmlFileName>
      <LongName>9954504 - Disclosure - Leases (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesDetails</Role>
      <ShortName>Leases (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/LeasesTables</ParentRole>
      <Position>70</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R71.htm</HtmlFileName>
      <LongName>9954505 - Disclosure - Leases - Schedule of Payments (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LeasesScheduleofPaymentsDetails</Role>
      <ShortName>Leases - Schedule of Payments (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>71</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R72.htm</HtmlFileName>
      <LongName>9954506 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail</Role>
      <ShortName>Goodwill - Changes in the Carrying Value of Goodwill (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>72</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R73.htm</HtmlFileName>
      <LongName>9954507 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail</Role>
      <ShortName>Intangible Assets - Amortized Intangible Assets (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>73</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R74.htm</HtmlFileName>
      <LongName>9954508 - Disclosure - Intangible Assets - Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsNarrativeDetails</Role>
      <ShortName>Intangible Assets - Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>74</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R75.htm</HtmlFileName>
      <LongName>9954509 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail</Role>
      <ShortName>Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>75</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R76.htm</HtmlFileName>
      <LongName>9954510 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail</Role>
      <ShortName>Accrued Expenses - Constituents of Accrued Expenses (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>76</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R77.htm</HtmlFileName>
      <LongName>9954511 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail</Role>
      <ShortName>Accrued Expenses - Changes in Warranty Obligations (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>77</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R78.htm</HtmlFileName>
      <LongName>9954512 - Disclosure - Commitments and Contingencies - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail</Role>
      <ShortName>Commitments and Contingencies - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>78</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R79.htm</HtmlFileName>
      <LongName>9954513 - Disclosure - Derivative Instruments - Additional Details (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails</Role>
      <ShortName>Derivative Instruments - Additional Details (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>79</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R80.htm</HtmlFileName>
      <LongName>9954514 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails</Role>
      <ShortName>Derivative Instruments - Outstanding Forward Contracts (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>80</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R81.htm</HtmlFileName>
      <LongName>9954515 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails</Role>
      <ShortName>Derivative Instruments - Balance Sheet Location (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>81</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R82.htm</HtmlFileName>
      <LongName>9954516 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails</Role>
      <ShortName>Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>82</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R83.htm</HtmlFileName>
      <LongName>9954517 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails</Role>
      <ShortName>Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>83</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R84.htm</HtmlFileName>
      <LongName>9954518 - Disclosure - Revenue Recognition - Narratives (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionNarrativesDetails</Role>
      <ShortName>Revenue Recognition - Narratives (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>84</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R85.htm</HtmlFileName>
      <LongName>9954519 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails</Role>
      <ShortName>Revenue Recognition - Disaggregation by Geography and Type (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>85</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R86.htm</HtmlFileName>
      <LongName>9954520 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails</Role>
      <ShortName>Revenue Recognition - Allowance for Credit Loss (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>86</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R87.htm</HtmlFileName>
      <LongName>9954521 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails</Role>
      <ShortName>Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>87</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R88.htm</HtmlFileName>
      <LongName>9954522 - Disclosure - Shareholders' Equity - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail</Role>
      <ShortName>Shareholders' Equity - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>88</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R89.htm</HtmlFileName>
      <LongName>9954523 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>89</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R90.htm</HtmlFileName>
      <LongName>9954524 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>90</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R91.htm</HtmlFileName>
      <LongName>9954525 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>91</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R92.htm</HtmlFileName>
      <LongName>9954526 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>92</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R93.htm</HtmlFileName>
      <LongName>9954527 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail</Role>
      <ShortName>Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>93</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R94.htm</HtmlFileName>
      <LongName>9954528 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails</Role>
      <ShortName>Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>94</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R95.htm</HtmlFileName>
      <LongName>9954529 - Disclosure - Employee Savings Plan - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail</Role>
      <ShortName>Employee Savings Plan - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>95</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R96.htm</HtmlFileName>
      <LongName>9954530 - Disclosure - Income Taxes - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesAdditionalInformationDetails</Role>
      <ShortName>Income Taxes - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>96</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R97.htm</HtmlFileName>
      <LongName>9954531 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails</Role>
      <ShortName>Income Taxes - Constituents of Provision for Income Taxes (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>97</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R98.htm</HtmlFileName>
      <LongName>9954532 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails</Role>
      <ShortName>Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>98</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R99.htm</HtmlFileName>
      <LongName>9954533 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails</Role>
      <ShortName>Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>99</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R100.htm</HtmlFileName>
      <LongName>9954534 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails</Role>
      <ShortName>Income Taxes - Constituents of Deferred Tax Assets (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>100</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R101.htm</HtmlFileName>
      <LongName>9954535 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail</Role>
      <ShortName>Weighted Average Shares - Calculation of Weighted Average Shares (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>101</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R102.htm</HtmlFileName>
      <LongName>9954536 - Disclosure - Weighted Average Shares - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail</Role>
      <ShortName>Weighted Average Shares - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>102</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R103.htm</HtmlFileName>
      <LongName>9954537 - Disclosure - Segment and Geographic Information - Additional Information (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail</Role>
      <ShortName>Segment and Geographic Information - Additional Information (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>103</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R104.htm</HtmlFileName>
      <LongName>9954538 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail</Role>
      <ShortName>Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>104</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R105.htm</HtmlFileName>
      <LongName>9954539 - Disclosure - Business Acquisitions - Moritex Narrative (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails</Role>
      <ShortName>Business Acquisitions - Moritex Narrative (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>105</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R106.htm</HtmlFileName>
      <LongName>9954540 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails</Role>
      <ShortName>Business Acquisitions - Moritex Purchase Price Allocation (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>106</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R107.htm</HtmlFileName>
      <LongName>9954541 - Disclosure - Loss from Fire (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/LossfromFireDetails</Role>
      <ShortName>Loss from Fire (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/LossfromFire</ParentRole>
      <Position>107</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R108.htm</HtmlFileName>
      <LongName>9954542 - Disclosure - Restructuring Charges - Additional Information (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesAdditionalInformationDetails</Role>
      <ShortName>Restructuring Charges - Additional Information (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>108</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R109.htm</HtmlFileName>
      <LongName>9954543 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related Costs (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails</Role>
      <ShortName>Restructuring Charges - Schedule of Restructuring and Related Costs (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>109</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R110.htm</HtmlFileName>
      <LongName>9954544 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails</Role>
      <ShortName>Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>110</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R111.htm</HtmlFileName>
      <LongName>9954545 - Disclosure - Subsequent Events - (Details)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/SubsequentEventsDetails</Role>
      <ShortName>Subsequent Events - (Details)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <ParentRole>http://cognex.com/role/SubsequentEvents</ParentRole>
      <Position>111</Position>
    </Report>
    <Report instance="cgnx-20231231.htm">
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <HtmlFileName>R112.htm</HtmlFileName>
      <LongName>9954546 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)</LongName>
      <ReportType>Sheet</ReportType>
      <Role>http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail</Role>
      <ShortName>Schedule II -Valuation and Qualifying Accounts (Detail)</ShortName>
      <MenuCategory>Details</MenuCategory>
      <Position>112</Position>
    </Report>
    <Report>
      <IsDefault>false</IsDefault>
      <HasEmbeddedReports>false</HasEmbeddedReports>
      <LongName>All Reports</LongName>
      <ReportType>Book</ReportType>
      <ShortName>All Reports</ShortName>
    </Report>
  </MyReports>
  <InputFiles>
    <File doctype="10-K" isDefinitelyFs="true" isUsgaap="true" original="cgnx-20231231.htm">cgnx-20231231.htm</File>
    <File>cgnx-20231231.xsd</File>
    <File>cgnx-20231231_cal.xml</File>
    <File>cgnx-20231231_def.xml</File>
    <File>cgnx-20231231_lab.xml</File>
    <File>cgnx-20231231_pre.xml</File>
  </InputFiles>
  <SupplementalFiles>
    <File>cgnx-20231231_g1.jpg</File>
  </SupplementalFiles>
  <BaseTaxonomies>
    <BaseTaxonomy items="1">http://fasb.org/srt/2023</BaseTaxonomy>
    <BaseTaxonomy items="1351">http://fasb.org/us-gaap/2023</BaseTaxonomy>
    <BaseTaxonomy items="39">http://xbrl.sec.gov/dei/2023</BaseTaxonomy>
    <BaseTaxonomy items="11">http://xbrl.sec.gov/ecd/2023</BaseTaxonomy>
  </BaseTaxonomies>
  <HasPresentationLinkbase>true</HasPresentationLinkbase>
  <HasCalculationLinkbase>true</HasCalculationLinkbase>
</FilingSummary>
</XML>
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>JSON
<SEQUENCE>139
<FILENAME>MetaLinks.json
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
{
 "version": "2.2",
 "instance": {
  "cgnx-20231231.htm": {
   "nsprefix": "cgnx",
   "nsuri": "http://cognex.com/20231231",
   "dts": {
    "inline": {
     "local": [
      "cgnx-20231231.htm"
     ]
    },
    "schema": {
     "local": [
      "cgnx-20231231.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/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/currency/2023/currency-2023.xsd",
      "https://xbrl.sec.gov/dei/2023/dei-2023.xsd",
      "https://xbrl.sec.gov/ecd/2023/ecd-2023.xsd"
     ]
    },
    "calculationLink": {
     "local": [
      "cgnx-20231231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "cgnx-20231231_def.xml"
     ]
    },
    "labelLink": {
     "local": [
      "cgnx-20231231_lab.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "cgnx-20231231_pre.xml"
     ]
    }
   },
   "keyStandard": 454,
   "keyCustom": 75,
   "axisStandard": 34,
   "axisCustom": 1,
   "memberStandard": 68,
   "memberCustom": 32,
   "hidden": {
    "total": 44,
    "http://cognex.com/20231231": 4,
    "http://xbrl.sec.gov/dei/2023": 7,
    "http://fasb.org/us-gaap/2023": 32,
    "http://xbrl.sec.gov/ecd/2023": 1
   },
   "contextCount": 305,
   "entityCount": 1,
   "segmentCount": 103,
   "elementCount": 901,
   "unitCount": 19,
   "baseTaxonomies": {
    "http://fasb.org/us-gaap/2023": 1351,
    "http://xbrl.sec.gov/dei/2023": 39,
    "http://xbrl.sec.gov/ecd/2023": 11,
    "http://fasb.org/srt/2023": 1
   },
   "report": {
    "R1": {
     "role": "http://cognex.com/role/CoverPage",
     "longName": "0000001 - Document - Cover Page",
     "shortName": "Cover Page",
     "isDefault": "true",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "1",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:DocumentType",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R2": {
     "role": "http://cognex.com/role/AuditInformation",
     "longName": "0000002 - Document - Audit Information",
     "shortName": "Audit Information",
     "isDefault": "false",
     "groupType": "document",
     "subGroupType": "",
     "menuCat": "Cover",
     "order": "2",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "dei:AuditorName",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R3": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
     "longName": "0000003 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "3",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R4": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
     "longName": "0000004 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "4",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R5": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
     "longName": "0000005 - Statement - CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "shortName": "CONSOLIDATED STATEMENTS OF COMPREHENSIVE INCOME (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "5",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R6": {
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
     "longName": "0000006 - Statement - CONSOLIDATED BALANCE SHEETS",
     "shortName": "CONSOLIDATED BALANCE SHEETS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "6",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:CashAndCashEquivalentsAtCarryingValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AccountsReceivableNetCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R7": {
     "role": "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
     "longName": "0000007 - Statement - CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "shortName": "CONSOLIDATED BALANCE SHEETS (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "7",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R8": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
     "longName": "0000008 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "8",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:StockOptionPlanExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R9": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
     "longName": "0000009 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "",
     "menuCat": "Statements",
     "order": "9",
     "firstAnchor": {
      "contextRef": "c-10",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-10",
      "name": "us-gaap:StockholdersEquity",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R10": {
     "role": "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical",
     "longName": "0000010 - Statement - CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "shortName": "CONSOLIDATED STATEMENTS OF SHAREHOLDERS' EQUITY (Parenthetical)",
     "isDefault": "false",
     "groupType": "statement",
     "subGroupType": "parenthetical",
     "menuCat": "Statements",
     "order": "10",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R11": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPolicies",
     "longName": "0000011 - Disclosure - Summary of Significant Accounting Policies",
     "shortName": "Summary of Significant Accounting Policies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "11",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SignificantAccountingPoliciesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R12": {
     "role": "http://cognex.com/role/NewPronouncements",
     "longName": "0000012 - Disclosure - New Pronouncements",
     "shortName": "New Pronouncements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "12",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock",
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R13": {
     "role": "http://cognex.com/role/FairValueMeasurements",
     "longName": "0000013 - Disclosure - Fair Value Measurements",
     "shortName": "Fair Value Measurements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "13",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:FairValueDisclosuresTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R14": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestments",
     "longName": "0000014 - Disclosure - Cash, Cash Equivalents, and Investments",
     "shortName": "Cash, Cash Equivalents, and Investments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "14",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R15": {
     "role": "http://cognex.com/role/Inventories",
     "longName": "0000015 - Disclosure - Inventories",
     "shortName": "Inventories",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "15",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:InventoryDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R16": {
     "role": "http://cognex.com/role/LeasesLeases",
     "longName": "0000017 - Disclosure - Leases Leases",
     "shortName": "Leases Leases",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "16",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeasesTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R17": {
     "role": "http://cognex.com/role/Goodwill",
     "longName": "0000018 - Disclosure - Goodwill",
     "shortName": "Goodwill",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "17",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R18": {
     "role": "http://cognex.com/role/IntangibleAssets",
     "longName": "0000019 - Disclosure - Intangible Assets",
     "shortName": "Intangible Assets",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "18",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IntangibleAssetsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R19": {
     "role": "http://cognex.com/role/AccruedExpenses",
     "longName": "0000020 - Disclosure - Accrued Expenses",
     "shortName": "Accrued Expenses",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "19",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R20": {
     "role": "http://cognex.com/role/CommitmentsandContingencies",
     "longName": "0000021 - Disclosure - Commitments and Contingencies",
     "shortName": "Commitments and Contingencies",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "20",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R21": {
     "role": "http://cognex.com/role/IndemnificationProvisions",
     "longName": "0000022 - Disclosure - Indemnification Provisions",
     "shortName": "Indemnification Provisions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "21",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IndemnificationProvisionsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R22": {
     "role": "http://cognex.com/role/DerivativeInstruments",
     "longName": "0000023 - Disclosure - Derivative Instruments",
     "shortName": "Derivative Instruments",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "22",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R23": {
     "role": "http://cognex.com/role/RevenueRecognition",
     "longName": "0000024 - Disclosure - Revenue Recognition",
     "shortName": "Revenue Recognition",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "23",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R24": {
     "role": "http://cognex.com/role/ShareholdersEquity",
     "longName": "0000025 - Disclosure - Shareholders' Equity",
     "shortName": "Shareholders' Equity",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "24",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R25": {
     "role": "http://cognex.com/role/StockBasedCompensation",
     "longName": "0000026 - Disclosure - Stock-Based Compensation",
     "shortName": "Stock-Based Compensation",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "25",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R26": {
     "role": "http://cognex.com/role/EmployeeSavingsPlan",
     "longName": "0000027 - Disclosure - Employee Savings Plan",
     "shortName": "Employee Savings Plan",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "26",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R27": {
     "role": "http://cognex.com/role/IncomeTaxes",
     "longName": "0000028 - Disclosure - Income Taxes",
     "shortName": "Income Taxes",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "27",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R28": {
     "role": "http://cognex.com/role/WeightedAverageShares",
     "longName": "0000029 - Disclosure - Weighted Average Shares",
     "shortName": "Weighted Average Shares",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "28",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EarningsPerShareTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R29": {
     "role": "http://cognex.com/role/SegmentandGeographicInformation",
     "longName": "0000030 - Disclosure - Segment and Geographic Information",
     "shortName": "Segment and Geographic Information",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "29",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SegmentReportingDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R30": {
     "role": "http://cognex.com/role/BusinessAcquisitions",
     "longName": "0000031 - Disclosure - Business Acquisitions",
     "shortName": "Business Acquisitions",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "30",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:BusinessCombinationDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R31": {
     "role": "http://cognex.com/role/LossfromFire",
     "longName": "0000032 - Disclosure - Loss from Fire",
     "shortName": "Loss from Fire",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "31",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:CatastropheTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:CatastropheTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R32": {
     "role": "http://cognex.com/role/RestructuringCharges",
     "longName": "0000033 - Disclosure - Restructuring Charges",
     "shortName": "Restructuring Charges",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "32",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R33": {
     "role": "http://cognex.com/role/SubsequentEvents",
     "longName": "0000034 - Disclosure - Subsequent Events",
     "shortName": "Subsequent Events",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "33",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:SubsequentEventsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R34": {
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts",
     "longName": "0000035 - Disclosure - Schedule II - Valuation and Qualifying Accounts",
     "shortName": "Schedule II - Valuation and Qualifying Accounts",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "34",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R35": {
     "role": "http://xbrl.sec.gov/ecd/role/PvpDisclosure",
     "longName": "995410 - Disclosure - Pay vs Performance Disclosure",
     "shortName": "Pay vs Performance Disclosure",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "35",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NetIncomeLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R36": {
     "role": "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
     "longName": "995445 - Disclosure - Insider Trading Arrangements",
     "shortName": "Insider Trading Arrangements",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "",
     "menuCat": "Notes",
     "order": "36",
     "firstAnchor": {
      "contextRef": "c-186",
      "name": "ecd:NonRule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ecd:MtrlTermsOfTrdArrTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-186",
      "name": "ecd:NonRule10b51ArrAdoptedFlag",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ecd:MtrlTermsOfTrdArrTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R37": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies",
     "longName": "9954471 - Disclosure - Summary of Significant Accounting Policies (Policies)",
     "shortName": "Summary of Significant Accounting Policies (Policies)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "policies",
     "menuCat": "Policies",
     "order": "37",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:NatureOfOperationsPolicyTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R38": {
     "role": "http://cognex.com/role/FairValueMeasurementsTables",
     "longName": "9954472 - Disclosure - Fair Value Measurements (Tables)",
     "shortName": "Fair Value Measurements (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "38",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R39": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables",
     "longName": "9954473 - Disclosure - Cash, Cash Equivalents, and Investments (Tables)",
     "shortName": "Cash, Cash Equivalents, and Investments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "39",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R40": {
     "role": "http://cognex.com/role/InventoriesTables",
     "longName": "9954474 - Disclosure - Inventories (Tables)",
     "shortName": "Inventories (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "40",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R41": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentTables",
     "longName": "9954475 - Disclosure - Property, Plant, and Equipment (Tables)",
     "shortName": "Property, Plant, and Equipment (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "41",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R42": {
     "role": "http://cognex.com/role/LeasesTables",
     "longName": "9954476 - Disclosure - Leases (Tables)",
     "shortName": "Leases (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "42",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R43": {
     "role": "http://cognex.com/role/GoodwillTables",
     "longName": "9954477 - Disclosure - Goodwill (Tables)",
     "shortName": "Goodwill (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "43",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfGoodwillTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R44": {
     "role": "http://cognex.com/role/IntangibleAssetsTables",
     "longName": "9954478 - Disclosure - Intangible Assets (Tables)",
     "shortName": "Intangible Assets (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "44",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R45": {
     "role": "http://cognex.com/role/AccruedExpensesTables",
     "longName": "9954479 - Disclosure - Accrued Expenses (Tables)",
     "shortName": "Accrued Expenses (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "45",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R46": {
     "role": "http://cognex.com/role/DerivativeInstrumentsTables",
     "longName": "9954480 - Disclosure - Derivative Instruments (Tables)",
     "shortName": "Derivative Instruments (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "46",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R47": {
     "role": "http://cognex.com/role/RevenueRecognitionTables",
     "longName": "9954481 - Disclosure - Revenue Recognition (Tables)",
     "shortName": "Revenue Recognition (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "47",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DisaggregationOfRevenueTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R48": {
     "role": "http://cognex.com/role/StockBasedCompensationTables",
     "longName": "9954482 - Disclosure - Stock-Based Compensation (Tables)",
     "shortName": "Stock-Based Compensation (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "48",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R49": {
     "role": "http://cognex.com/role/IncomeTaxesTables",
     "longName": "9954483 - Disclosure - Income Taxes (Tables)",
     "shortName": "Income Taxes (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "49",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R50": {
     "role": "http://cognex.com/role/WeightedAverageSharesTables",
     "longName": "9954484 - Disclosure - Weighted Average Shares (Tables)",
     "shortName": "Weighted Average Shares (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "50",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R51": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationTables",
     "longName": "9954485 - Disclosure - Segment and Geographic Information (Tables)",
     "shortName": "Segment and Geographic Information (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "51",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R52": {
     "role": "http://cognex.com/role/BusinessAcquisitionsTables",
     "longName": "9954486 - Disclosure - Business Acquisitions - (Tables)",
     "shortName": "Business Acquisitions - (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "52",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R53": {
     "role": "http://cognex.com/role/RestructuringChargesTables",
     "longName": "9954487 - Disclosure - Restructuring Charges (Tables)",
     "shortName": "Restructuring Charges (Tables)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "tables",
     "menuCat": "Tables",
     "order": "53",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R54": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
     "longName": "9954488 - Disclosure - Summary of Significant Accounting Policies - Additional Information (Detail)",
     "shortName": "Summary of Significant Accounting Policies - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "54",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:InvestmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "us-gaap:InvestmentPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R55": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
     "longName": "9954489 - Disclosure - Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "shortName": "Summary of Significant Accounting Policies - Intangible Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "55",
     "firstAnchor": {
      "contextRef": "c-45",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-45",
      "name": "us-gaap:FiniteLivedIntangibleAssetUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R56": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails",
     "longName": "9954490 - Disclosure - Summary of Significant Accounting Policies - Warranty (Details)",
     "shortName": "Summary of Significant Accounting Policies - Warranty (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "56",
     "firstAnchor": {
      "contextRef": "c-50",
      "name": "cgnx:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-50",
      "name": "cgnx:ProductWarrantyPeriod",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "us-gaap:StandardProductWarrantyPolicy",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R57": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
     "longName": "9954491 - Disclosure - Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "shortName": "Summary of Significant Accounting Policies Summary of Significant Accounting Policies - Revenue Recognition (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "57",
     "firstAnchor": {
      "contextRef": "c-49",
      "name": "cgnx:RevenuePaymentTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-49",
      "name": "cgnx:RevenuePaymentTerms",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R58": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails",
     "longName": "9954492 - Disclosure - Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "shortName": "Summary of Significant Accounting Policies - Advertising Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "58",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:AdvertisingExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:AdvertisingCostsPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R59": {
     "role": "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails",
     "longName": "9954493 - Disclosure - Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "shortName": "Summary of Significant Accounting Policies - Comprehensive Income (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "59",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "us-gaap:ComprehensiveIncomePolicyPolicyTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R60": {
     "role": "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail",
     "longName": "9954494 - Disclosure - Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "shortName": "Fair Value Measurements - Assets and Liabilities Measured at Fair Value on a Recurring Basis (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "60",
     "firstAnchor": {
      "contextRef": "c-56",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-56",
      "name": "cgnx:MoneyMarketInstrumentsFairValueDisclosure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R61": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
     "longName": "9954495 - Disclosure - Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Components of Cash, Cash Equivalents and Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "61",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:Cash",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R62": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
     "longName": "9954496 - Disclosure - Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "62",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "cgnx:DueFromForeignBanks",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "cgnx:DueFromForeignBanks",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R63": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
     "longName": "9954497 - Disclosure - Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Amortized Cost to Fair Value (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "63",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R64": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail",
     "longName": "9954498 - Disclosure - Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Gross Unrealized Losses and Fair Value for Available-for-Sale Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "64",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R65": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails",
     "longName": "9954499 - Disclosure - Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)",
     "shortName": "Cash, Cash Equivalents, and Investments - Realized Gain (Loss) on Investments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "65",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:DebtSecuritiesAvailableForSaleRealizedGain",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RealizedGainLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RealizedInvestmentGainsLosses",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:RealizedGainLossOnInvestmentsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R66": {
     "role": "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
     "longName": "9954500 - Disclosure - Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "shortName": "Cash, Cash Equivalents and Investments - Effective Maturity Dates of Available-for-Sale Investments (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "66",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R67": {
     "role": "http://cognex.com/role/InventoriesInventoriesDetail",
     "longName": "9954501 - Disclosure - Inventories - Inventories (Detail)",
     "shortName": "Inventories - Inventories (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "67",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:InventoryRawMaterialsNetOfReserves",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R68": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
     "longName": "9954502 - Disclosure - Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "shortName": "Property, Plant, and Equipment - Property, Plant, and Equipment (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "68",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:PropertyPlantAndEquipmentGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R69": {
     "role": "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
     "longName": "9954503 - Disclosure - Property, Plant and Equipment - Additional Information (Details)",
     "shortName": "Property, Plant and Equipment - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "69",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PropertyPlantAndEquipmentDisposals",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R70": {
     "role": "http://cognex.com/role/LeasesDetails",
     "longName": "9954504 - Disclosure - Leases (Details)",
     "shortName": "Leases (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "70",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:OperatingLeaseExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R71": {
     "role": "http://cognex.com/role/LeasesScheduleofPaymentsDetails",
     "longName": "9954505 - Disclosure - Leases - Schedule of Payments (Details)",
     "shortName": "Leases - Schedule of Payments (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "71",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R72": {
     "role": "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
     "longName": "9954506 - Disclosure - Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "shortName": "Goodwill - Changes in the Carrying Value of Goodwill (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "72",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:GoodwillForeignCurrencyTranslationGainLoss",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfGoodwillTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R73": {
     "role": "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
     "longName": "9954507 - Disclosure - Intangible Assets - Amortized Intangible Assets (Detail)",
     "shortName": "Intangible Assets - Amortized Intangible Assets (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "73",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:FiniteLivedIntangibleAssetsGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R74": {
     "role": "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
     "longName": "9954508 - Disclosure - Intangible Assets - Narrative (Details)",
     "shortName": "Intangible Assets - Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "74",
     "firstAnchor": {
      "contextRef": "c-126",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-127",
      "name": "us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R75": {
     "role": "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail",
     "longName": "9954509 - Disclosure - Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "shortName": "Intangible Assets - Estimated Amortization Expense Succeeding Fiscal Years (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "75",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R76": {
     "role": "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
     "longName": "9954510 - Disclosure - Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "shortName": "Accrued Expenses - Constituents of Accrued Expenses (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "76",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R77": {
     "role": "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail",
     "longName": "9954511 - Disclosure - Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "shortName": "Accrued Expenses - Changes in Warranty Obligations (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "77",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:ProductWarrantyAccrual",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-10",
      "name": "us-gaap:ProductWarrantyAccrual",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R78": {
     "role": "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail",
     "longName": "9954512 - Disclosure - Commitments and Contingencies - Additional Information (Detail)",
     "shortName": "Commitments and Contingencies - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "78",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R79": {
     "role": "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
     "longName": "9954513 - Disclosure - Derivative Instruments - Additional Details (Details)",
     "shortName": "Derivative Instruments - Additional Details (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "79",
     "firstAnchor": {
      "contextRef": "c-130",
      "name": "us-gaap:DerivativeNotionalAmount",
      "unitRef": "jpy",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-130",
      "name": "us-gaap:DerivativeNotionalAmount",
      "unitRef": "jpy",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R80": {
     "role": "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails",
     "longName": "9954514 - Disclosure - Derivative Instruments - Outstanding Forward Contracts (Details)",
     "shortName": "Derivative Instruments - Outstanding Forward Contracts (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "80",
     "firstAnchor": {
      "contextRef": "c-132",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "unitRef": "eur",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-132",
      "name": "us-gaap:DerivativeAssetNotionalAmount",
      "unitRef": "eur",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R81": {
     "role": "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
     "longName": "9954515 - Disclosure - Derivative Instruments - Balance Sheet Location (Details)",
     "shortName": "Derivative Instruments - Balance Sheet Location (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "81",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-150",
      "name": "us-gaap:DerivativeAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R82": {
     "role": "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
     "longName": "9954516 - Disclosure - Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "shortName": "Derivative Instruments - Assets and liabilities presented on a net basis due to the right of offset (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "82",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:DerivativeFairValueOfDerivativeAsset",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:OffsettingAssetsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R83": {
     "role": "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
     "longName": "9954517 - Disclosure - Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "shortName": "Derivative Instruments - Gain (Loss) Recognized in Other Comprehensive Income (Loss) (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "83",
     "firstAnchor": {
      "contextRef": "c-129",
      "name": "us-gaap:DerivativeGainLossOnDerivativeNet",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R84": {
     "role": "http://cognex.com/role/RevenueRecognitionNarrativesDetails",
     "longName": "9954518 - Disclosure - Revenue Recognition - Narratives (Details)",
     "shortName": "Revenue Recognition - Narratives (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "84",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:CapitalizedContractCostGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:CapitalizedContractCostGross",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R85": {
     "role": "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
     "longName": "9954519 - Disclosure - Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "shortName": "Revenue Recognition - Disaggregation by Geography and Type (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "85",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-166",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R86": {
     "role": "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails",
     "longName": "9954520 - Disclosure - Revenue Recognition - Allowance for Credit Loss (Details)",
     "shortName": "Revenue Recognition - Allowance for Credit Loss (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "86",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R87": {
     "role": "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails",
     "longName": "9954521 - Disclosure - Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "shortName": "Revenue Recognition - Deferred Revenue and Customer Deposits Rollforward (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "87",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-9",
      "name": "us-gaap:ContractWithCustomerLiabilityCurrent",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R88": {
     "role": "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail",
     "longName": "9954522 - Disclosure - Shareholders' Equity - Additional Information (Detail)",
     "shortName": "Shareholders' Equity - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "88",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-173",
      "name": "us-gaap:CommonStockSharesAuthorized",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R89": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
     "longName": "9954523 - Disclosure - Stock-Based Compensation Expense - Additional Information (Detail)",
     "shortName": "Stock-Based Compensation Expense - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "89",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "cgnx:NumberOfGroupsWithinEmployeePopulation",
      "unitRef": "group",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R90": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail",
     "longName": "9954524 - Disclosure - Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "shortName": "Stock-Based Compensation Expense - Summary of Stock Option Activity (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "90",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R91": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
     "longName": "9954525 - Disclosure - Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "shortName": "Stock-Based Compensation Expense - Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "91",
     "firstAnchor": {
      "contextRef": "c-194",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-194",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R92": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
     "longName": "9954526 - Disclosure - Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "shortName": "Stock-Based Compensation Expense - Summary of Restricted Stock Option Activity (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "92",
     "firstAnchor": {
      "contextRef": "c-201",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-201",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R93": {
     "role": "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail",
     "longName": "9954527 - Disclosure - Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "shortName": "Stock-Based Compensation Expense - Stock-Based Compensation Expense (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "93",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-212",
      "name": "us-gaap:AllocatedShareBasedCompensationExpense",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R94": {
     "role": "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
     "longName": "9954528 - Disclosure - Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "shortName": "Stock-Based Compensation - Schedule of Performance Restricted Stock Units (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "94",
     "firstAnchor": {
      "contextRef": "c-207",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-208",
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R95": {
     "role": "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail",
     "longName": "9954529 - Disclosure - Employee Savings Plan - Additional Information (Detail)",
     "shortName": "Employee Savings Plan - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "95",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan",
      "unitRef": null,
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": null,
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R96": {
     "role": "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
     "longName": "9954530 - Disclosure - Income Taxes - Additional Information (Details)",
     "shortName": "Income Taxes - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "96",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R97": {
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails",
     "longName": "9954531 - Disclosure - Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "shortName": "Income Taxes - Constituents of Provision for Income Taxes (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "97",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R98": {
     "role": "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails",
     "longName": "9954532 - Disclosure - Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "shortName": "Income Taxes - Reconciliation of the United States Federal Statutory Corporate Tax Rate to Company's Effective Tax Rate or Income Tax Provision (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "98",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
      "unitRef": "number",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "2",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R99": {
     "role": "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails",
     "longName": "9954533 - Disclosure - Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "shortName": "Income Taxes - Changes in the Reserve for Income Taxes, Excluding Interest and Penalties (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "99",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-10",
      "name": "us-gaap:UnrecognizedTaxBenefits",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:SummaryOfIncomeTaxContingenciesTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R100": {
     "role": "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails",
     "longName": "9954534 - Disclosure - Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "shortName": "Income Taxes - Constituents of Deferred Tax Assets (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "100",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R101": {
     "role": "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail",
     "longName": "9954535 - Disclosure - Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "shortName": "Weighted Average Shares - Calculation of Weighted Average Shares (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "101",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:WeightedAverageNumberOfSharesOutstandingBasic",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R102": {
     "role": "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
     "longName": "9954536 - Disclosure - Weighted Average Shares - Additional Information (Detail)",
     "shortName": "Weighted Average Shares - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "102",
     "firstAnchor": {
      "contextRef": "c-230",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-230",
      "name": "us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
      "unitRef": "shares",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R103": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail",
     "longName": "9954537 - Disclosure - Segment and Geographic Information - Additional Information (Detail)",
     "shortName": "Segment and Geographic Information - Additional Information (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "103",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:NumberOfReportableSegments",
      "unitRef": "segment",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R104": {
     "role": "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail",
     "longName": "9954538 - Disclosure - Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "shortName": "Segment and Geographic Information - Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "104",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:DisaggregationOfRevenueTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:NoncurrentAssets",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R105": {
     "role": "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
     "longName": "9954539 - Disclosure - Business Acquisitions - Moritex Narrative (Details)",
     "shortName": "Business Acquisitions - Moritex Narrative (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "105",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-89",
      "name": "cgnx:BusinessCombinationEnterpriseValue",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-6",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R106": {
     "role": "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
     "longName": "9954540 - Disclosure - Business Acquisitions - Moritex Purchase Price Allocation (Details)",
     "shortName": "Business Acquisitions - Moritex Purchase Price Allocation (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "106",
     "firstAnchor": {
      "contextRef": "c-7",
      "name": "us-gaap:Goodwill",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-89",
      "name": "us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R107": {
     "role": "http://cognex.com/role/LossfromFireDetails",
     "longName": "9954541 - Disclosure - Loss from Fire (Details)",
     "shortName": "Loss from Fire (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "107",
     "firstAnchor": {
      "contextRef": "c-262",
      "name": "us-gaap:LossFromCatastrophes",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-262",
      "name": "us-gaap:LossFromCatastrophes",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R108": {
     "role": "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails",
     "longName": "9954542 - Disclosure - Restructuring Charges - Additional Information (Details)",
     "shortName": "Restructuring Charges - Additional Information (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "108",
     "firstAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated",
      "unitRef": "employees",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-4",
      "name": "us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated",
      "unitRef": "employees",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "0",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R109": {
     "role": "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails",
     "longName": "9954543 - Disclosure - Restructuring Charges - Schedule of Restructuring and Related Costs (Details)",
     "shortName": "Restructuring Charges - Schedule of Restructuring and Related Costs (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "109",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringCharges",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": null
    },
    "R110": {
     "role": "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
     "longName": "9954544 - Disclosure - Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)",
     "shortName": "Restructuring Charges - Schedule of Restructuring Reserve by Type of Cost (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "110",
     "firstAnchor": {
      "contextRef": "c-1",
      "name": "us-gaap:RestructuringCharges",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-271",
      "name": "us-gaap:RestructuringCharges",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    },
    "R111": {
     "role": "http://cognex.com/role/SubsequentEventsDetails",
     "longName": "9954545 - Disclosure - Subsequent Events - (Details)",
     "shortName": "Subsequent Events - (Details)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "111",
     "firstAnchor": {
      "contextRef": "c-281",
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     },
     "uniqueAnchor": {
      "contextRef": "c-281",
      "name": "us-gaap:DividendsPayableAmountPerShare",
      "unitRef": "usdPerShare",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "INF",
      "ancestors": [
       "span",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true,
      "unique": true
     }
    },
    "R112": {
     "role": "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail",
     "longName": "9954546 - Disclosure - Schedule II -Valuation and Qualifying Accounts (Detail)",
     "shortName": "Schedule II -Valuation and Qualifying Accounts (Detail)",
     "isDefault": "false",
     "groupType": "disclosure",
     "subGroupType": "details",
     "menuCat": "Details",
     "order": "112",
     "firstAnchor": {
      "contextRef": "c-8",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "div",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "first": true
     },
     "uniqueAnchor": {
      "contextRef": "c-287",
      "name": "us-gaap:ValuationAllowancesAndReservesBalance",
      "unitRef": "usd",
      "xsiNil": "false",
      "lang": "en-US",
      "decimals": "-3",
      "ancestors": [
       "span",
       "td",
       "tr",
       "table",
       "div",
       "ix:continuation",
       "body",
       "html"
      ],
      "reportCount": 1,
      "baseRef": "cgnx-20231231.htm",
      "unique": true
     }
    }
   },
   "tag": {
    "cgnx_A27000SquareFootPremisesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "A27000SquareFootPremisesMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "27,000 Square-Foot Premises",
        "label": "27,000 Square-Foot Premises [Member]",
        "documentation": "27,000 Square-Foot Premises"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_A88000SquareFootPremisesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "A88000SquareFootPremisesMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "88,000 Square-Foot Premises",
        "label": "88,000 Square-Foot Premises [Member]",
        "documentation": "88,000 Square-Foot Premises"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingChangesAndErrorCorrectionsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingChangesAndErrorCorrectionsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Changes and Error Corrections [Abstract]",
        "label": "Accounting Changes and Error Corrections [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountingPoliciesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountingPoliciesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounting Policies [Abstract]",
        "label": "Accounting Policies [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpenses"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued Expenses",
        "label": "Accounts Payable and Accrued Liabilities Disclosure [Text Block]",
        "documentation": "The entire disclosure for accounts payable and accrued liabilities at the end of the reporting period."
       }
      }
     },
     "auth_ref": [
      "r35"
     ]
    },
    "us-gaap_AccountsPayableCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsPayableCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Accounts Payable, Current",
        "documentation": "Carrying value as of the balance sheet date of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r34",
      "r932"
     ]
    },
    "cgnx_AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment",
        "documentation": "Accounts Receivable, Allowance For Credit Loss, Foreign Exchange Rate Adjustment"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccountsReceivableNetCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, allowance for credit losses of $583 and $730 in 2023 and 2022, respectively",
        "label": "Accounts Receivable, after Allowance for Credit Loss, Current",
        "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": [
      "r356",
      "r357"
     ]
    },
    "us-gaap_AccretionAmortizationOfDiscountsAndPremiumsInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccretionAmortizationOfDiscountsAndPremiumsInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Amortization of discounts or premiums on investments",
        "label": "Accretion (Amortization) of Discounts and Premiums, Investments",
        "documentation": "The sum of the periodic adjustments of the differences between securities' face values and purchase prices that are charged against earnings. This is called accretion if the security was purchased at a discount and amortization if it was purchased at premium. As a noncash item, this element is an adjustment to net income when calculating cash provided by or used in operations using the indirect method."
       }
      }
     },
     "auth_ref": [
      "r162"
     ]
    },
    "us-gaap_AccruedBonusesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedBonusesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Incentive compensation",
        "label": "Accrued Bonuses, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for incentive compensation awarded to employees and directors or earned by them based on the terms of one or more relevant arrangements. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_AccruedIncomeTaxesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedIncomeTaxesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued income taxes",
        "label": "Accrued Income Taxes, Current",
        "documentation": "Carrying amount as of the balance sheet date of the unpaid sum of the known and estimated amounts payable to satisfy all currently due domestic and foreign income tax obligations."
       }
      }
     },
     "auth_ref": [
      "r130",
      "r195"
     ]
    },
    "us-gaap_AccruedIncomeTaxesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedIncomeTaxesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current accrued income taxes",
        "label": "Accrued Income Taxes, Noncurrent",
        "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",
      "r195"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail",
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "totalLabel": "Accrued expenses",
        "label": "Accrued Liabilities, Current",
        "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": [
      "r37"
     ]
    },
    "us-gaap_AccruedLiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of accrued expenses",
        "label": "Accrued Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccruedLiabilitiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedLiabilitiesMember",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued Liabilities [Member]",
        "label": "Accrued Liabilities [Member]",
        "documentation": "This item represents 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."
       }
      }
     },
     "auth_ref": [
      "r37"
     ]
    },
    "us-gaap_AccruedSalariesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedSalariesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Salaries and payroll taxes",
        "label": "Accrued Salaries, Current",
        "documentation": "Carrying value as of the balance sheet date of the obligations incurred through that date and payable for employees' services provided. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r892"
     ]
    },
    "us-gaap_AccruedVacationCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccruedVacationCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vacation",
        "label": "Accrued Vacation, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable for unused vacation time owed to employees based on the entity's vacation benefit given to its employees. Used to reflect the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r87"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Less: accumulated depreciation",
        "label": "Accumulated Depreciation, Depletion and Amortization, Property, Plant, and Equipment",
        "documentation": "Amount of accumulated depreciation, depletion and amortization for physical assets used in the normal conduct of business to produce goods and services."
       }
      }
     },
     "auth_ref": [
      "r72",
      "r246",
      "r735"
     ]
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reduction of accumulated depreciation due to disposals",
        "label": "Accumulated Depreciation, Depletion and Amortization, Sale or Disposal of Property, Plant and Equipment",
        "documentation": "Amount of decrease in accumulated depreciation, depletion and amortization as a result of sale or disposal of property, plant and equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized losses on available-for-sale investments, net of tax",
        "label": "AOCI, Debt Securities, Available-for-Sale, Adjustment, after Tax",
        "documentation": "Amount, after tax, of accumulated unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r1046"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss consists of foreign currency translation adjustments, net of tax",
        "label": "Accumulated Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Net of Tax",
        "documentation": "Accumulated adjustment, net of tax, that results from the process of translating subsidiary financial statements and foreign equity investments into the reporting currency from the functional currency of the reporting entity, net of reclassification of realized foreign currency translation gains or losses."
       }
      }
     },
     "auth_ref": [
      "r263",
      "r266",
      "r267",
      "r268",
      "r638"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossLineItems",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Line Items]",
        "label": "Accumulated Other Comprehensive Income (Loss) [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": [
      "r276",
      "r277",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r657"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated other comprehensive loss, net of tax",
        "label": "Accumulated Other Comprehensive Income (Loss), Net of Tax",
        "documentation": "Amount, after tax, of accumulated increase (decrease) in equity from transaction and other event and circumstance from nonowner source."
       }
      }
     },
     "auth_ref": [
      "r42",
      "r43",
      "r145",
      "r254",
      "r731",
      "r756",
      "r759"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeLossTable",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Income (Loss) [Table]",
        "label": "Accumulated Other Comprehensive Income (Loss) [Table]",
        "documentation": "Disclosure of information about components of accumulated other comprehensive income (loss)."
       }
      }
     },
     "auth_ref": [
      "r276",
      "r277",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r657"
     ]
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Other Comprehensive Loss [Member]",
        "label": "AOCI Attributable to Parent [Member]",
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r7",
      "r23",
      "r43",
      "r616",
      "r619",
      "r672",
      "r752",
      "r753",
      "r1047",
      "r1048",
      "r1049",
      "r1062",
      "r1063",
      "r1064"
     ]
    },
    "us-gaap_AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, useful life",
        "label": "Acquired Finite-Lived Intangible Assets, Weighted Average Useful Life",
        "documentation": "Weighted average amortization period of finite-lived intangible assets acquired either individually or as part of a group of assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r166"
     ]
    },
    "ecd_Additional402vDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Additional402vDisclosureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional 402(v) Disclosure",
        "label": "Additional 402(v) Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r985"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional paid-in capital",
        "label": "Additional Paid in Capital, Common Stock",
        "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": [
      "r135"
     ]
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdditionalPaidInCapitalMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additional Paid-in Capital [Member]",
        "label": "Additional Paid-in Capital [Member]",
        "documentation": "Excess of issue price over par or stated value of the entity's capital stock and amounts received from other transactions involving the entity's stock or stockholders."
       }
      }
     },
     "auth_ref": [
      "r559",
      "r560",
      "r561",
      "r772",
      "r1062",
      "r1063",
      "r1064",
      "r1151",
      "r1174"
     ]
    },
    "ecd_AdjToCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation, Amount",
        "label": "Adjustment to Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "ecd_AdjToCompAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToCompAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Compensation:",
        "label": "Adjustment to Compensation [Axis]"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "ecd_AdjToNonPeoNeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToNonPeoNeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment to Non-PEO NEO Compensation Footnote",
        "label": "Adjustment to Non-PEO NEO Compensation Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "ecd_AdjToPeoCompFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AdjToPeoCompFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustment To PEO Compensation, Footnote",
        "label": "Adjustment To PEO Compensation, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "us-gaap_AdjustmentForLongTermIntercompanyTransactionsNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentForLongTermIntercompanyTransactionsNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Losses on currency swaps, net of gains on long-term intercompany loans",
        "label": "Adjustment for Long-Term Intercompany Transactions, Net of Tax",
        "documentation": "Current period adjustment resulting from gains and losses on intercompany foreign currency transactions that are of a long-term-investment nature because settlement is not planned or anticipated in the foreseeable future. Resulting from the entities to the transaction being consolidated, combined, or accounted for by the equity method in the reporting entity's financial statements."
       }
      }
     },
     "auth_ref": [
      "r1153",
      "r1154"
     ]
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "APIC, Share-Based Payment Arrangement, Increase for Cost Recognition",
        "documentation": "Amount of increase to additional paid-in capital (APIC) for recognition of cost for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r92",
      "r93",
      "r522"
     ]
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adjustments to reconcile net income to net cash provided by operating activities:",
        "label": "Adjustments to Reconcile Net Income (Loss) to Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AdvertisingCostsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdvertisingCostsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising Costs",
        "label": "Advertising Cost [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for advertising cost."
       }
      }
     },
     "auth_ref": [
      "r211"
     ]
    },
    "us-gaap_AdvertisingExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AdvertisingExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdvertisingCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Advertising costs",
        "label": "Advertising Expense",
        "documentation": "Amount charged to advertising expense for the period, which are expenses incurred with the objective of increasing revenue for a specified brand, product or product line."
       }
      }
     },
     "auth_ref": [
      "r567"
     ]
    },
    "cgnx_AgencyBondsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AgencyBondsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Agency Bonds [Member]",
        "label": "Agency Bonds [Member]",
        "documentation": "Agency bond."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Amount",
        "label": "Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r955",
      "r967",
      "r977",
      "r1003"
     ]
    },
    "ecd_AggtErrCompNotYetDeterminedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AggtErrCompNotYetDeterminedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Erroneous Compensation Not Yet Determined",
        "label": "Aggregate Erroneous Compensation Not Yet Determined [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r958",
      "r970",
      "r980",
      "r1006"
     ]
    },
    "ecd_AllAdjToCompMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllAdjToCompMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Adjustments to Compensation",
        "label": "All Adjustments to Compensation [Member]"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "currency_AllCurrenciesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "AllCurrenciesDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Currencies [Domain]",
        "label": "All Currencies [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AllExecutiveCategoriesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllExecutiveCategoriesMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Executive Categories",
        "label": "All Executive Categories [Member]"
       }
      }
     },
     "auth_ref": [
      "r998"
     ]
    },
    "ecd_AllIndividualsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllIndividualsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Individuals",
        "label": "All Individuals [Member]"
       }
      }
     },
     "auth_ref": [
      "r962",
      "r971",
      "r981",
      "r998",
      "r1007",
      "r1011",
      "r1019"
     ]
    },
    "ecd_AllTradingArrangementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AllTradingArrangementsMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "All Trading Arrangements",
        "label": "All Trading Arrangements [Member]"
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllocatedShareBasedCompensationExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense",
        "documentation": "Amount of expense for award under share-based payment arrangement. Excludes amount capitalized."
       }
      }
     },
     "auth_ref": [
      "r554",
      "r566"
     ]
    },
    "us-gaap_AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for Credit Loss",
        "label": "Financing Receivable, Allowance for Credit Loss [Table Text Block]",
        "documentation": "Tabular disclosure of allowance for credit loss on financing receivable."
       }
      }
     },
     "auth_ref": [
      "r64",
      "r1078"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "Ending balance",
        "label": "Accounts Receivable, Allowance for Credit Loss",
        "documentation": "Amount of allowance for credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r255",
      "r360",
      "r400",
      "r403",
      "r406",
      "r1169"
     ]
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableRollforward",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "label": "Accounts Receivable, Allowance for Credit Loss [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Write-offs, net of recoveries",
        "label": "Accounts Receivable, Allowance for Credit Loss, Writeoff",
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance."
       }
      }
     },
     "auth_ref": [
      "r405"
     ]
    },
    "dei_AmendmentFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AmendmentFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amendment Flag",
        "label": "Amendment Flag",
        "documentation": "Boolean flag that is true when the XBRL content amends previously-filed or accepted submission."
       }
      }
     },
     "auth_ref": []
    },
    "srt_AmericasMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "AmericasMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Americas [Member]",
        "label": "Americas [Member]",
        "documentation": "Continents of North and South America."
       }
      }
     },
     "auth_ref": [
      "r1177",
      "r1178",
      "r1179",
      "r1180"
     ]
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AmortizationOfIntangibleAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortization of intangible assets",
        "label": "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": [
      "r15",
      "r66",
      "r70"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock options to purchase anti-dilutive common stock",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share, Amount",
        "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": [
      "r325"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities [Axis]",
        "label": "Antidilutive Securities [Axis]",
        "documentation": "Information by type of antidilutive security."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareLineItems",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "label": "Antidilutive Securities Excluded from Computation of Earnings Per Share [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AntidilutiveSecuritiesNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AntidilutiveSecuritiesNameDomain",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Antidilutive Securities, Name [Domain]",
        "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": [
      "r53"
     ]
    },
    "cgnx_ApplicationofCustomerSpecificSolutionsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ApplicationofCustomerSpecificSolutionsMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Application-specific customer solutions",
        "label": "Application of Customer Specific Solutions [Member]",
        "documentation": "Application of Customer Specific Solutions [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetAcquisitionConsiderationTransferredTransactionCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetAcquisitionConsiderationTransferredTransactionCost",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset acquisition, transaction costs",
        "label": "Asset Acquisition, Consideration Transferred, Transaction Cost",
        "documentation": "Amount of transaction cost incurred as part of consideration transferred in asset acquisition."
       }
      }
     },
     "auth_ref": [
      "r930",
      "r1144",
      "r1145",
      "r1146"
     ]
    },
    "us-gaap_AssetAcquisitionContingentConsiderationLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetAcquisitionContingentConsiderationLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset acquisition, contingent consideration, liability, current",
        "label": "Asset Acquisition, Contingent Consideration, Liability, Current",
        "documentation": "Amount of liability recognized from contingent consideration in asset acquisition, classified as current."
       }
      }
     },
     "auth_ref": [
      "r1143"
     ]
    },
    "cgnx_AssetBackedSecuritiesFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AssetBackedSecuritiesFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Asset-backed securities",
        "label": "Asset Backed Securities Fair Value Disclosure",
        "documentation": "Asset Backed Securities Fair Value Disclosure"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetBackedSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetBackedSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Asset-Backed Securities [Member]",
        "label": "Asset-Backed Securities [Member]",
        "documentation": "Securities that are primarily serviced by the cash flows of a discrete pool of receivables or other financial assets for example, but not limited to, credit card receivables, car loans, recreational vehicle loans, and mobile home loans."
       }
      }
     },
     "auth_ref": [
      "r922",
      "r1070",
      "r1071",
      "r1072"
     ]
    },
    "us-gaap_Assets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Assets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total assets",
        "label": "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": [
      "r194",
      "r250",
      "r286",
      "r335",
      "r342",
      "r347",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r608",
      "r610",
      "r640",
      "r727",
      "r809",
      "r932",
      "r945",
      "r1104",
      "r1105",
      "r1159"
     ]
    },
    "us-gaap_AssetsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ASSETS",
        "label": "Assets [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current assets",
        "label": "Assets, Current",
        "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": [
      "r240",
      "r258",
      "r286",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r608",
      "r610",
      "r640",
      "r932",
      "r1104",
      "r1105",
      "r1159"
     ]
    },
    "us-gaap_AssetsCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current assets:",
        "label": "Assets, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AssetsFairValueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AssetsFairValueDisclosureAbstract",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets:",
        "label": "Assets, Fair Value Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AuditInformationAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AuditInformationAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Audit Information [Abstract]",
        "documentation": "Audit Information"
       }
      }
     },
     "auth_ref": []
    },
    "dei_AuditorFirmId": {
     "xbrltype": "nonemptySequenceNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorFirmId",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Firm ID",
        "label": "Auditor Firm ID",
        "documentation": "PCAOB issued Audit Firm Identifier"
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963"
     ]
    },
    "dei_AuditorLocation": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorLocation",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Location",
        "label": "Auditor Location"
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963"
     ]
    },
    "dei_AuditorName": {
     "xbrltype": "internationalNameItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "AuditorName",
     "presentation": [
      "http://cognex.com/role/AuditInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Auditor Name",
        "label": "Auditor Name"
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Unrealized Gains",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Gain, before Tax",
        "documentation": "Amount, before tax, of unrealized gain in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r367"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Gross Unrealized Losses",
        "label": "Debt Securities, Available-for-Sale, Accumulated Gross Unrealized Loss, before Tax",
        "documentation": "Amount, before tax, of unrealized loss in accumulated other comprehensive income (AOCI) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r368"
     ]
    },
    "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleDebtSecuritiesAmortizedCostBasis",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Amortized Cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r364",
      "r410",
      "r726"
     ]
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "available for sale securities debt maturities after five years before seven years fair value",
        "label": "Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value",
        "documentation": "Available For Sale Securities Debt Maturities After Five Years Before Seven Years Fair Value"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "4-5 Years",
        "label": "Available For Sale Securities Debt Maturities After Four Years Before Five Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after fourth year but before fifth year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "1-2 Years",
        "label": "Available For Sale Securities Debt Maturities After One Year Before Two Years Fair Value",
        "documentation": "This item represents the fair value of debt securities which are expected to mature within one year of the balance sheet date and which are categorized neither as held-to-maturity nor trading securities."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "3-4 Years",
        "label": "Available For Sale Securities Debt Maturities After Three Years Before Four Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after third year but before fourth year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2-3 Years",
        "label": "Available For Sale Securities Debt Maturities After Two Years Before Three Years Fair Value",
        "documentation": "Available-for-sale securities, debt maturities after second year but before third year, fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_AvailableForSaleSecuritiesDebtSecurities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Less than 1 Year",
        "label": "Debt Securities, Available-for-Sale, Fair Value, Maturity, Allocated and Single Maturity Date, Year One",
        "documentation": "Fair value of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), with single maturity date and allocated without single maturity date, maturing 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": [
      "r371",
      "r724"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecurities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecurities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail": {
       "parentTag": "us-gaap_AvailableForSaleDebtSecuritiesAmortizedCostBasis",
       "weight": 1.0,
       "order": 3.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Total",
        "totalLabel": "Fair Value, Total",
        "label": "Debt Securities, Available-for-Sale",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r365",
      "r410",
      "r720",
      "r1068"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investments, amortized cost of $132,799 and $223,545 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022",
        "verboseLabel": "Debt securities, available-for-sale, current",
        "label": "Debt Securities, Available-for-Sale, Current",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r362",
      "r410"
     ]
    },
    "us-gaap_AvailableForSaleSecuritiesDebtSecuritiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AvailableForSaleSecuritiesDebtSecuritiesNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_LongTermInvestments",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term investments",
        "label": "Debt Securities, Available-for-Sale, Noncurrent",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r244",
      "r362",
      "r410"
     ]
    },
    "cgnx_AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective maturity of investments",
        "label": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum",
        "documentation": "Available-for-sale Securities, Debt Maturities, Effective Term, Maximum"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_AwardExrcPrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardExrcPrice",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercise Price",
        "label": "Award Exercise Price"
       }
      }
     },
     "auth_ref": [
      "r1014"
     ]
    },
    "ecd_AwardGrantDateFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardGrantDateFairValue",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value as of Grant Date",
        "label": "Award Grant Date Fair Value"
       }
      }
     },
     "auth_ref": [
      "r1015"
     ]
    },
    "ecd_AwardTmgDiscLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgDiscLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Award Timing Disclosures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "ecd_AwardTmgHowMnpiCnsdrdTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgHowMnpiCnsdrdTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing, How MNPI Considered",
        "label": "Award Timing, How MNPI Considered [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "ecd_AwardTmgMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Method",
        "label": "Award Timing Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "ecd_AwardTmgMnpiCnsdrdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiCnsdrdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Considered",
        "label": "Award Timing MNPI Considered [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "ecd_AwardTmgMnpiDiscTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgMnpiDiscTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing MNPI Disclosure",
        "label": "Award Timing MNPI Disclosure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "ecd_AwardTmgPredtrmndFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardTmgPredtrmndFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Timing Predetermined",
        "label": "Award Timing Predetermined [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "us-gaap_AwardTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "AwardTypeAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Award Type [Axis]",
        "label": "Award Type [Axis]",
        "documentation": "Information by type of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r525",
      "r526",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553"
     ]
    },
    "ecd_AwardUndrlygSecuritiesAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardUndrlygSecuritiesAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Securities",
        "label": "Award Underlying Securities Amount"
       }
      }
     },
     "auth_ref": [
      "r1013"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Awards Close in Time to MNPI Disclosures, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1012"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures",
        "label": "Awards Close in Time to MNPI Disclosures [Table]"
       }
      }
     },
     "auth_ref": [
      "r1011"
     ]
    },
    "ecd_AwardsCloseToMnpiDiscTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "AwardsCloseToMnpiDiscTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Awards Close in Time to MNPI Disclosures, Table",
        "label": "Awards Close in Time to MNPI Disclosures [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1011"
     ]
    },
    "cgnx_BacNinhVietnamMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "BacNinhVietnamMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bac Ninh, Vietnam",
        "label": "Bac Ninh, Vietnam [Member]",
        "documentation": "Bac Ninh, Vietnam"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BalanceSheetLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationAxis",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Location [Axis]",
        "label": "Balance Sheet Location [Axis]",
        "documentation": "Information by location on balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BalanceSheetLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BalanceSheetLocationDomain",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Balance Sheet Location [Domain]",
        "label": "Balance Sheet Location [Domain]",
        "documentation": "Location in the balance sheet (statement of financial position)."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r117"
     ]
    },
    "us-gaap_BuildingImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BuildingImprovementsMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Building Improvements [Member]",
        "label": "Building Improvements [Member]",
        "documentation": "Addition, improvement, or renovation to a facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r170"
     ]
    },
    "us-gaap_BuildingMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BuildingMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Building [Member]",
        "label": "Building [Member]",
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities."
       }
      }
     },
     "auth_ref": [
      "r170"
     ]
    },
    "us-gaap_BusinessAcquisitionAcquireeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAcquireeDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition, Acquiree [Domain]",
        "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": [
      "r605",
      "r925",
      "r926"
     ]
    },
    "us-gaap_BusinessAcquisitionAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Axis]",
        "label": "Business Acquisition [Axis]",
        "documentation": "Information by business combination or series of individually immaterial business combinations."
       }
      }
     },
     "auth_ref": [
      "r99",
      "r100",
      "r605",
      "r925",
      "r926"
     ]
    },
    "us-gaap_BusinessAcquisitionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessAcquisitionLineItems",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisition [Line Items]",
        "label": "Business Acquisition [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r605"
     ]
    },
    "us-gaap_BusinessCombinationConsiderationTransferred1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationConsiderationTransferred1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase price",
        "label": "Business Combination, Consideration Transferred",
        "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",
      "r19"
     ]
    },
    "us-gaap_BusinessCombinationDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisitions",
        "label": "Business Combination Disclosure [Text Block]",
        "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": [
      "r188",
      "r606"
     ]
    },
    "cgnx_BusinessCombinationEnterpriseValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "BusinessCombinationEnterpriseValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Enterprise value",
        "label": "Business Combination, Enterprise Value",
        "documentation": "Business Combination, Enterprise Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Cash acquired",
        "terseLabel": "Cash and cash equivalents",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Cash and Equivalents",
        "documentation": "Amount of currency on hand as well as demand deposits with banks or financial institutions, acquired at the acquisition date. Includes other kinds of accounts that have the general characteristics of demand deposits. Also includes short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Assets, Receivables",
        "documentation": "Amount due from customers or clients for goods or services, including trade receivables, that have been delivered or sold in the normal course of business, and amounts due from others, including related parties expected to be converted to cash, sold or exchanged within one year or the normal operating cycle, if longer, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accrued expenses",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, 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": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Accounts payable",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Current Liabilities, Accounts Payable",
        "documentation": "Amount of liabilities incurred for goods and services received that are used in an entity's business and related party payables, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income tax assets",
        "label": "Business Combination Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Assets",
        "documentation": "Amount of deferred tax asset attributable to deductible temporary differences and carryforwards acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred income tax liabilities",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Deferred Tax Liabilities",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Intangible Assets, Other than Goodwill",
        "documentation": "Amount of intangible assets, excluding goodwill, acquired at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-lived intangible assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Finite-Lived Intangibles",
        "documentation": "The amount of identifiable intangible assets recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories acquired",
        "terseLabel": "Inventories",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Inventory",
        "documentation": "The amount of inventory recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Other liabilities",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Noncurrent Liabilities, Other",
        "documentation": "Amount of other liabilities due after one year or the normal operating cycle, if longer, assumed at the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Other Noncurrent 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": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Property, plant and equipment acquired",
        "terseLabel": "Property, plant and equipment",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Property, Plant, and Equipment",
        "documentation": "The amount of property, plant, and equipment recognized as of the acquisition date."
       }
      }
     },
     "auth_ref": [
      "r101",
      "r102"
     ]
    },
    "cgnx_BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reserve for income taxes",
        "label": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes",
        "documentation": "Business Combination, Recognized Identifiable Assets Acquired and Liabilities Assumed, Reserve for Income Taxes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Purchase price",
        "label": "Business Combination, Recognized Identifiable Assets Acquired, Goodwill, and Liabilities Assumed, Net",
        "documentation": "Amount recognized for assets, including goodwill, in excess of (less than) the aggregate liabilities assumed."
       }
      }
     },
     "auth_ref": [
      "r102"
     ]
    },
    "us-gaap_BusinessCombinationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Combinations [Abstract]",
        "label": "Business Combinations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_BusinessCombinationsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "BusinessCombinationsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Business Acquisitions",
        "label": "Business Combinations Policy [Policy Text Block]",
        "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": [
      "r98"
     ]
    },
    "currency_CAD": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "CAD",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Canadian Dollar [Member]",
        "label": "Canada, Dollars"
       }
      }
     },
     "auth_ref": []
    },
    "currency_CHF": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "CHF",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Switzerland, Francs",
        "label": "Switzerland, Francs"
       }
      }
     },
     "auth_ref": []
    },
    "currency_CNY": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "CNY",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "China, Yuan Renminbi",
        "label": "China, Yuan Renminbi"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CapitalizedContractCostGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CapitalizedContractCostGross",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionNarrativesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalized Contract Cost, Gross",
        "label": "Capitalized Contract Cost, Gross",
        "documentation": "Amount, before accumulated amortization and accumulated impairment loss, of asset recognized from cost incurred to obtain or fulfill contract with customer."
       }
      }
     },
     "auth_ref": [
      "r1079"
     ]
    },
    "us-gaap_Cash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Cash",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash",
        "label": "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. Excludes cash and cash equivalents within disposal group and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r209",
      "r730",
      "r773",
      "r804",
      "r932",
      "r945",
      "r1042"
     ]
    },
    "us-gaap_CashAndCashEquivalentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and Cash Equivalents [Abstract]",
        "label": "Cash and Cash Equivalents [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 1.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash and cash equivalents",
        "totalLabel": "Cash and cash equivalents",
        "label": "Cash and Cash Equivalents, at Carrying Value",
        "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": [
      "r48",
      "r243",
      "r890"
     ]
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Cash and Cash Equivalents, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cash and cash equivalents, including the policy for determining which items are treated as cash equivalents. Other information that may be disclosed includes (1) the nature of any restrictions on the entity's use of its cash and cash equivalents, (2) whether the entity's cash and cash equivalents are insured or expose the entity to credit risk, (3) the classification of any negative balance accounts (overdrafts), and (4) the carrying basis of cash equivalents (for example, at cost) and whether the carrying amount of cash equivalents approximates fair value."
       }
      }
     },
     "auth_ref": [
      "r49"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Cash and cash equivalents at beginning of year",
        "periodEndLabel": "Cash and cash equivalents at end of year",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents",
        "documentation": "Amount of cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage. Excludes amount for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r48",
      "r160",
      "r284"
     ]
    },
    "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change in cash and cash equivalents",
        "label": "Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Period Increase (Decrease), Including Exchange Rate Effect",
        "documentation": "Amount of increase (decrease) in cash, cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; including effect from exchange rate change. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r6",
      "r160"
     ]
    },
    "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CashCashEquivalentsShortTermAndLongTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total",
        "label": "Cash Cash Equivalents Short Term And Long Term Investments",
        "documentation": "Cash, cash equivalents, short term and long term investments."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CatastropheTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CatastropheTextBlock",
     "presentation": [
      "http://cognex.com/role/LossfromFire"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss from Fire",
        "label": "Catastrophe [Text Block]",
        "documentation": "Catastrophe"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CatastrophicEventDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CatastrophicEventDomain",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Catastrophic Event [Domain]",
        "label": "Catastrophic Event [Domain]",
        "documentation": "Catastrophic event, for example, but not limited to, earthquake, windstorm, fire or explosion."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ChangedPeerGroupFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ChangedPeerGroupFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changed Peer Group, Footnote",
        "label": "Changed Peer Group, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r989"
     ]
    },
    "dei_CityAreaCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CityAreaCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "City Area Code",
        "label": "City Area Code",
        "documentation": "Area code of city"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ClassOfStockLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ClassOfStockLineItems",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Class of Stock [Line Items]",
        "label": "Class of Stock [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r251",
      "r252",
      "r253",
      "r330",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r766",
      "r767",
      "r768",
      "r769",
      "r914",
      "r1026",
      "r1053"
     ]
    },
    "ecd_CoSelectedMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Amount",
        "label": "Company Selected Measure Amount"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "ecd_CoSelectedMeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CoSelectedMeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company Selected Measure Name",
        "label": "Company Selected Measure Name"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "cgnx_CognexCorporation2021And2007StockOptionAndIncentivePlansMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CognexCorporation2021And2007StockOptionAndIncentivePlansMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans",
        "label": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans [Member]",
        "documentation": "Cognex Corporation 2021 And 2007 Stock Option And Incentive Plans"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CognexCorporation2023StockOptionAndIncentivePlanMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CognexCorporation2023StockOptionAndIncentivePlanMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cognex Corporation 2023 Stock Option And Incentive Plan",
        "label": "Cognex Corporation 2023 Stock Option And Incentive Plan [Member]",
        "documentation": "Cognex Corporation 2023 Stock Option And Incentive Plan"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingencies": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingencies",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and contingencies (Note 11)",
        "label": "Commitments and Contingencies",
        "documentation": "Represents the caption on the face of the balance sheet to indicate that the entity has entered into (1) purchase or supply arrangements that will require expending a portion of its resources to meet the terms thereof, and (2) is exposed to potential losses or, less frequently, gains, arising from (a) possible claims against a company's resources due to future performance under contract terms, and (b) possible losses or likely gains from uncertainties that will ultimately be resolved when one or more future events that are deemed likely to occur do occur or fail to occur."
       }
      }
     },
     "auth_ref": [
      "r40",
      "r128",
      "r729",
      "r795"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies Disclosure [Abstract]",
        "label": "Commitments and Contingencies Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingencies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Commitments and Contingencies",
        "label": "Commitments and Contingencies Disclosure [Text Block]",
        "documentation": "The entire disclosure for commitments and contingencies."
       }
      }
     },
     "auth_ref": [
      "r173",
      "r455",
      "r456",
      "r873",
      "r1095"
     ]
    },
    "us-gaap_CommitmentsAndContingenciesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommitmentsAndContingenciesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contingencies",
        "label": "Commitments and Contingencies, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for commitments and contingencies, which may include policies for recognizing and measuring loss and gain contingencies."
       }
      }
     },
     "auth_ref": [
      "r79",
      "r874"
     ]
    },
    "us-gaap_CommonStockDividendsPerShareCashPaid": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockDividendsPerShareCashPaid",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash dividends per common share (in dollars per share)",
        "label": "Common Stock, Dividends, Per Share, Cash Paid",
        "documentation": "Aggregate dividends paid during the period for each share of common stock outstanding."
       }
      }
     },
     "auth_ref": [
      "r177"
     ]
    },
    "us-gaap_CommonStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common Stock [Member]",
        "label": "Common Stock [Member]",
        "documentation": "Stock that is subordinate to all other stock of the issuer."
       }
      }
     },
     "auth_ref": [
      "r935",
      "r936",
      "r937",
      "r939",
      "r940",
      "r941",
      "r942",
      "r1062",
      "r1063",
      "r1151",
      "r1172",
      "r1174"
     ]
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockParOrStatedValuePerShare",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock par value, in dollars per share",
        "label": "Common Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of common stock."
       }
      }
     },
     "auth_ref": [
      "r134"
     ]
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares authorized (in shares)",
        "label": "Common Stock, Shares Authorized",
        "documentation": "The maximum number of common shares permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r796"
     ]
    },
    "us-gaap_CommonStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesIssued",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares issued (in shares)",
        "periodStartLabel": "Beginning Balance, shares (in shares)",
        "periodEndLabel": "Balance, shares (in shares)",
        "label": "Common Stock, Shares, Issued",
        "documentation": "Total number of common shares of an entity that have been sold or granted to shareholders (includes common shares that were issued, repurchased and remain in the treasury). These shares represent capital invested by the firm's shareholders and owners, and may be all or only a portion of the number of shares authorized. Shares issued include shares outstanding and shares held in the treasury."
       }
      }
     },
     "auth_ref": [
      "r134"
     ]
    },
    "us-gaap_CommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, shares outstanding (in shares)",
        "label": "Common Stock, Shares, Outstanding",
        "documentation": "Number of shares of common stock outstanding. Common stock represent the ownership interest in a corporation."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r134",
      "r796",
      "r815",
      "r1174",
      "r1175"
     ]
    },
    "us-gaap_CommonStockValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CommonStockValueOutstanding",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Common stock, $0.002 par value \u2013 Authorized: 300,000 shares in 2023 and 2022, respectively, issued and outstanding: 171,599 and 172,631 shares in 2023 and 2022, respectively",
        "label": "Common Stock, Value, Outstanding",
        "documentation": "Value of all classes of common stock held by shareholders. May be all or portion of the number of common shares authorized. These shares exclude common shares repurchased by the entity and held as treasury shares."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r796"
     ]
    },
    "ecd_CompActuallyPaidVsCoSelectedMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsCoSelectedMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Company Selected Measure",
        "label": "Compensation Actually Paid vs. Company Selected Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r995"
     ]
    },
    "ecd_CompActuallyPaidVsNetIncomeTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsNetIncomeTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Net Income",
        "label": "Compensation Actually Paid vs. Net Income [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r994"
     ]
    },
    "ecd_CompActuallyPaidVsOtherMeasureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsOtherMeasureTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Other Measure",
        "label": "Compensation Actually Paid vs. Other Measure [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r996"
     ]
    },
    "ecd_CompActuallyPaidVsTotalShareholderRtnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "CompActuallyPaidVsTotalShareholderRtnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Actually Paid vs. Total Shareholder Return",
        "label": "Compensation Actually Paid vs. Total Shareholder Return [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r993"
     ]
    },
    "cgnx_CompanyContributionsVestAtEndOfFourYears": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompanyContributionsVestAtEndOfFourYears",
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Company contributions vest at end of four years",
        "label": "Company Contributions Vest At End Of Four Years",
        "documentation": "Company contributions vest at end of four years."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfOneYear": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompanyContributionsVestAtEndOfOneYear",
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of one year",
        "label": "Company Contributions Vest At End Of One Year",
        "documentation": "Company Contributions Vest At End Of One Year"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfThreeYears": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompanyContributionsVestAtEndOfThreeYears",
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of three years",
        "label": "Company Contributions Vest At End Of Three Years",
        "documentation": "Company contributions vest at end of three years."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompanyContributionsVestAtEndOfTwoYear": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompanyContributionsVestAtEndOfTwoYear",
     "calculation": {
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail": {
       "parentTag": "cgnx_CompanyContributionsVestAtEndOfFourYears",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions vest at end of two years",
        "label": "Company Contributions Vest At End Of Two Year",
        "documentation": "Company contributions vest at end of two year."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CompensationAndRetirementDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CompensationAndRetirementDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retirement Benefits [Abstract]",
        "label": "Retirement Benefits [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompletedTechnologiesAndOtherIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompletedTechnologiesAndOtherIntangibleAssetsMember",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed Technologies And Other Intangible Assets [Member]",
        "label": "Completed Technologies And Other Intangible Assets [Member]",
        "documentation": "Completed Technologies And Other Intangible Assets [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CompletedTechnologyMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CompletedTechnologyMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed technologies",
        "label": "Completed Technology [Member]",
        "documentation": "Completed Technology [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Components of Cash, Cash Equivalents and Investments",
        "label": "Components Of Cash Cash Equivalents And Investments Table [Table Text Block]",
        "documentation": "Components of cash cash equivalents and investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ComprehensiveIncomeNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomeNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total comprehensive income",
        "label": "Comprehensive Income (Loss), Net of Tax, Attributable to Parent",
        "documentation": "Amount after tax of increase (decrease) in equity from transactions and other events and circumstances from net income and other comprehensive income, attributable to parent entity. Excludes changes in equity resulting from investments by owners and distributions to owners."
       }
      }
     },
     "auth_ref": [
      "r44",
      "r272",
      "r274",
      "r279",
      "r721",
      "r740"
     ]
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Comprehensive Income",
        "label": "Comprehensive Income, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for comprehensive income."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ComputerHardwareAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ComputerHardwareAndSoftwareMember",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer Hardware and Software [Member]",
        "label": "Computer Hardware And Software [Member]",
        "documentation": "Computer Hardware and Software Member."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskBenchmarkDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Domain]",
        "label": "Concentration Risk Benchmark [Domain]",
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r58",
      "r125",
      "r126",
      "r355",
      "r872"
     ]
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Benchmark [Axis]",
        "label": "Concentration Risk Benchmark [Axis]",
        "documentation": "Information by benchmark of concentration risk."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r58",
      "r125",
      "r126",
      "r355",
      "r760",
      "r872"
     ]
    },
    "us-gaap_ConcentrationRiskByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskByTypeAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Axis]",
        "label": "Concentration Risk Type [Axis]",
        "documentation": "Information by type of concentration risk, for example, but not limited to, asset, liability, net assets, geographic, customer, employees, supplier, lender."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r58",
      "r125",
      "r126",
      "r355",
      "r872",
      "r1031"
     ]
    },
    "us-gaap_ConcentrationRiskLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskLineItems",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Line Items]",
        "label": "Concentration Risk [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r872"
     ]
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskPercentage1",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Maximum percentage of revenue accountability",
        "label": "Concentration Risk, Percentage",
        "documentation": "For an entity that discloses a concentration risk in relation to quantitative amount, which serves as the \"benchmark\" (or denominator) in the equation, this concept represents the concentration percentage derived from the division."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r58",
      "r125",
      "r126",
      "r355"
     ]
    },
    "us-gaap_ConcentrationRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskTable",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk [Table]",
        "label": "Concentration Risk [Table]",
        "documentation": "Describes the nature of a concentration, a benchmark to which it is compared, and the percentage that the risk is to the benchmark."
       }
      }
     },
     "auth_ref": [
      "r55",
      "r56",
      "r58",
      "r59",
      "r125",
      "r193",
      "r872"
     ]
    },
    "us-gaap_ConcentrationRiskTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConcentrationRiskTypeDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentration Risk Type [Domain]",
        "label": "Concentration Risk Type [Domain]",
        "documentation": "For an entity that discloses a concentration risk as a percentage of some financial balance or benchmark, identifies the type (for example, asset, liability, net assets, geographic, customer, employees, supplier, lender) of the concentration."
       }
      }
     },
     "auth_ref": [
      "r56",
      "r58",
      "r125",
      "r126",
      "r355",
      "r872"
     ]
    },
    "cgnx_ConcentrationsOfRiskPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ConcentrationsOfRiskPolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Concentrations of Risk",
        "label": "Concentrations Of Risk Policy [Policy Text Block]",
        "documentation": "Concentrations of Risk."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ConsolidationPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ConsolidationPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basis of Consolidation",
        "label": "Consolidation, Policy [Policy Text Block]",
        "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": [
      "r106",
      "r897"
     ]
    },
    "cgnx_ContractLiabilityForeignExchangeRateChanges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ContractLiabilityForeignExchangeRateChanges",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Contract Liability Foreign Exchange Rate Changes",
        "documentation": "Contract Liability Foreign Exchange Rate Changes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ContractTerminationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractTerminationMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract Termination [Member]",
        "label": "Contract Termination [Member]",
        "documentation": "Termination of a contract associated with exit from or disposal of business activities or restructurings pursuant to a plan."
       }
      }
     },
     "auth_ref": [
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "us-gaap_ContractWithCustomerAssetAndLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerAssetAndLiabilityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Contract with Customer, Liability",
        "label": "Contract with Customer, Contract Asset, Contract Liability, and Receivable [Table Text Block]",
        "documentation": "Tabular disclosure of receivable, contract asset, and contract liability from contract with customer. Includes, but is not limited to, change in contract asset and contract liability."
       }
      }
     },
     "auth_ref": [
      "r1107"
     ]
    },
    "us-gaap_ContractWithCustomerLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ContractWithCustomerLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "periodStartLabel": "Beginning balance",
        "periodEndLabel": "End balance",
        "label": "Contract with Customer, Liability, Current",
        "documentation": "Amount of obligation to transfer good or service to customer for which consideration has been received or is receivable, classified as current."
       }
      }
     },
     "auth_ref": [
      "r486",
      "r487",
      "r498"
     ]
    },
    "cgnx_ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Recognition of revenue deferred in prior period",
        "label": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized",
        "documentation": "Contract with Customer, Liability, Current And Prior Period Revenue Recognized"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_ContractWithCustomerLiabilityPeriodIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ContractWithCustomerLiabilityPeriodIncreaseDecrease",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "label": "Contract With Customer, Liability, Period Increase (Decrease)",
        "documentation": "Contract With Customer, Liability, Period Increase (Decrease)"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CorporateBondSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CorporateBondSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate Bonds [Member]",
        "label": "Corporate Bond Securities [Member]",
        "documentation": "This category includes information about long-term debt securities that are issued by either a domestic or foreign corporate business entity with a date certain promise of repayment and a return to the holder for the time value of money (for example, variable or fixed interest, original issue discount)."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CorporateBondsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CorporateBondsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Corporate bonds",
        "label": "Corporate Bonds Fair Value Disclosure",
        "documentation": "Corporate bonds fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostOfGoodsAndServicesSold",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cost of revenue",
        "label": "Cost of Goods and Services Sold",
        "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": [
      "r151",
      "r713"
     ]
    },
    "us-gaap_CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Costs Associated with Exit or Disposal Activity or Restructuring [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for cost associated with exit or disposal activity or restructuring. Excludes entity newly acquired in business combination and discontinued operation."
       }
      }
     },
     "auth_ref": [
      "r76",
      "r171",
      "r172"
     ]
    },
    "dei_CoverAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CoverAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cover [Abstract]",
        "label": "Cover [Abstract]",
        "documentation": "Cover page."
       }
      }
     },
     "auth_ref": []
    },
    "srt_CurrencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "CurrencyAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Currency [Axis]",
        "label": "Currency [Axis]",
        "documentation": "Information by currency."
       }
      }
     },
     "auth_ref": [
      "r1155"
     ]
    },
    "cgnx_CurrencytranslationadjustmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CurrencytranslationadjustmentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation adjustments:",
        "label": "Currency translation adjustment [Abstract]",
        "documentation": "Currency translation adjustment [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentFederalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Current Federal Tax Expense (Benefit)",
        "documentation": "Amount of current federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1033",
      "r1055",
      "r1141"
     ]
    },
    "dei_CurrentFiscalYearEndDate": {
     "xbrltype": "gMonthDayItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "CurrentFiscalYearEndDate",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current Fiscal Year End Date",
        "label": "Current Fiscal Year End Date",
        "documentation": "End date of current fiscal year in the format --MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentForeignTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentForeignTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Current Foreign Tax Expense (Benefit)",
        "documentation": "Amount of current foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r1033",
      "r1055"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Current income tax expense (benefit), Total",
        "label": "Current Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) pertaining to taxable income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r590",
      "r599",
      "r1055"
     ]
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current:",
        "label": "Current Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_CurrentIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Current State and Local Tax Expense (Benefit)",
        "documentation": "Amount of current state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, current regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1033",
      "r1055",
      "r1141"
     ]
    },
    "cgnx_Customer1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "Customer1Member",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer 1 [Member]",
        "label": "Customer 1 [Member]",
        "documentation": "Customer 1"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_Customer2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "Customer2Member",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer 2 [Member]",
        "label": "Customer 2 [Member]",
        "documentation": "Customer 2"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerConcentrationRiskMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CustomerConcentrationRiskMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Revenue from a single customer, percentage",
        "label": "Customer Concentration Risk [Member]",
        "documentation": "Reflects the percentage that revenues in the period from one or more significant customers is to net revenues, as defined by the entity, such as total net revenues, product line revenues, segment revenues. The risk is the materially adverse effects of loss of a significant customer."
       }
      }
     },
     "auth_ref": [
      "r57",
      "r355"
     ]
    },
    "cgnx_CustomerContractsAndRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CustomerContractsAndRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Customer Relationships [Member]",
        "terseLabel": "Customer Contracts And Relationships [Member]",
        "label": "Customer Contracts And Relationships [Member]",
        "documentation": "Customer Contracts And Relationships [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_CustomerContractsLiabilityCurrentRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "CustomerContractsLiabilityCurrentRollForward",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer Contracts Liability, Current",
        "label": "Customer Contracts Liability Current [Roll Forward]",
        "documentation": "Customer Contracts Liability Current [Roll Forward]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_CustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "CustomerRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer relationships",
        "label": "Customer Relationships [Member]",
        "documentation": "Customer relationship that exists between an entity and its customer, for example, but not limited to, tenant relationships."
       }
      }
     },
     "auth_ref": [
      "r105"
     ]
    },
    "us-gaap_DamageFromFireExplosionOrOtherHazardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DamageFromFireExplosionOrOtherHazardMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Damage from Fire, Explosion or Other Hazard",
        "label": "Damage from Fire, Explosion or Other Hazard [Member]",
        "documentation": "Risk of loss from uninsured portions of losses resulting from fire, explosion or other hazard."
       }
      }
     },
     "auth_ref": [
      "r1096"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Allowance for credit loss",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r366",
      "r410",
      "r417",
      "r418"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investment, allowance for credit loss",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Current",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r410"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, allowance for credit losses",
        "label": "Debt Securities, Available-for-Sale, Allowance for Credit Loss, Noncurrent",
        "documentation": "Amount of allowance for credit loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r410"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostCurrent",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current investments, amortized cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Current",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as current."
       }
      }
     },
     "auth_ref": [
      "r410",
      "r1069"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, amortized cost",
        "label": "Debt Securities, Available-for-Sale, Amortized Cost, Noncurrent",
        "documentation": "Amortized cost of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r410",
      "r1069"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Greater than 12 Months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for more than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r414",
      "r906"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unrealized Losses, Greater than 12 Months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, 12 Months or Longer, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for 12 months or longer, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r414"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Less than 12 months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r414",
      "r906"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Unrealized Losses, Less than 12 months",
        "label": "Debt Securities, Available-for-Sale, Continuous Unrealized Loss Position, Less than 12 Months, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in continuous unrealized loss position for less than 12 months, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r207",
      "r414"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedGain": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedGain",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross realized gains",
        "label": "Debt Securities, Available-for-Sale, Realized Gain",
        "documentation": "Amount of realized gain on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r393"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleRealizedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleRealizedLoss",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross realized losses",
        "label": "Debt Securities, Available-for-Sale, Realized Loss",
        "documentation": "Amount of realized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale)."
       }
      }
     },
     "auth_ref": [
      "r393"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPosition": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPosition",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Fair Value",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position",
        "documentation": "Amount of investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position without allowance for credit loss."
       }
      }
     },
     "auth_ref": [
      "r205",
      "r412",
      "r906"
     ]
    },
    "us-gaap_DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Unrealized Losses",
        "label": "Debt Securities, Available-for-Sale, Unrealized Loss Position, Accumulated Loss",
        "documentation": "Amount of accumulated unrealized loss on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), in unrealized loss position, without allowance for credit loss. Includes beneficial interest in securitized financial asset."
       }
      }
     },
     "auth_ref": [
      "r206",
      "r413"
     ]
    },
    "cgnx_December2022Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "December2022Member",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "December 2022",
        "label": "December 2022 [Member]",
        "documentation": "December 2022"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Federal",
        "label": "Deferred Federal Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred federal tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred national tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1055",
      "r1140",
      "r1141"
     ]
    },
    "us-gaap_DeferredForeignIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredForeignIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign",
        "label": "Deferred Foreign Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred foreign income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r187",
      "r1055",
      "r1140"
     ]
    },
    "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredIncomeTaxAssetsLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred income taxes",
        "label": "Deferred income tax assets (liabilities), net",
        "documentation": "Deferred income tax assets (liabilities), net"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r573",
      "r574"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_IncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred income tax expense (benefit), Total",
        "label": "Deferred Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r187",
      "r220",
      "r598",
      "r599",
      "r1055"
     ]
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred:",
        "label": "Deferred Income Tax Expense (Benefit), Continuing Operations [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredIncomeTaxLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredIncomeTaxLiabilitiesNet",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred income taxes",
        "label": "Deferred Income Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences with jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r573",
      "r574",
      "r728"
     ]
    },
    "us-gaap_DeferredRevenueRefundPayments1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredRevenueRefundPayments1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDeferredRevenueandCustomerDepositsRollforwardDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Deferred Revenue, Refund Payments",
        "label": "Deferred Revenue, Refund Payments",
        "documentation": "Amount of cash outflow to customers for refund payments of revenue that was previously reported as deferred or unearned revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": "us-gaap_DeferredIncomeTaxExpenseBenefit",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State",
        "label": "Deferred State and Local Income Tax Expense (Benefit)",
        "documentation": "Amount of deferred state and local tax expense (benefit) attributable to income (loss) from continuing operations. Includes, but is not limited to, deferred regional, territorial, and provincial tax expense (benefit) for non-US (United States of America) jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r1055",
      "r1140",
      "r1141"
     ]
    },
    "cgnx_DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Capitalization of R&amp;D expenses",
        "label": "Deferred Tax Assets, Capitalization Of Research And Development Expenses",
        "documentation": "Deferred Tax Assets, Capitalization Of Research And Development Expenses"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DeferredTaxAssetsForeignTaxStructureChange": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsForeignTaxStructureChange",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign tax structure deferred tax asset",
        "label": "Deferred Tax Assets, Foreign Tax Structure Change",
        "documentation": "Deferred Tax Assets, Foreign Tax Structure Change"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsGrossAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsGrossAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets:",
        "label": "Deferred Tax Assets, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DeferredTaxAssetsIntangibleAssetChangeinTaxStructure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsIntangibleAssetChangeinTaxStructure",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible asset in connection with change in tax structure",
        "label": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure",
        "documentation": "Deferred Tax Assets, Intangible Asset, Change in Tax Structure"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsInventory",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory and revenue related",
        "label": "Deferred Tax Assets, Inventory",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "us-gaap_DeferredTaxAssetsLiabilitiesNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsLiabilitiesNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredIncomeTaxAssetsLiabilitiesNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Deferred Tax Assets, Net, Noncurrent",
        "label": "Deferred Tax Assets, Net",
        "documentation": "Amount, after allocation of valuation allowances and deferred tax liability, of deferred tax asset attributable to deductible differences and carryforwards, without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r1138"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsDomestic",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax credit carryforwards",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Domestic",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible domestic operating loss carryforwards. Excludes state and local operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwardsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsOperatingLossCarryforwardsForeign",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign net operating losses",
        "label": "Deferred Tax Assets, Operating Loss Carryforwards, Foreign",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign operating loss carryforwards."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "cgnx_DeferredTaxAssetsOtherNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsOtherNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Deferred Tax Assets Other Noncurrent",
        "documentation": "Deferred tax assets other non current."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwardsForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsForeign",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, Foreign",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible foreign tax credit carryforwards."
       }
      }
     },
     "auth_ref": [
      "r96",
      "r97",
      "r1139"
     ]
    },
    "cgnx_DeferredTaxAssetsTaxCreditCarryforwardsState": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsTaxCreditCarryforwardsState",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "label": "Deferred Tax Assets, Tax Credit Carryforwards, State",
        "documentation": "Deferred Tax Assets, Tax Credit Carryforwards, State"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Bonuses, commissions, and other compensation",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Other",
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from compensation and benefits, classified as other."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "Deferred Tax Assets, Tax Deferred Expense, Compensation and Benefits, Share-Based Compensation Cost",
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from share-based compensation."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxAssetsValuationAllowance",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax assets, valuation allowance",
        "negatedTerseLabel": "Valuation allowance",
        "label": "Deferred Tax Assets, Valuation Allowance",
        "documentation": "Amount of deferred tax assets for which it is more likely than not that a tax benefit will not be realized."
       }
      }
     },
     "auth_ref": [
      "r586"
     ]
    },
    "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxAssetsWithJurisdictionalNettingGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxAssetsLiabilitiesNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total deferred tax assets",
        "label": "Deferred Tax Assets, With Jurisdictional Netting, Gross",
        "documentation": "Deferred Tax Assets, With Jurisdictional Netting, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTotalLabel": "Deferred Tax Liabilities, Net",
        "label": "Deferred Tax Liabilities, Net",
        "documentation": "Amount, after deferred tax asset, of deferred tax liability attributable to taxable differences without jurisdictional netting."
       }
      }
     },
     "auth_ref": [
      "r94",
      "r1138"
     ]
    },
    "us-gaap_DeferredTaxLiabilitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesAbstract",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred tax liabilities:",
        "label": "Deferred Tax Liabilities, Gross [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Amortization",
        "label": "Deferred Tax Liabilities, Property, Plant and Equipment",
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment."
       }
      }
     },
     "auth_ref": [
      "r97",
      "r1139"
     ]
    },
    "cgnx_DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "us-gaap_DeferredTaxLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "GILTI tax basis differences",
        "negatedTerseLabel": "GILTI tax basis differences in connection with change in tax structure",
        "label": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income",
        "documentation": "Deferred Tax Liabilities, Tax Cuts And Jobs Act, Global Intangible Low Tax Income"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanCostRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanCostRecognized",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company contributions to employee savings plan",
        "label": "Defined Contribution Plan, Cost",
        "documentation": "Amount of cost for defined contribution plan."
       }
      }
     },
     "auth_ref": [
      "r517"
     ]
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercent",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Percent of employee contribution",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Employees' Gross Pay",
        "documentation": "Percentage of employees' gross pay for which the employer contributes a matching contribution to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanEmployerMatchingContributionPercentOfMatch": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanEmployerMatchingContributionPercentOfMatch",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Company match percent",
        "label": "Defined Contribution Plan, Employer Matching Contribution, Percent of Match",
        "documentation": "Percentage employer matches of the employee's percentage contribution matched."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum contribution by company expressed as percentage of employee pre-tax salary",
        "label": "Defined Contribution Plan, Maximum Annual Contributions Per Employee, Percent",
        "documentation": "Maximum percentage of employee gross pay the employee may contribute to a defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_Depreciation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Depreciation",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation of property, plant, and equipment",
        "label": "Depreciation",
        "documentation": "The amount of expense recognized in the current period that reflects the allocation of the cost of tangible assets over the assets' useful lives. Includes production and non-production related depreciation."
       }
      }
     },
     "auth_ref": [
      "r15",
      "r71"
     ]
    },
    "us-gaap_DerivativeAssetCollateralObligationToReturnCashOffset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetCollateralObligationToReturnCashOffset",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Derivative Asset gross amount offset",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, Collateral, Obligation to Return Cash, Offset Against Derivative Asset",
        "documentation": "Amount of obligation to return cash collateral under master netting arrangements offset against derivative assets."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r29"
     ]
    },
    "us-gaap_DerivativeAssetNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetNotionalAmount",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Notional Amount",
        "label": "Derivative Asset, Notional Amount",
        "documentation": "Nominal or face amount used to calculate payments on the derivative asset."
       }
      }
     },
     "auth_ref": [
      "r850",
      "r853",
      "r856",
      "r859",
      "r1147",
      "r1148",
      "r1149"
     ]
    },
    "us-gaap_DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "label": "Derivative Asset, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative asset."
       }
      }
     },
     "auth_ref": [
      "r612"
     ]
    },
    "us-gaap_DerivativeAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeAssets",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net amount of assets presented",
        "totalLabel": "Net amount of assets presented",
        "label": "Derivative Asset",
        "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": [
      "r260",
      "r262",
      "r639",
      "r775",
      "r776",
      "r777",
      "r779",
      "r780",
      "r782",
      "r783",
      "r784",
      "r786",
      "r787",
      "r802",
      "r803",
      "r850",
      "r854",
      "r857",
      "r858",
      "r860",
      "r861",
      "r896",
      "r937",
      "r1173"
     ]
    },
    "us-gaap_DerivativeContractTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeContractTypeDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Contract [Domain]",
        "label": "Derivative Contract [Domain]",
        "documentation": "Financial instrument or 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."
       }
      }
     },
     "auth_ref": [
      "r784",
      "r787",
      "r801",
      "r802",
      "r803",
      "r805",
      "r806",
      "r807",
      "r808",
      "r810",
      "r811",
      "r812",
      "r813",
      "r823",
      "r824",
      "r825",
      "r826",
      "r829",
      "r830",
      "r831",
      "r832",
      "r850",
      "r851",
      "r857",
      "r860",
      "r935",
      "r937"
     ]
    },
    "us-gaap_DerivativeFairValueOfDerivativeAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeFairValueOfDerivativeAsset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeAssets",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Asset, Fair Value, Gross Asset",
        "label": "Derivative Asset, Subject to Master Netting Arrangement, before Offset",
        "documentation": "Fair value, before 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 elected not to be offset. Excludes assets not subject to a master netting arrangement."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r115",
      "r144",
      "r259",
      "r896"
     ]
    },
    "us-gaap_DerivativeFairValueOfDerivativeLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeFairValueOfDerivativeLiability",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Liability, Fair Value, Gross Liability",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, before Offset",
        "documentation": "Fair value, before effects of master netting arrangements, of a financial liability or 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 liabilities elected not to be offset. Excludes liabilities not subject to a master netting arrangement."
       }
      }
     },
     "auth_ref": [
      "r30",
      "r115",
      "r144",
      "r259",
      "r896"
     ]
    },
    "us-gaap_DerivativeGainLossOnDerivativeNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeGainLossOnDerivativeNet",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gains (losses) recognized in net income",
        "label": "Derivative, Gain (Loss) on Derivative, Net",
        "documentation": "Amount of increase (decrease) in the fair value of derivatives recognized in the income statement."
       }
      }
     },
     "auth_ref": [
      "r1150"
     ]
    },
    "us-gaap_DerivativeInstrumentRiskAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentRiskAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instrument [Axis]",
        "label": "Derivative Instrument [Axis]",
        "documentation": "Information by type of derivative contract."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r116",
      "r118",
      "r119",
      "r784",
      "r787",
      "r801",
      "r802",
      "r803",
      "r805",
      "r806",
      "r807",
      "r808",
      "r810",
      "r811",
      "r812",
      "r813",
      "r823",
      "r824",
      "r825",
      "r826",
      "r829",
      "r830",
      "r831",
      "r832",
      "r850",
      "r851",
      "r857",
      "r860",
      "r896",
      "r935",
      "r937"
     ]
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments and Hedging Activities Disclosure [Abstract]",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstruments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments",
        "label": "Derivative Instruments and Hedging Activities Disclosure [Text Block]",
        "documentation": "The entire disclosure for derivative instruments and hedging activities including, but not limited to, risk management strategies, non-hedging derivative instruments, assets, liabilities, revenue and expenses, and methodologies and assumptions used in determining the amounts."
       }
      }
     },
     "auth_ref": [
      "r192",
      "r614",
      "r622"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossByHedgingRelationshipByIncomeStatementLocationByDerivativeInstrumentRiskTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss) [Table]",
        "label": "Derivative Instruments, Gain (Loss) [Table]",
        "documentation": "Disclosure of information about the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r113",
      "r118",
      "r119",
      "r123",
      "r124",
      "r613"
     ]
    },
    "us-gaap_DerivativeInstrumentsGainLossLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeInstrumentsGainLossLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss) [Line Items]",
        "label": "Derivative Instruments, Gain (Loss) [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": [
      "r613"
     ]
    },
    "us-gaap_DerivativeLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net amount of liabilities presented",
        "totalLabel": "Net amount of liabilities presented",
        "label": "Derivative Liability",
        "documentation": "Fair value, after the effects of master netting arrangements, of a financial liability or 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 liabilities not subject to a master netting arrangement and not elected to be offset."
       }
      }
     },
     "auth_ref": [
      "r260",
      "r262",
      "r639",
      "r775",
      "r776",
      "r777",
      "r779",
      "r782",
      "r783",
      "r784",
      "r786",
      "r787",
      "r810",
      "r812",
      "r813",
      "r851",
      "r852",
      "r854",
      "r857",
      "r858",
      "r860",
      "r861",
      "r896",
      "r1173"
     ]
    },
    "us-gaap_DerivativeLiabilityCollateralRightToReclaimCashOffset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilityCollateralRightToReclaimCashOffset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails": {
       "parentTag": "us-gaap_DerivativeLiabilities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Derivative liability gross amount offset",
        "label": "Derivative Liability, Subject to Master Netting Arrangement, Collateral, Right to Reclaim Cash Offset",
        "documentation": "Amount of right to receive cash collateral under master netting arrangements offset against derivative liabilities."
       }
      }
     },
     "auth_ref": [
      "r16",
      "r29"
     ]
    },
    "us-gaap_DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration": {
     "xbrltype": "enumerationSetItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAssetsandliabilitiespresentedonanetbasisduetotherightofoffsetDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "label": "Derivative Liability, Statement of Financial Position [Extensible Enumeration]",
        "documentation": "Indicates line item in statement of financial position that includes derivative liability."
       }
      }
     },
     "auth_ref": [
      "r612"
     ]
    },
    "us-gaap_DerivativeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative [Line Items]",
        "label": "Derivative [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": [
      "r622"
     ]
    },
    "us-gaap_DerivativeNotionalAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeNotionalAmount",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative, notional amount",
        "label": "Derivative, Notional Amount",
        "documentation": "Nominal or face amount used to calculate payment on derivative."
       }
      }
     },
     "auth_ref": [
      "r1148",
      "r1149"
     ]
    },
    "us-gaap_DerivativeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativeTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative [Table]",
        "label": "Derivative [Table]",
        "documentation": "Schedule that describes and identifies a derivative or group of derivatives on a disaggregated basis, such as for individual instruments, or small groups of similar instruments. May include a combination of the type of instrument, risks being hedged, notional amount, hedge designation, related hedged item, inception date, maturity date, or other relevant item."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r107",
      "r108",
      "r110",
      "r111",
      "r114",
      "r118",
      "r120",
      "r122",
      "r124",
      "r622"
     ]
    },
    "us-gaap_DerivativesFairValueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativesFairValueLineItems",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivatives, Fair Value [Line Items]",
        "label": "Derivatives, Fair Value [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_DerivativesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DerivativesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments",
        "label": "Derivatives, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for its derivative instruments and hedging activities."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r107",
      "r108",
      "r111",
      "r121",
      "r289"
     ]
    },
    "us-gaap_DevelopedTechnologyRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DevelopedTechnologyRightsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Completed Technologies [Member]",
        "label": "Developed Technology Rights [Member]",
        "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": [
      "r190"
     ]
    },
    "us-gaap_DisaggregationOfRevenueLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueLineItems",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Line Items]",
        "label": "Disaggregation of Revenue [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r497",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTable",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue [Table]",
        "label": "Disaggregation of Revenue [Table]",
        "documentation": "Disclosure of information about disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r497",
      "r915",
      "r916",
      "r917",
      "r918",
      "r919",
      "r920",
      "r921"
     ]
    },
    "us-gaap_DisaggregationOfRevenueTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisaggregationOfRevenueTableTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disaggregation of Revenue",
        "label": "Disaggregation of Revenue [Table Text Block]",
        "documentation": "Tabular disclosure of disaggregation of revenue into categories depicting how nature, amount, timing, and uncertainty of revenue and cash flows are affected by economic factor."
       }
      }
     },
     "auth_ref": [
      "r1108"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Text Block]",
        "documentation": "The entire disclosure for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r520",
      "r524",
      "r555",
      "r556",
      "r558",
      "r928"
     ]
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DisclosureOfCompensationRelatedCostsSharebasedPaymentsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disclosure of Compensation Related Costs, Share-based Payments [Abstract]",
        "label": "Share-Based Payment Arrangement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_DistributionNetworksAndCustomerRelationshipsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DistributionNetworksAndCustomerRelationshipsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Distribution Networks and Customer Relationships",
        "label": "Distribution Networks and Customer Relationships [Member]",
        "documentation": "Distribution Networks and Customer Relationships"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DistributionRightsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DistributionRightsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Distribution Rights [Member]",
        "terseLabel": "Distribution Networks [Member]",
        "label": "Distribution Rights [Member]",
        "documentation": "Legal rights, generally of a limited duration, to distribute a product or products, often within specific geographic areas or supply channels."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DividendsCommonStockCash": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsCommonStockCash",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Payment of dividends ($0.286 per common share)",
        "label": "Dividends, Common Stock, Cash",
        "documentation": "Amount of paid and unpaid common stock dividends declared with the form of settlement in cash."
       }
      }
     },
     "auth_ref": [
      "r177"
     ]
    },
    "us-gaap_DividendsPayableAmountPerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsPayableAmountPerShare",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Amount Per Share",
        "label": "Dividends Payable, Amount Per Share",
        "documentation": "The per share amount of a dividend declared, but not paid, as of the financial reporting date."
       }
      }
     },
     "auth_ref": [
      "r51"
     ]
    },
    "us-gaap_DividendsPayableDateDeclaredDayMonthAndYear": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsPayableDateDeclaredDayMonthAndYear",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Date Declared",
        "label": "Dividends Payable, Date Declared",
        "documentation": "Date the dividend to be paid was declared, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": [
      "r51"
     ]
    },
    "us-gaap_DividendsPayableDateOfRecordDayMonthAndYear": {
     "xbrltype": "dateItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DividendsPayableDateOfRecordDayMonthAndYear",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Dividends Payable, Date of Record",
        "label": "Dividends Payable, Date of Record",
        "documentation": "Date the holder must own the stock to be entitled to the dividend, in YYYY-MM-DD format."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentAnnualReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentAnnualReport",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Annual Report",
        "label": "Document Annual Report",
        "documentation": "Boolean flag that is true only for a form used as an annual report."
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963"
     ]
    },
    "dei_DocumentFinStmtErrorCorrectionFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFinStmtErrorCorrectionFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Financial Statement Error Correction [Flag]",
        "label": "Document Financial Statement Error Correction [Flag]",
        "documentation": "Indicates whether any of the financial statement period in the filing include a restatement due to error correction."
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963",
      "r999"
     ]
    },
    "dei_DocumentFiscalPeriodFocus": {
     "xbrltype": "fiscalPeriodItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalPeriodFocus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Period Focus",
        "label": "Document Fiscal Period Focus",
        "documentation": "Fiscal period values are FY, Q1, Q2, and Q3.  1st, 2nd and 3rd quarter 10-Q or 10-QT statements have value Q1, Q2, and Q3 respectively, with 10-K, 10-KT or other fiscal year statements having FY."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentFiscalYearFocus": {
     "xbrltype": "gYearItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentFiscalYearFocus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Fiscal Year Focus",
        "label": "Document Fiscal Year Focus",
        "documentation": "This is focus fiscal year of the document report in YYYY format. For a 2006 annual report, which may also provide financial information from prior periods, fiscal 2006 should be given as the fiscal year focus. Example: 2006."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentPeriodEndDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentPeriodEndDate",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Period End Date",
        "label": "Document Period End Date",
        "documentation": "For the EDGAR submission types of Form 8-K: the date of the report, the date of the earliest event reported; for the EDGAR submission types of Form N-1A: the filing date; for all other submission types: the end of the reporting or transition period.  The format of the date is YYYY-MM-DD."
       }
      }
     },
     "auth_ref": []
    },
    "dei_DocumentTransitionReport": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentTransitionReport",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Transition Report",
        "label": "Document Transition Report",
        "documentation": "Boolean flag that is true only for a form used as a transition report."
       }
      }
     },
     "auth_ref": [
      "r984"
     ]
    },
    "dei_DocumentType": {
     "xbrltype": "submissionTypeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "DocumentType",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Document Type",
        "label": "Document Type",
        "documentation": "The type of document being provided (such as 10-K, 10-Q, 485BPOS, etc). The document type is limited to the same value as the supporting SEC submission type, or the word 'Other'."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_DomesticCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "DomesticCountryMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic Tax Authority [Member]",
        "label": "Domestic Tax Authority [Member]",
        "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": []
    },
    "cgnx_DueFromForeignBanks": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "DueFromForeignBanks",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash balance included foreign bank balance",
        "label": "Due From Foreign Banks",
        "documentation": "Due from foreign banks."
       }
      }
     },
     "auth_ref": []
    },
    "currency_EUR": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "EUR",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Euro [Member]",
        "label": "Euro Member Countries, Euro"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Earnings Per Share [Abstract]",
        "label": "Earnings Per Share [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareBasic": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasic",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (in dollars per share)",
        "label": "Earnings 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": [
      "r280",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r318",
      "r320",
      "r322",
      "r323",
      "r324",
      "r328",
      "r625",
      "r626",
      "r722",
      "r741",
      "r902"
     ]
    },
    "us-gaap_EarningsPerShareBasicAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareBasicAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income per weighted-average common and common-equivalent share:",
        "label": "Earnings Per Share, Basic [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerShareDiluted": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDiluted",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net income (in dollars per share)",
        "label": "Earnings Per Share, Diluted",
        "documentation": "The amount of net income (loss) for the period available to each share of common stock or common unit outstanding during the reporting period and to each share or unit that would have been outstanding assuming the issuance of common shares or units for all dilutive potential common shares or units outstanding during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r280",
      "r307",
      "r308",
      "r309",
      "r310",
      "r311",
      "r320",
      "r322",
      "r323",
      "r324",
      "r328",
      "r625",
      "r626",
      "r722",
      "r741",
      "r902"
     ]
    },
    "us-gaap_EarningsPerShareDilutedAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareDilutedAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted earnings per weighted-average common and common-equivalent share (1):",
        "label": "Earnings Per Share, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerSharePolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Income Per Share",
        "label": "Earnings Per Share, Policy [Policy Text Block]",
        "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": [
      "r53",
      "r54"
     ]
    },
    "us-gaap_EarningsPerShareTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EarningsPerShareTextBlock",
     "presentation": [
      "http://cognex.com/role/WeightedAverageShares"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted Average Shares",
        "label": "Earnings Per Share [Text Block]",
        "documentation": "The entire disclosure for earnings per share."
       }
      }
     },
     "auth_ref": [
      "r317",
      "r325",
      "r326",
      "r327"
     ]
    },
    "us-gaap_EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of foreign exchange rate changes on cash and cash equivalents",
        "label": "Effect of Exchange Rate on Cash, Cash Equivalents, Restricted Cash, and Restricted Cash Equivalents, Continuing Operations",
        "documentation": "Amount of increase (decrease) from effect of exchange rate changes on cash and cash equivalents, and cash and cash equivalents restricted to withdrawal or usage; held in foreign currencies. Excludes amounts for disposal group and discontinued operations. Cash includes, but is not limited to, currency on hand, demand deposits with banks or financial institutions, and other accounts with general characteristics of demand deposits. Cash equivalents include, but are not limited to, short-term, highly liquid investments that are both readily convertible to known amounts of cash and so near their maturity that they present insignificant risk of changes in value because of changes in interest rates."
       }
      }
     },
     "auth_ref": [
      "r650"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateContinuingOperations": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateContinuingOperations",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income tax expense",
        "label": "Effective Income Tax Rate Reconciliation, Percent",
        "documentation": "Percentage of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r576"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax expense at U.S. federal statutory corporate tax rate",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent",
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss)."
       }
      }
     },
     "auth_ref": [
      "r288",
      "r576",
      "r601"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationAuditSettlementPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationAuditSettlementPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax benefit for audit settlements",
        "label": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Audit Settlement, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax benefit for release of valuation allowance",
        "label": "Effective Income Tax Rate Reconciliation, Change in Deferred Tax Assets Valuation Allowance, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to changes in the valuation allowance for deferred tax assets."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Limitation on deduction for executive compensation",
        "label": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Executive Compensation, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails",
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign tax rate differential",
        "negatedTerseLabel": "Foreign tax rate differential",
        "label": "Effective Income Tax Rate Reconciliation, Foreign Income Tax Rate Differential, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to statutory income tax expense (benefit) outside of the country of domicile."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationGiltiPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationGiltiPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax benefit related to GILTI adjustments",
        "label": "Effective Income Tax Rate Reconciliation, GILTI, Percent",
        "documentation": "Percentage of reported income tax expense from difference to expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operations, attributable to global intangible low-taxed income (GILTI)."
       }
      }
     },
     "auth_ref": [
      "r1137"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationOtherAdjustments": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationOtherAdjustments",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Effective Income Tax Rate Reconciliation, Other Adjustments, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to other adjustments."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0,
       "order": 9.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to employee stock-based compensation",
        "label": "Effective Income Tax Rate Reconciliation, Tax Expense (Benefit), Share-Based Payment Arrangement, Percent",
        "documentation": "Percentage of difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying domestic federal statutory income tax rate to pretax income (loss) from continuing operation, attributable to expense for award under share-based payment arrangement. Excludes expense determined to be nondeductible upon grant or after for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1029",
      "r1137"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 14.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State income taxes, net of federal benefit",
        "label": "Effective Income Tax Rate Reconciliation, State and Local Income Taxes, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations applicable to state and local income tax expense (benefit), net of federal tax expense (benefit)."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxCredits": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxCredits",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Tax credits",
        "label": "Effective Income Tax Rate Reconciliation, Tax Credit, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to tax credits. Including, but not limited to, research credit, foreign tax credit, investment tax credit, and other tax credits."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxReservesPercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxReservesPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax reserves",
        "label": "Effective Income Tax Rate Reconciliation, Tax Reserves, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Tax Reserves, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlements": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlements",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to tax return filings",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to income tax settlements. Including, but not limited to, domestic tax settlement, foreign tax settlement, state and local tax settlement, and other tax settlements."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Discrete tax expense related to rate revaluation on state tax assets",
        "label": "Effective Income Tax Rate Reconciliation, Tax Settlement, State and Local, Percent",
        "documentation": "Percentage of the difference between reported income tax expense (benefit) and expected income tax expense (benefit) computed by applying the domestic federal statutory income tax rates to pretax income (loss) from continuing operations attributable to state and local income tax settlement."
       }
      }
     },
     "auth_ref": [
      "r1137",
      "r1142"
     ]
    },
    "cgnx_EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails": {
       "parentTag": "us-gaap_EffectiveIncomeTaxRateContinuingOperations",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesReconciliationoftheUnitedStatesFederalStatutoryCorporateTaxRatetoCompanysEffectiveTaxRateorIncomeTaxProvisionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxation on multinational operations",
        "label": "Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent",
        "documentation": "Effective Income Tax Rate Reconciliation, Taxation on Multinational Operations, Percent"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Line Items]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Recognition period for unrecognized compensation expense",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Cost Not yet Recognized, Period for Recognition",
        "documentation": "Weighted-average period over which cost not yet recognized is expected to be recognized for award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r557"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total unrecognized compensation expense related to non-vested stock options",
        "label": "Share-Based Payment Arrangement, Nonvested Award, Option, Cost Not yet Recognized, Amount",
        "documentation": "Amount of cost to be recognized for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1136"
     ]
    },
    "cgnx_EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation expense capitalized",
        "label": "Employee Service Share Based Compensation Recognized Period Costs Capitalized Amount",
        "documentation": "Employee service share based compensation recognized period costs capitalized amount."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax benefit recognized related to stock-based compensation expense",
        "label": "Share-Based Payment Arrangement, Expense, Tax Benefit",
        "documentation": "Amount of tax benefit for recognition of expense of award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r554"
     ]
    },
    "us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Payment Arrangement, Exercise of Option, Tax Benefit",
        "label": "Share-Based Payment Arrangement, Exercise of Option, Tax Benefit",
        "documentation": "Amount of tax benefit from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r217"
     ]
    },
    "us-gaap_EmployeeStockOptionMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EmployeeStockOptionMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Stock Option [Member]",
        "verboseLabel": "Stock Compensation Plan [Member]",
        "label": "Employee Stock Option [Member]",
        "documentation": "Share-based payment arrangement granting right, subject to vesting and other restrictions, to purchase or sell certain number of shares at predetermined price for specified period of time."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressAddressLine1": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressAddressLine1",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Address Line One",
        "label": "Entity Address, Address Line One",
        "documentation": "Address Line 1 such as Attn, Building Name, Street Name"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressCityOrTown": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressCityOrTown",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, City or Town",
        "label": "Entity Address, City or Town",
        "documentation": "Name of the City or Town"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressPostalZipCode": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressPostalZipCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, Postal Zip Code",
        "label": "Entity Address, Postal Zip Code",
        "documentation": "Code for the postal or zip code"
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityAddressStateOrProvince": {
     "xbrltype": "stateOrProvinceItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityAddressStateOrProvince",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Address, State or Province",
        "label": "Entity Address, State or Province",
        "documentation": "Name of the state or province."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCentralIndexKey": {
     "xbrltype": "centralIndexKeyItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCentralIndexKey",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Central Index Key",
        "label": "Entity Central Index Key",
        "documentation": "A unique 10-digit SEC-issued value to identify entities that have filed disclosures with the SEC. It is commonly abbreviated as CIK."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityCommonStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCommonStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Common Stock, Shares Outstanding",
        "label": "Entity Common Stock, Shares Outstanding",
        "documentation": "Indicate number of shares or other units outstanding of each of registrant's classes of capital or common stock or other ownership interests, if and as stated on cover of related periodic report. Where multiple classes or units exist define each class/interest by adding class of stock items such as Common Class A [Member], Common Class B [Member] or Partnership Interest [Member] onto the Instrument [Domain] of the Entity Listings, Instrument."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityCurrentReportingStatus": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityCurrentReportingStatus",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Current Reporting Status",
        "label": "Entity Current Reporting Status",
        "documentation": "Indicate 'Yes' or 'No' whether registrants (1) have filed all reports required to be filed by Section 13 or 15(d) of the Securities Exchange Act of 1934 during the preceding 12 months (or for such shorter period that registrants were required to file such reports), and (2) have been subject to such filing requirements for the past 90 days. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityEmergingGrowthCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityEmergingGrowthCompany",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Emerging Growth Company",
        "documentation": "Indicate if registrant meets the emerging growth company criteria."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityFileNumber": {
     "xbrltype": "fileNumberItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFileNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity File Number",
        "label": "Entity File Number",
        "documentation": "Commission file number. The field allows up to 17 characters. The prefix may contain 1-3 digits, the sequence number may contain 1-8 digits, the optional suffix may contain 1-4 characters, and the fields are separated with a hyphen."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityFilerCategory": {
     "xbrltype": "filerCategoryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityFilerCategory",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Filer Category",
        "label": "Entity Filer Category",
        "documentation": "Indicate whether the registrant is one of the following: Large Accelerated Filer, Accelerated Filer, Non-accelerated Filer. Definitions of these categories are stated in Rule 12b-2 of the Exchange Act. This information should be based on the registrant's current or most recent filing containing the related disclosure."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityIncorporationStateCountryCode": {
     "xbrltype": "edgarStateCountryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityIncorporationStateCountryCode",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Incorporation, State or Country Code",
        "label": "Entity Incorporation, State or Country Code",
        "documentation": "Two-character EDGAR code representing the state or country of incorporation."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityInteractiveDataCurrent": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityInteractiveDataCurrent",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Interactive Data Current",
        "label": "Entity Interactive Data Current",
        "documentation": "Boolean flag that is true when the registrant has submitted electronically every Interactive Data File required to be submitted pursuant to Rule 405 of Regulation S-T during the preceding 12 months (or for such shorter period that the registrant was required to submit such files)."
       }
      }
     },
     "auth_ref": [
      "r1024"
     ]
    },
    "dei_EntityPublicFloat": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityPublicFloat",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Public Float",
        "label": "Entity Public Float",
        "documentation": "The aggregate market value of the voting and non-voting common equity held by non-affiliates computed by reference to the price at which the common equity was last sold, or the average bid and asked price of such common equity, as of the last business day of the registrant's most recently completed second fiscal quarter."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityRegistrantName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityRegistrantName",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Registrant Name",
        "label": "Entity Registrant Name",
        "documentation": "The exact name of the entity filing the report as specified in its charter, which is required by forms filed with the SEC."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityShellCompany": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityShellCompany",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Shell Company",
        "label": "Entity Shell Company",
        "documentation": "Boolean flag that is true when the registrant is a shell company as defined in Rule 12b-2 of the Exchange Act."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntitySmallBusiness": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntitySmallBusiness",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Small Business",
        "label": "Entity Small Business",
        "documentation": "Indicates that the company is a Smaller Reporting Company (SRC)."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityTaxIdentificationNumber": {
     "xbrltype": "employerIdItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityTaxIdentificationNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Tax Identification Number",
        "label": "Entity Tax Identification Number",
        "documentation": "The Tax Identification Number (TIN), also known as an Employer Identification Number (EIN), is a unique 9-digit value assigned by the IRS."
       }
      }
     },
     "auth_ref": [
      "r947"
     ]
    },
    "dei_EntityVoluntaryFilers": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityVoluntaryFilers",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Voluntary Filers",
        "label": "Entity Voluntary Filers",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is not required to file reports pursuant to Section 13 or Section 15(d) of the Act."
       }
      }
     },
     "auth_ref": []
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "xbrltype": "yesNoItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "EntityWellKnownSeasonedIssuer",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Entity Well-known Seasoned Issuer",
        "label": "Entity Well-known Seasoned Issuer",
        "documentation": "Indicate 'Yes' or 'No' if the registrant is a well-known seasoned issuer, as defined in Rule 405 of the Securities Act. Is used on Form Type: 10-K, 10-Q, 8-K, 20-F, 6-K, 10-K/A, 10-Q/A, 20-F/A, 6-K/A, N-CSR, N-Q, N-1A."
       }
      }
     },
     "auth_ref": [
      "r1025"
     ]
    },
    "us-gaap_EquipmentMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquipmentMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Manufacturing Test Equipment [Member]",
        "label": "Equipment [Member]",
        "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": {
        "terseLabel": "Equity [Abstract]",
        "label": "Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_EquityComponentDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "EquityComponentDomain",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Component [Domain]",
        "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": [
      "r24",
      "r237",
      "r276",
      "r277",
      "r278",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r329",
      "r396",
      "r399",
      "r485",
      "r559",
      "r560",
      "r561",
      "r591",
      "r592",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r621",
      "r624",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r657",
      "r672",
      "r752",
      "r753",
      "r754",
      "r772",
      "r836"
     ]
    },
    "ecd_EquityValuationAssumptionDifferenceFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "EquityValuationAssumptionDifferenceFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Valuation Assumption Difference, Footnote",
        "label": "Equity Valuation Assumption Difference, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r992"
     ]
    },
    "ecd_ErrCompAnalysisTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompAnalysisTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneous Compensation Analysis",
        "label": "Erroneous Compensation Analysis [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r955",
      "r967",
      "r977",
      "r1003"
     ]
    },
    "ecd_ErrCompRecoveryTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ErrCompRecoveryTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Erroneously Awarded Compensation Recovery",
        "label": "Erroneously Awarded Compensation Recovery [Table]"
       }
      }
     },
     "auth_ref": [
      "r952",
      "r964",
      "r974",
      "r1000"
     ]
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated forfeiture rate for unvested options for all non-senior management",
        "label": "Estimated Forfeiture Rate For Unvested Options For All Non Senior Management",
        "documentation": "Estimated forfeiture rate for unvested options for all non-senior management."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForCEO": {
     "xbrltype": "pureItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForCEO",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated Forfeiture Rate for Unvested Options for CEO",
        "label": "Estimated Forfeiture Rate for Unvested Options for CEO",
        "documentation": "Estimated Forfeiture Rate for Unvested Options for CEO"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated forfeiture rate for unvested options for senior management",
        "label": "Estimated Forfeiture Rate For Unvested Options For Senior Management",
        "documentation": "Estimated forfeiture rate for unvested options for senior management."
       }
      }
     },
     "auth_ref": []
    },
    "srt_EuropeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "EuropeMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Europe [Member]",
        "verboseLabel": "Europe [Member]",
        "label": "Europe [Member]",
        "documentation": "Continent of Europe."
       }
      }
     },
     "auth_ref": [
      "r1177",
      "r1178",
      "r1179",
      "r1180"
     ]
    },
    "cgnx_ExcessAndObsoleteInventoryCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ExcessAndObsoleteInventoryCharges",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 12.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Excess and obsolete inventory charges",
        "label": "Excess and Obsolete Inventory Charges",
        "documentation": "Excess and Obsolete Inventory Charges"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_ExecutiveCategoryAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ExecutiveCategoryAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Executive Category:",
        "label": "Executive Category [Axis]"
       }
      }
     },
     "auth_ref": [
      "r998"
     ]
    },
    "cgnx_ExpirationPeriodOfStockOptionPlan": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ExpirationPeriodOfStockOptionPlan",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expiration period of stock option plan",
        "label": "Expiration Period Of Stock Option Plan",
        "documentation": "Expiration period of stock option plan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ExtraordinaryAndUnusualItemsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ExtraordinaryAndUnusualItemsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Unusual or Infrequent Items, or Both [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_FairValueAdjustmentOnAcquiredInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "FairValueAdjustmentOnAcquiredInventories",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 20.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair value adjustment on acquired inventories (Note 21)",
        "label": "Fair Value Adjustment on Acquired Inventories",
        "documentation": "Fair Value Adjustment on Acquired Inventories"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisLineItems",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [Line Items]",
        "label": "Fair Value, Assets and Liabilities Measured on Recurring and Nonrecurring Basis [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": [
      "r631",
      "r632",
      "r635"
     ]
    },
    "us-gaap_FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueAssetsAndLiabilitiesMeasuredOnRecurringAndNonrecurringBasisTable",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements, Recurring and Nonrecurring [Table]",
        "label": "Fair Value, Recurring and Nonrecurring [Table]",
        "documentation": "Disclosure of information about asset and liability measured at fair value on recurring and nonrecurring basis."
       }
      }
     },
     "auth_ref": [
      "r631",
      "r632",
      "r635"
     ]
    },
    "us-gaap_FairValueByFairValueHierarchyLevelAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByFairValueHierarchyLevelAxis",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Hierarchy and NAV [Axis]",
        "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": [
      "r476",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r632",
      "r680",
      "r681",
      "r682",
      "r912",
      "r913",
      "r922",
      "r923",
      "r924"
     ]
    },
    "us-gaap_FairValueByMeasurementFrequencyAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueByMeasurementFrequencyAxis",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measurement Frequency [Axis]",
        "label": "Measurement Frequency [Axis]",
        "documentation": "Information by measurement frequency."
       }
      }
     },
     "auth_ref": [
      "r631",
      "r632",
      "r633",
      "r634",
      "r636"
     ]
    },
    "us-gaap_FairValueDisclosuresAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Disclosures [Abstract]",
        "label": "Fair Value Disclosures [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueDisclosuresTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueDisclosuresTextBlock",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value Disclosures [Text Block]",
        "documentation": "The entire disclosure for the fair value of financial instruments (as defined), including financial assets and financial liabilities (collectively, as defined), and the measurements of those instruments as well as disclosures related to the fair value of non-financial assets and liabilities. Such disclosures about the financial instruments, assets, and liabilities would include: (1) the fair value of the required items together with their carrying amounts (as appropriate); (2) for items for which it is not practicable to estimate fair value, disclosure would include: (a) information pertinent to estimating fair value (including, carrying amount, effective interest rate, and maturity, and (b) the reasons why it is not practicable to estimate fair value; (3) significant concentrations of credit risk including: (a) information about the activity, region, or economic characteristics identifying a concentration, (b) the maximum amount of loss the entity is exposed to based on the gross fair value of the related item, (c) policy for requiring collateral or other security and information as to accessing such collateral or security, and (d) the nature and brief description of such collateral or security; (4) quantitative information about market risks and how such risks are managed; (5) for items measured on both a recurring and nonrecurring basis information regarding the inputs used to develop the fair value measurement; and (6) for items presented in the financial statement for which fair value measurement is elected: (a) information necessary to understand the reasons for the election, (b) discussion of the effect of fair value changes on earnings, (c) a description of [similar groups] items for which the election is made and the relation thereof to the balance sheet, the aggregate carrying value of items included in the balance sheet that are not eligible for the election; (7) all other required (as defined) and desired information."
       }
      }
     },
     "auth_ref": [
      "r630"
     ]
    },
    "us-gaap_FairValueInputsLevel1Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel1Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Quoted\u00a0Prices\u00a0in Active Markets for Identical Assets (Level\u00a01)",
        "label": "Fair Value, Inputs, Level 1 [Member]",
        "documentation": "Quoted prices in active markets for identical assets or liabilities that the reporting entity can access at the measurement date."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r503",
      "r508",
      "r632",
      "r680",
      "r922",
      "r923",
      "r924"
     ]
    },
    "us-gaap_FairValueInputsLevel2Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel2Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Significant\u00a0Other Observable Inputs (Level\u00a02)",
        "label": "Fair Value, Inputs, Level 2 [Member]",
        "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": [
      "r476",
      "r503",
      "r508",
      "r632",
      "r681",
      "r912",
      "r913",
      "r922",
      "r923",
      "r924"
     ]
    },
    "us-gaap_FairValueInputsLevel3Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueInputsLevel3Member",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unobservable Inputs (Level 3)",
        "label": "Fair Value, Inputs, Level 3 [Member]",
        "documentation": "Unobservable inputs that reflect the entity's own assumption about the assumptions market participants would use in pricing."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r632",
      "r682",
      "r912",
      "r913",
      "r922",
      "r923",
      "r924"
     ]
    },
    "us-gaap_FairValueMeasurementFrequencyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementFrequencyDomain",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurement Frequency [Domain]",
        "label": "Measurement Frequency [Domain]",
        "documentation": "Measurement frequency."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_FairValueMeasurementsFairValueHierarchyDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsFairValueHierarchyDomain",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Fair Value Hierarchy [Domain]",
        "label": "Fair Value Hierarchy and NAV [Domain]",
        "documentation": "Categories used to prioritize the inputs to valuation techniques to measure fair value."
       }
      }
     },
     "auth_ref": [
      "r476",
      "r503",
      "r504",
      "r505",
      "r506",
      "r507",
      "r508",
      "r680",
      "r681",
      "r682",
      "r912",
      "r913",
      "r922",
      "r923",
      "r924"
     ]
    },
    "us-gaap_FairValueMeasurementsRecurringMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueMeasurementsRecurringMember",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value, Measurements, Recurring",
        "label": "Fair Value, Recurring [Member]",
        "documentation": "Frequent fair value measurement. Includes, but is not limited to, fair value adjustment for impairment of asset, liability or equity, frequently measured at fair value."
       }
      }
     },
     "auth_ref": [
      "r630",
      "r636"
     ]
    },
    "us-gaap_FairValueOfFinancialInstrumentsPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValueOfFinancialInstrumentsPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Value Measurements",
        "label": "Fair Value of Financial Instruments, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for determining the fair value of financial instruments."
       }
      }
     },
     "auth_ref": [
      "r18",
      "r32"
     ]
    },
    "us-gaap_FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FairValuesDerivativesBalanceSheetLocationByDerivativeContractTypeByHedgingDesignationTable",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "label": "Fair Values Derivatives, Balance Sheet Location, by Derivative Contract Type [Table]",
        "documentation": "Schedule that discloses the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r112",
      "r114",
      "r123"
     ]
    },
    "us-gaap_FinancialInstrumentAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FinancialInstrumentAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instrument [Axis]",
        "label": "Financial Instrument [Axis]",
        "documentation": "Information by type of financial instrument."
       }
      }
     },
     "auth_ref": [
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r401",
      "r402",
      "r407",
      "r408",
      "r409",
      "r411",
      "r415",
      "r416",
      "r477",
      "r483",
      "r622",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r739",
      "r906",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1073",
      "r1074",
      "r1075",
      "r1076"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetUsefulLife",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Asset, Useful Life",
        "label": "Finite-Lived Intangible Asset, Useful Life",
        "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://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accumulated Amortization",
        "label": "Finite-Lived Intangible Assets, Accumulated Amortization",
        "documentation": "Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r248",
      "r439"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, after Year Five",
        "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",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year One",
        "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": [
      "r168"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFive",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Five",
        "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": [
      "r168"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearFour",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Four",
        "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": [
      "r168"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearThree",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Three",
        "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": [
      "r168"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Finite-Lived Intangible Asset, Expected Amortization, Year Two",
        "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": [
      "r168"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsByMajorClassAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "label": "Finite-Lived Intangible Assets by Major Class [Axis]",
        "documentation": "Information by major type or class of finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r437",
      "r438",
      "r439",
      "r440",
      "r714",
      "r718"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": "us-gaap_FiniteLivedIntangibleAssetsNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Carrying Value",
        "label": "Finite-Lived Intangible Assets, Gross",
        "documentation": "Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r718"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsLineItems",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets [Line Items]",
        "label": "Finite-Lived Intangible Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r714"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsMajorClassNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsMajorClassNameDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finite-Lived Intangible Assets, Major Class Name [Domain]",
        "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": [
      "r67",
      "r69"
     ]
    },
    "us-gaap_FiniteLivedIntangibleAssetsNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FiniteLivedIntangibleAssetsNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      },
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsEstimatedAmortizationExpenseSucceedingFiscalYearsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net Carrying Value",
        "label": "Finite-Lived Intangible Assets, Net",
        "documentation": "Amount after amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life."
       }
      }
     },
     "auth_ref": [
      "r167",
      "r714"
     ]
    },
    "us-gaap_FireMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FireMember",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Fire",
        "label": "Fire [Member]",
        "documentation": "Oxidation process that releases energy in the form of light and heat (flames) and often creates smoke."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCountryMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCountryMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Tax Authority [Member]",
        "label": "Foreign Tax Authority [Member]",
        "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_ForeignCurrencyContractAssetFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyContractAssetFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Economic hedge forward contracts",
        "label": "Foreign Currency Contract, Asset, Fair Value Disclosure",
        "documentation": "Fair value portion of asset contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward contracts, and swaps."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyContractsLiabilityFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyContractsLiabilityFairValueDisclosure",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Economic hedge forward contracts",
        "label": "Foreign Currency Contracts, Liability, Fair Value Disclosure",
        "documentation": "Fair value portion of liability contracts related to the exchange of different currencies, including, but not limited to, foreign currency options, forward (delivery or nondelivery) contracts, and swaps entered into."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ForeignCurrencyTransactionGainLossBeforeTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionGainLossBeforeTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency gain (loss)",
        "label": "Gain (Loss), Foreign Currency Transaction, before Tax",
        "documentation": "Amount, before tax, of realized and unrealized gain (loss) from foreign currency transaction."
       }
      }
     },
     "auth_ref": [
      "r645",
      "r646",
      "r647",
      "r649",
      "r833"
     ]
    },
    "us-gaap_ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Currency",
        "label": "Foreign Currency Transactions and Translations Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for (1) transactions denominated in a currency other than the reporting enterprise's functional currency, (2) translating foreign currency financial statements that are incorporated into the financial statements of the reporting enterprise by consolidation, combination, or the equity method of accounting, and (3) remeasurement of the financial statements of a foreign reporting enterprise in a hyperinflationary economy."
       }
      }
     },
     "auth_ref": [
      "r644"
     ]
    },
    "us-gaap_ForeignExchangeForwardMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ForeignExchangeForwardMember",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign Exchange Forward",
        "label": "Foreign Exchange Forward [Member]",
        "documentation": "Foreign exchange forward traded on an exchange (examples include but are not limited to the International Securities Exchange, Philadelphia Stock Exchange, or the Chicago Mercantile Exchange) for options or future contracts to buy or sell a certain currency, at a specified date, at a fixed exercise exchange rate."
       }
      }
     },
     "auth_ref": [
      "r802",
      "r807",
      "r812",
      "r825",
      "r831",
      "r855",
      "r856",
      "r857",
      "r937"
     ]
    },
    "ecd_ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToDisqualificationOfTaxBenefitsAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Disqualification of Tax Benefits, Amount",
        "label": "Forgone Recovery due to Disqualification of Tax Benefits, Amount"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r1007"
     ]
    },
    "ecd_ForgoneRecoveryDueToExpenseOfEnforcementAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToExpenseOfEnforcementAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Expense of Enforcement, Amount",
        "label": "Forgone Recovery due to Expense of Enforcement, Amount"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r1007"
     ]
    },
    "ecd_ForgoneRecoveryDueToViolationOfHomeCountryLawAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryDueToViolationOfHomeCountryLawAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery due to Violation of Home Country Law, Amount",
        "label": "Forgone Recovery due to Violation of Home Country Law, Amount"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r1007"
     ]
    },
    "ecd_ForgoneRecoveryExplanationOfImpracticabilityTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryExplanationOfImpracticabilityTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forgone Recovery, Explanation of Impracticability",
        "label": "Forgone Recovery, Explanation of Impracticability [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r1007"
     ]
    },
    "ecd_ForgoneRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "ForgoneRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Forgone Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r1007"
     ]
    },
    "us-gaap_FurnitureAndFixturesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "FurnitureAndFixturesMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Furniture and Fixtures [Member]",
        "label": "Furniture and Fixtures [Member]",
        "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": []
    },
    "currency_GBP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "GBP",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "British Pound [Member]",
        "label": "United Kingdom, Pounds"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnDispositionOfAssets1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Loss on disposition of property, plant and equipment",
        "terseLabel": "Loss on disposition of property, plant and equipment",
        "label": "Gain (Loss) on Disposition of Assets",
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee."
       }
      }
     },
     "auth_ref": [
      "r1052"
     ]
    },
    "us-gaap_GainLossOnSaleOfInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Realized (gain) loss on sale of investments",
        "label": "Gain (Loss) on Sale of Investments",
        "documentation": "The net realized gain (loss) on investments sold during the period, not including gains (losses) on securities separately or otherwise categorized as trading, available-for-sale, or held-to-maturity, which, for cash flow reporting, is a component of proceeds from investing activities."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "us-gaap_GainLossOnSaleOfPropertyPlantEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GainLossOnSaleOfPropertyPlantEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 13.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Loss (gain) on disposal of property, plant, and equipment",
        "label": "Gain (Loss) on Disposition of Property Plant Equipment",
        "documentation": "Amount of gain (loss) on sale or disposal of property, plant and equipment assets, including oil and gas property and timber property."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "us-gaap_Goodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Goodwill",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails": {
       "parentTag": "us-gaap_BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet",
       "weight": 1.0,
       "order": 5.0
      },
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "periodStartLabel": "Goodwill, Beginning Balance",
        "periodEndLabel": "Goodwill, Ending Balance",
        "label": "Goodwill",
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r247",
      "r423",
      "r719",
      "r907",
      "r932",
      "r1081",
      "r1088"
     ]
    },
    "us-gaap_GoodwillAndIntangibleAssetsDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill and Intangible Assets Disclosure [Abstract]",
        "label": "Goodwill and Intangible Assets Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GoodwillAndIntangibleAssetsGoodwillPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillAndIntangibleAssetsGoodwillPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill and Intangible Assets, Goodwill, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for goodwill. This accounting policy also may address how an entity assesses and measures impairment of goodwill, how reporting units are determined, how goodwill is allocated to such units, and how the fair values of the reporting units are determined."
       }
      }
     },
     "auth_ref": [
      "r422",
      "r435",
      "r907"
     ]
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/Goodwill"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill",
        "label": "Goodwill Disclosure [Text Block]",
        "documentation": "The entire disclosure for goodwill."
       }
      }
     },
     "auth_ref": [
      "r422",
      "r424",
      "r434",
      "r907"
     ]
    },
    "us-gaap_GoodwillForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Goodwill, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which increases (decreases) an asset representing future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r430"
     ]
    },
    "us-gaap_GoodwillLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillLineItems",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Line Items]",
        "label": "Goodwill [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r435",
      "r907"
     ]
    },
    "us-gaap_GoodwillOtherIncreaseDecrease": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillOtherIncreaseDecrease",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill, Other Increase (Decrease)",
        "label": "Goodwill, Other Increase (Decrease)",
        "documentation": "Amount of increase (decrease), classified as other, of an asset representing the future economic benefits from other assets acquired in a business combination that are not individually identified and separately recognized."
       }
      }
     },
     "auth_ref": [
      "r431"
     ]
    },
    "us-gaap_GoodwillRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GoodwillRollForward",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Goodwill [Roll Forward]",
        "label": "Goodwill [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_GreaterChinaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "GreaterChinaMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Greater China [Member]",
        "verboseLabel": "Greater China [Member]",
        "label": "Greater China [Member]",
        "documentation": "Greater China [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_GrossLossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "GrossLossFromCatastrophes",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Loss from Catastrophes",
        "label": "Gross Loss from Catastrophes",
        "documentation": "Gross Loss from Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_GrossProfit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GrossProfit",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Gross margin",
        "label": "Gross Profit",
        "documentation": "Aggregate revenue less cost of goods and services sold or operating expenses directly attributable to the revenue generation activity."
       }
      }
     },
     "auth_ref": [
      "r150",
      "r286",
      "r335",
      "r341",
      "r346",
      "r349",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r640",
      "r904",
      "r1104"
     ]
    },
    "us-gaap_GuaranteesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "GuaranteesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Guarantees [Abstract]",
        "label": "Guarantees [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "currency_HUF": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "HUF",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hungarian Forint [Member]",
        "label": "Hungary, Forint"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_HardwareAndSoftwareMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "HardwareAndSoftwareMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Computer Hardware And Software [Member]",
        "label": "Hardware And Software [Member]",
        "documentation": "Hardware and software."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_HedgingDesignationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationAxis",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hedging Designation [Axis]",
        "label": "Hedging Designation [Axis]",
        "documentation": "Information by designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r25",
      "r613"
     ]
    },
    "us-gaap_HedgingDesignationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "HedgingDesignationDomain",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Hedging Designation [Domain]",
        "label": "Hedging Designation [Domain]",
        "documentation": "Designation of purpose of derivative instrument."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "dei_IcfrAuditorAttestationFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "IcfrAuditorAttestationFlag",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "ICFR Auditor Attestation Flag",
        "label": "ICFR Auditor Attestation Flag"
       }
      }
     },
     "auth_ref": [
      "r949",
      "r950",
      "r963"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Domestic income from continuing operations before taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Domestic",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to domestic operations."
       }
      }
     },
     "auth_ref": [
      "r287",
      "r600"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Income before income tax expense",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Noncontrolling Interest",
        "documentation": "Amount of income (loss) from continuing operations, including income (loss) from equity method investments, before deduction of income tax expense (benefit), and income (loss) attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r0",
      "r147",
      "r198",
      "r335",
      "r341",
      "r346",
      "r349",
      "r723",
      "r737",
      "r904"
     ]
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign income from continuing operations before taxes",
        "label": "Income (Loss) from Continuing Operations before Income Taxes, Foreign",
        "documentation": "The portion of earnings or loss from continuing operations before income taxes that is attributable to foreign operations, which is defined as Income or Loss generated from operations located outside the entity's country of domicile."
       }
      }
     },
     "auth_ref": [
      "r287",
      "r600"
     ]
    },
    "us-gaap_IncomeStatementAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Statement [Abstract]",
        "label": "Income Statement [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeStatementLocationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Schedule of Employee Service Share-Based Compensation, Allocation of Recognized Period Costs, by Report Line [Axis]",
        "label": "Income Statement Location [Axis]",
        "documentation": "Information by location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r441",
      "r446",
      "r820"
     ]
    },
    "us-gaap_IncomeStatementLocationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeStatementLocationDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Employee Service Share-based Compensation, Allocation of Recognized Period Costs, Report Line [Domain]",
        "label": "Income Statement Location [Domain]",
        "documentation": "Location in the income statement."
       }
      }
     },
     "auth_ref": [
      "r446",
      "r820"
     ]
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority [Axis]",
        "label": "Income Tax Authority [Axis]",
        "documentation": "Information by tax jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_IncomeTaxAuthorityDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority [Domain]",
        "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://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority, Name [Axis]",
        "label": "Income Tax Authority, Name [Axis]",
        "documentation": "Information by name of taxing authority."
       }
      }
     },
     "auth_ref": [
      "r20"
     ]
    },
    "us-gaap_IncomeTaxAuthorityNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxAuthorityNameDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Tax Authority, Name [Domain]",
        "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": {
        "terseLabel": "Income Tax Disclosure [Abstract]",
        "label": "Income Tax Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxes"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income Taxes",
        "label": "Income Tax Disclosure [Text Block]",
        "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": [
      "r288",
      "r569",
      "r577",
      "r584",
      "r588",
      "r596",
      "r602",
      "r603",
      "r604",
      "r771"
     ]
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxExpenseBenefit",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_NetIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      },
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/IncomeTaxesConstituentsofProvisionforIncomeTaxesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax expense on continuing operations",
        "totalLabel": "Income tax expense (benefit), continuing operations, Total",
        "label": "Income Tax Expense (Benefit)",
        "documentation": "Amount of current income tax expense (benefit) and deferred income tax expense (benefit) pertaining to continuing operations."
       }
      }
     },
     "auth_ref": [
      "r208",
      "r223",
      "r313",
      "r314",
      "r338",
      "r575",
      "r597",
      "r744"
     ]
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Taxes",
        "label": "Income Tax, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for income taxes, which may include its accounting policies for recognizing and measuring deferred tax assets and liabilities and related valuation allowances, recognizing investment tax credits, operating loss carryforwards, tax credit carryforwards, and other carryforwards, methodologies for determining its effective income tax rate and the characterization of interest and penalties in the financial statements."
       }
      }
     },
     "auth_ref": [
      "r275",
      "r571",
      "r572",
      "r584",
      "r585",
      "r587",
      "r589",
      "r765"
     ]
    },
    "us-gaap_IncomeTaxesPaidNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncomeTaxesPaidNet",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax paid net",
        "label": "Income Taxes Paid, Net",
        "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": [
      "r50"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsPayable",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts payable",
        "label": "Increase (Decrease) in Accounts Payable",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of liabilities incurred (and for which invoices have typically been received) and payable to vendors for goods and services received that are used in an entity's business."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Accounts receivable",
        "label": "Increase (Decrease) in Accounts Receivable",
        "documentation": "The increase (decrease) during the reporting period in amount due within one year (or one business cycle) from customers for the credit sale of goods and services."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedIncomeTaxesPayable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedIncomeTaxesPayable",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 19.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued income taxes",
        "label": "Increase (Decrease) in Income Taxes Payable",
        "documentation": "The increase (decrease) during the period in the amount due for taxes based on the reporting entity's earnings or attributable to the entity's income earning process (business presence) within a given jurisdiction."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accrued expenses",
        "label": "Increase (Decrease) in Accrued Liabilities",
        "documentation": "The increase (decrease) during the reporting period in the aggregate amount of expenses incurred but not yet paid."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "cgnx_IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase in compensation expense due to revised estimated forfeiture rates",
        "label": "Increase (Decrease) In Compensation Expense Due To Revised Estimated Forfeiture Rates",
        "documentation": "Increase (decrease) in compensation expense due to revised estimated forfeiture rates."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInContractWithCustomerAsset",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 16.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Unbilled revenue",
        "label": "Increase (Decrease) in Contract with Customer, Asset",
        "documentation": "Amount of increase (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."
       }
      }
     },
     "auth_ref": [
      "r1051"
     ]
    },
    "us-gaap_IncreaseDecreaseInContractWithCustomerLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInContractWithCustomerLiability",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 18.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred revenue and customer deposits",
        "label": "Increase (Decrease) in Contract with Customer, Liability",
        "documentation": "Amount of increase (decrease) in obligation to transfer good or service to customer for which consideration has been received or is receivable."
       }
      }
     },
     "auth_ref": [
      "r708",
      "r1051"
     ]
    },
    "us-gaap_IncreaseDecreaseInDeferredIncomeTaxes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInDeferredIncomeTaxes",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 15.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Change in deferred income taxes",
        "label": "Increase (Decrease) in Deferred Income Taxes",
        "documentation": "The increase (decrease) during the reporting period in the account that represents the temporary difference that results from Income or Loss that is recognized for accounting purposes but not for tax purposes and vice versa."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInInventories",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Inventories",
        "label": "Increase (Decrease) in Inventories",
        "documentation": "The increase (decrease) during the reporting period in the aggregate value of all inventory held by the reporting entity, associated with underlying transactions that are classified as operating activities."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInOtherOperatingCapitalNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInOtherOperatingCapitalNet",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 10.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Other",
        "label": "Increase (Decrease) in Other Operating Assets and Liabilities, Net",
        "documentation": "Amount of increase (decrease) in operating assets after deduction of operating liabilities classified as other."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Prepaid expenses and other current assets",
        "label": "Increase (Decrease) in Prepaid Expense and Other Assets",
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r14"
     ]
    },
    "us-gaap_IncreaseDecreaseInStockholdersEquityRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IncreaseDecreaseInStockholdersEquityRollForward",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "label": "Increase (Decrease) in Stockholders' Equity [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_IndemnificationProvisionsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "IndemnificationProvisionsTextBlock",
     "presentation": [
      "http://cognex.com/role/IndemnificationProvisions"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Indemnification Provisions",
        "label": "Indemnification Provisions [Text Block]",
        "documentation": "Indemnification provisions are a potential liability whereby the Company indemnifies certain directors, officers, and employees (current or former) against expenses incurred by them in relation to specific legal proceedings. The company also indemnifies other parties for specific situations."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_IndividualAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "IndividualAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure",
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure",
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Individual:",
        "label": "Individual [Axis]"
       }
      }
     },
     "auth_ref": [
      "r962",
      "r971",
      "r981",
      "r998",
      "r1007",
      "r1011",
      "r1019"
     ]
    },
    "ecd_InsiderTradingArrLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingArrLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Arrangements [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "ecd_InsiderTradingPoliciesProcLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTradingPoliciesProcLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Insider Trading Policies and Procedures [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r951",
      "r1023"
     ]
    },
    "ecd_InsiderTrdPoliciesProcAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Adopted",
        "label": "Insider Trading Policies and Procedures Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r951",
      "r1023"
     ]
    },
    "ecd_InsiderTrdPoliciesProcNotAdoptedTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "InsiderTrdPoliciesProcNotAdoptedTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingPoliciesProc"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insider Trading Policies and Procedures Not Adopted",
        "label": "Insider Trading Policies and Procedures Not Adopted [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r951",
      "r1023"
     ]
    },
    "us-gaap_InsuranceRecoveries": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InsuranceRecoveries",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries",
        "label": "Insurance Recoveries",
        "documentation": "The amount recovered from insurance. These recoveries reduce costs and losses that are reported as a separate line item under operating expenses."
       }
      }
     },
     "auth_ref": [
      "r152"
     ]
    },
    "cgnx_InsuranceRecoveriesBusinessInterruption": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "InsuranceRecoveriesBusinessInterruption",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries, Business Interruption",
        "label": "Insurance Recoveries, Business Interruption",
        "documentation": "Insurance Recoveries, Business Interruption"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_InsuranceRecoveriesLostInventoryAndOtherLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "InsuranceRecoveriesLostInventoryAndOtherLosses",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Insurance Recoveries, Lost Inventory And Other Losses",
        "label": "Insurance Recoveries, Lost Inventory And Other Losses",
        "documentation": "Insurance Recoveries, Lost Inventory And Other Losses"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_IntangibleAssetsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssets"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets",
        "label": "Intangible Assets Disclosure [Text Block]",
        "documentation": "The entire disclosure for all or part of the information related to intangible assets."
       }
      }
     },
     "auth_ref": [
      "r436"
     ]
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible Assets",
        "label": "Intangible Assets, Finite-Lived, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets."
       }
      }
     },
     "auth_ref": [
      "r69",
      "r710",
      "r711",
      "r712",
      "r714",
      "r898"
     ]
    },
    "us-gaap_IntangibleAssetsNetExcludingGoodwill": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "IntangibleAssetsNetExcludingGoodwill",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Intangible assets, net",
        "label": "Intangible Assets, Net (Excluding Goodwill)",
        "documentation": "Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges."
       }
      }
     },
     "auth_ref": [
      "r65",
      "r68"
     ]
    },
    "us-gaap_InterestReceivable": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InterestReceivable",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest Receivable",
        "label": "Interest Receivable",
        "documentation": "Carrying amount as of the balance sheet date of interest earned but not received. Also called accrued interest or accrued interest receivable."
       }
      }
     },
     "auth_ref": [
      "r1043",
      "r1176"
     ]
    },
    "us-gaap_InternalUseSoftwarePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InternalUseSoftwarePolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Internal-use Software",
        "label": "Internal Use Software, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for costs incurred when both (1) the software is acquired, internally developed, or modified solely to meet the entity's internal needs, and (2) during the software's development or modification, no substantive plan exists or is being developed to market the software externally."
       }
      }
     },
     "auth_ref": [
      "r2",
      "r3"
     ]
    },
    "us-gaap_InventoryCurrentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryCurrentTable",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory, Current [Table]",
        "label": "Inventory, Current [Table]",
        "documentation": "Disclosure of information about inventory expected to be sold or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory Disclosure [Abstract]",
        "label": "Inventory Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InventoryDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/Inventories"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Inventories",
        "label": "Inventory Disclosure [Text Block]",
        "documentation": "The entire disclosure for inventory. Includes, but is not limited to, the basis of stating inventory, the method of determining inventory cost, the classes of inventory, and the nature of the cost elements included in inventory."
       }
      }
     },
     "auth_ref": [
      "r419"
     ]
    },
    "us-gaap_InventoryFinishedGoodsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryFinishedGoodsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Finished goods",
        "label": "Inventory, Finished Goods, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of merchandise or goods held by the company that are readily available for sale."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r893"
     ]
    },
    "us-gaap_InventoryLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryLineItems",
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventory [Line Items]",
        "label": "Inventory [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_InventoryNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 4.0
      },
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "totalLabel": "Inventories",
        "label": "Inventory, Net",
        "documentation": "Amount after valuation and LIFO reserves of inventory expected to be sold, or consumed within one year or operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r257",
      "r891",
      "r932"
     ]
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Inventory, Policy [Policy Text Block]",
        "documentation": "Disclosure of inventory accounting policy for inventory classes, including, but not limited to, basis for determining inventory amounts, methods by which amounts are added and removed from inventory classes, loss recognition on impairment of inventories, and situations in which inventories are stated above cost."
       }
      }
     },
     "auth_ref": [
      "r210",
      "r242",
      "r256",
      "r419",
      "r420",
      "r421",
      "r709",
      "r899"
     ]
    },
    "us-gaap_InventoryRawMaterialsNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryRawMaterialsNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Raw materials",
        "label": "Inventory, Raw Materials, Net of Reserves",
        "documentation": "Carrying amount, net of valuation reserves and adjustments, as of the balance sheet date of unprocessed items to be consumed in the manufacturing or production process."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r895"
     ]
    },
    "us-gaap_InventoryWorkInProcessNetOfReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InventoryWorkInProcessNetOfReserves",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/InventoriesInventoriesDetail": {
       "parentTag": "us-gaap_InventoryNet",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/InventoriesInventoriesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Work-in-process",
        "label": "Inventory, Work in Process, Net of Reserves",
        "documentation": "Carrying amount, net of reserves and adjustments, as of the balance sheet date of merchandise or goods which are partially completed. This inventory is generally comprised of raw materials, labor and factory overhead costs, which require further materials, labor and overhead to be converted into finished goods, and which generally require the use of estimates to determine percentage complete and pricing."
       }
      }
     },
     "auth_ref": [
      "r165",
      "r894"
     ]
    },
    "cgnx_InvestmentDurationAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "InvestmentDurationAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Duration [Axis]",
        "label": "Investment Duration [Axis]",
        "documentation": "Investment Duration"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_InvestmentDurationDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "InvestmentDurationDomain",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Duration [Domain]",
        "label": "Investment Duration [Domain]",
        "documentation": "Investment Duration [Domain]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentIncomeNonoperating": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentIncomeNonoperating",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment income",
        "label": "Investment Income, Nonoperating",
        "documentation": "The aggregate amount of income from investments (for example, dividends) not considered a component of the entity's core operations."
       }
      }
     },
     "auth_ref": [
      "r154"
     ]
    },
    "us-gaap_InvestmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Investment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for investment in financial asset."
       }
      }
     },
     "auth_ref": [
      "r743",
      "r761",
      "r762",
      "r763",
      "r764",
      "r842",
      "r843"
     ]
    },
    "us-gaap_InvestmentTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentTypeAxis",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Type [Axis]",
        "label": "Investment Type [Axis]",
        "documentation": "Information by type of investments."
       }
      }
     },
     "auth_ref": [
      "r776",
      "r778",
      "r779",
      "r782",
      "r785",
      "r839",
      "r841",
      "r845",
      "r848",
      "r849",
      "r862",
      "r863",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r937"
     ]
    },
    "us-gaap_InvestmentTypeCategorizationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentTypeCategorizationMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Investment Type Categorization [Domain]",
        "label": "Investments [Domain]",
        "documentation": "Asset obtained to generate income or appreciate in value."
       }
      }
     },
     "auth_ref": [
      "r776",
      "r778",
      "r779",
      "r782",
      "r785",
      "r839",
      "r841",
      "r845",
      "r848",
      "r849",
      "r862",
      "r863",
      "r865",
      "r866",
      "r867",
      "r868",
      "r869",
      "r937"
     ]
    },
    "us-gaap_InvestmentsClassifiedByContractualMaturityDateTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsClassifiedByContractualMaturityDateTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effective Maturity Dates of Available-for-Sale Investments",
        "label": "Investments Classified by Contractual Maturity Date [Table Text Block]",
        "documentation": "Tabular disclosure of maturities of an entity's investments as well as any other information pertinent to the investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestments"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash, Cash Equivalents, and Investments",
        "label": "Investments in Debt and Equity Instruments, Cash and Cash Equivalents, Unrealized and Realized Gains (Losses) [Text Block]",
        "documentation": "The entire disclosure for cash, cash equivalents, investments in debt and equity instruments (including cost and equity investees and related income statement amounts), equity and cost method investments, investments in joint ventures and any other investment."
       }
      }
     },
     "auth_ref": [
      "r637"
     ]
    },
    "country_JP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "JP",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "JAPAN",
        "label": "JAPAN"
       }
      }
     },
     "auth_ref": []
    },
    "currency_JPY": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "JPY",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Japanese Yen [Member]",
        "label": "Japan, Yen"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "JoergKuechenMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen [Member]",
        "documentation": "Joerg Kuechen"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenRuleTradingArrangementCommonStockPurchaseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "JoergKuechenRuleTradingArrangementCommonStockPurchaseMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase [Member]",
        "documentation": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Purchase"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_JoergKuechenRuleTradingArrangementCommonStockSaleMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "JoergKuechenRuleTradingArrangementCommonStockSaleMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "label": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale [Member]",
        "documentation": "Joerg Kuechen, Rule Trading Arrangement, Common Stock Sale"
       }
      }
     },
     "auth_ref": []
    },
    "country_KP": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "KP",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF",
        "label": "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LandMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Land [Member]",
        "label": "Land [Member]",
        "documentation": "Part of earth's surface not covered by water."
       }
      }
     },
     "auth_ref": [
      "r1109"
     ]
    },
    "us-gaap_LeaseholdImprovementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeaseholdImprovementsMember",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Leasehold Improvements [Member]",
        "label": "Leasehold Improvements [Member]",
        "documentation": "Additions or improvements to assets held under a lease arrangement."
       }
      }
     },
     "auth_ref": [
      "r170"
     ]
    },
    "us-gaap_LeasesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LeasesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Accounting Pronouncements or Change in Accounting Principle [Table]",
        "label": "Leases [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeLeasesPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeLeasesPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Leases [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for leasing arrangement entered into by lessee."
       }
      }
     },
     "auth_ref": [
      "r666"
     ]
    },
    "cgnx_LesseeOperatingLeaseComponents": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "LesseeOperatingLeaseComponents",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Components",
        "label": "Lessee, Operating Lease, Components",
        "documentation": "Lessee, Operating Lease, Components"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseLiabilityMaturityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityMaturityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/LeasesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of lease payments",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Maturity [Table Text Block]",
        "documentation": "Tabular disclosure of undiscounted cash flows of lessee's operating lease liability. Includes, but is not limited to, reconciliation of undiscounted cash flows to operating lease liability recognized in statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDue",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Liability, Payments, Due",
        "totalLabel": "Total",
        "label": "Lessee, Operating Lease, Liability, to be Paid",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Thereafter",
        "label": "Lessee, Operating Lease, Liability, to be Paid, after Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease due after fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2024",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year One",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in next fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFive": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFive",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2028",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Five",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fifth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearFour": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearFour",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2027",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Four",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in fourth fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearThree": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearThree",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2026",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Three",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in third fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDueYearTwo": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsDueYearTwo",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails": {
       "parentTag": "us-gaap_LesseeOperatingLeaseLiabilityPaymentsDue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/LeasesScheduleofPaymentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "2025",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Year Two",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease to be paid in second fiscal year following current fiscal year. Excludes interim and annual periods when interim periods are reported from current statement of financial position date (rolling approach)."
       }
      }
     },
     "auth_ref": [
      "r670"
     ]
    },
    "us-gaap_LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "label": "Lessee, Operating Lease, Liability, to be Paid, Remainder of Fiscal Year",
        "documentation": "Amount of lessee's undiscounted obligation for lease payment for operating lease having initial or remaining lease term in excess of one year to be paid in remainder of current fiscal year."
       }
      }
     },
     "auth_ref": [
      "r1158"
     ]
    },
    "cgnx_LesseeOperatingLeaseOptionToRenewTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "LesseeOperatingLeaseOptionToRenewTermOfContract",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "label": "Lessee, Operating Lease, Option to Renew, Term of Contract",
        "documentation": "Lessee, Operating Lease, Option to Renew, Term of Contract"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LesseeOperatingLeaseTermOfContract": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeaseTermOfContract",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessee, Operating Lease, Term of Contract",
        "label": "Lessee, Operating Lease, Term of Contract",
        "documentation": "Term of lessee's operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r1157"
     ]
    },
    "us-gaap_LesseeOperatingLeasesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LesseeOperatingLeasesTextBlock",
     "presentation": [
      "http://cognex.com/role/LeasesLeases"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Leases",
        "label": "Lessee, Operating Leases [Text Block]",
        "documentation": "The entire disclosure for operating leases of lessee. Includes, but is not limited to, description of operating lease and maturity analysis of operating lease liability."
       }
      }
     },
     "auth_ref": [
      "r661"
     ]
    },
    "us-gaap_LessorLeaseDescriptionLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LessorLeaseDescriptionLineItems",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Line Items]",
        "label": "Lessor, Lease, Description [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r671"
     ]
    },
    "us-gaap_LessorLeaseDescriptionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LessorLeaseDescriptionTable",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Lessor, Lease, Description [Table]",
        "label": "Lessor, Lease, Description [Table]",
        "documentation": "Disclosure of information about lessor's leases."
       }
      }
     },
     "auth_ref": [
      "r671"
     ]
    },
    "us-gaap_Liabilities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "Liabilities",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities",
        "label": "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": [
      "r36",
      "r286",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r609",
      "r610",
      "r611",
      "r640",
      "r794",
      "r903",
      "r945",
      "r1104",
      "r1159",
      "r1160"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total liabilities and shareholders' equity",
        "label": "Liabilities and Equity",
        "documentation": "Amount of liabilities and equity items, including the portion of equity attributable to noncontrolling interests, if any."
       }
      }
     },
     "auth_ref": [
      "r139",
      "r197",
      "r733",
      "r932",
      "r1054",
      "r1077",
      "r1152"
     ]
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "LIABILITIES AND SHAREHOLDERS\u2019 EQUITY",
        "label": "Liabilities and Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total current liabilities",
        "label": "Liabilities, Current",
        "documentation": "Total obligations incurred as part of normal operations that are expected to be paid during the following twelve months or within one business cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r38",
      "r241",
      "r286",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r609",
      "r610",
      "r611",
      "r640",
      "r932",
      "r1104",
      "r1159",
      "r1160"
     ]
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesCurrentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Current liabilities:",
        "label": "Liabilities, Current [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilitiesFairValueDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilitiesFairValueDisclosureAbstract",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Liabilities:",
        "label": "Liabilities, Fair Value Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LiabilityForCatastropheClaimsByCatastrophicEventAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilityForCatastropheClaimsByCatastrophicEventAxis",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Catastrophic Event [Axis]",
        "label": "Catastrophic Event [Axis]",
        "documentation": "Information by type of catastrophic event, for example, but not limited to, earthquake, windstorm, fire or explosion."
       }
      }
     },
     "auth_ref": [
      "r200"
     ]
    },
    "us-gaap_LiabilityForUncertainTaxPositionsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LiabilityForUncertainTaxPositionsNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserve for income taxes",
        "label": "Liability for Uncertainty in Income Taxes, Noncurrent",
        "documentation": "Amount recognized for uncertainty in income taxes classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r39"
     ]
    },
    "dei_LocalPhoneNumber": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "LocalPhoneNumber",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Local Phone Number",
        "label": "Local Phone Number",
        "documentation": "Local phone number for entity."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LongTermInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LongTermInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 2.0
      },
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "cgnx_CashCashEquivalentsShortTermAndLongTermInvestments",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current investments, amortized cost of $250,790 and $476,148 in 2023 and 2022, respectively, allowance for credit losses of $0 in 2023 and 2022",
        "totalLabel": "Non-current investments",
        "label": "Long-Term Investments",
        "documentation": "The total amount of investments that are intended to be held for an extended period of time (longer than one operating cycle)."
       }
      }
     },
     "auth_ref": [
      "r244"
     ]
    },
    "cgnx_LongTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "LongTermInvestmentsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-term investments [Member]",
        "label": "Long Term Investments [Member]",
        "documentation": "Long-term investments."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_LossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "LossFromCatastrophes",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss from Catastrophes",
        "label": "Loss from Catastrophes",
        "documentation": "The charge against earnings in the period for the uninsured portion of a loss from a fire, explosion, or natural disaster (hurricane, earthquake)."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "cgnx_LossGainFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "LossGainFromCatastrophes",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Loss (recovery) from fire",
        "label": "Loss (Gain) From Catastrophes",
        "documentation": "Loss (Gain) From Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "currency_MXN": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "MXN",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Mexican Peso [Member]",
        "label": "Mexico, Pesos"
       }
      }
     },
     "auth_ref": []
    },
    "srt_MajorCustomersAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MajorCustomersAxis",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Axis]",
        "label": "Customer [Axis]",
        "documentation": "Information by name or description of a single external customer or a group of external customers."
       }
      }
     },
     "auth_ref": [
      "r355",
      "r917",
      "r1108",
      "r1170",
      "r1171"
     ]
    },
    "cgnx_MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum decrease in income tax expense due to release in reserves",
        "label": "Maximum Decrease In Income Tax Expense Due To Release In Reserves",
        "documentation": "Maximum decrease in income tax expense due to release in reserves."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MaximumInvestmentOfCompanyInPartnership": {
     "xbrltype": "percentItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MaximumInvestmentOfCompanyInPartnership",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum investment of the company in partnership",
        "label": "Maximum Investment Of Company In Partnership",
        "documentation": "Maximum investment of the company in partnership."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MaximumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MaximumMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maximum [Member]",
        "label": "Maximum [Member]",
        "documentation": "Upper limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r458",
      "r459",
      "r460",
      "r518",
      "r707",
      "r751",
      "r786",
      "r787",
      "r840",
      "r844",
      "r846",
      "r847",
      "r864",
      "r884",
      "r885",
      "r905",
      "r914",
      "r927",
      "r934",
      "r1106",
      "r1161",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1166"
     ]
    },
    "us-gaap_MaximumRemainingMaturityOfForeignCurrencyDerivatives1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MaximumRemainingMaturityOfForeignCurrencyDerivatives1",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities of forward of contracts",
        "label": "Maximum Remaining Maturity of Foreign Currency Derivatives",
        "documentation": "Maximum amount of time remaining before foreign currency exchange rate derivatives mature or expire, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MeasureAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Measure:",
        "label": "Measure [Axis]"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "ecd_MeasureName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MeasureName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Measure Name"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "cgnx_MinimumAgeToBeEligibleToDefinedContributionPlan": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MinimumAgeToBeEligibleToDefinedContributionPlan",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlanAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum age to be eligible to defined contribution plan",
        "label": "Minimum Age To Be Eligible To Defined Contribution Plan",
        "documentation": "Minimum age to be eligible to defined contribution plan."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum decrease in income tax expense due to release in reserves",
        "label": "Minimum Decrease In Income Tax Expense Due To Release In Reserves",
        "documentation": "Minimum decrease in income tax expense due to release in reserves."
       }
      }
     },
     "auth_ref": []
    },
    "srt_MinimumMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "MinimumMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Minimum [Member]",
        "label": "Minimum [Member]",
        "documentation": "Lower limit of the provided range."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r458",
      "r459",
      "r460",
      "r518",
      "r707",
      "r751",
      "r786",
      "r787",
      "r840",
      "r844",
      "r846",
      "r847",
      "r864",
      "r884",
      "r885",
      "r905",
      "r914",
      "r927",
      "r934",
      "r1106",
      "r1161",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1166"
     ]
    },
    "ecd_MnpiDiscTimedForCompValFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MnpiDiscTimedForCompValFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "MNPI Disclosure Timed for Compensation Value",
        "label": "MNPI Disclosure Timed for Compensation Value [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1010"
     ]
    },
    "us-gaap_MoneyMarketFundsAtCarryingValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MoneyMarketFundsAtCarryingValue",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail": {
       "parentTag": "us-gaap_CashAndCashEquivalentsAtCarryingValue",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market instruments",
        "label": "Money Market Funds, at Carrying Value",
        "documentation": "Investment in short-term money-market instruments (such as commercial paper, banker's acceptances, repurchase agreements, government securities, certificates of deposit, and so forth) which are highly liquid (that is, readily convertible to known amounts of cash) and so near their maturity that they present an insignificant risk of changes in value because of changes in interest rates. Generally, only investments with original maturities of three months or less qualify as cash equivalents by definition. Original maturity means an original maturity to the entity holding the investment. For example, both a three-month US Treasury bill and a three-year Treasury note purchased three months from maturity qualify as cash equivalents. However, a Treasury note purchased three-years ago does not become a cash equivalent when its remaining maturity is three months."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MoneyMarketInstrumentsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MoneyMarketInstrumentsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Money market instruments",
        "label": "Money Market Instruments Fair Value Disclosure",
        "documentation": "Money market instruments fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_MoritexCorporationMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "MoritexCorporationMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/InventoriesInventoriesDetail",
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Moritex Corporation",
        "label": "Moritex Corporation [Member]",
        "documentation": "Moritex Corporation"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MovementInStandardProductWarrantyAccrualRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MovementInStandardProductWarrantyAccrualRollForward",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "label": "Movement in Standard Product Warranty Accrual [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_MovementInValuationAllowancesAndReservesRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MovementInValuationAllowancesAndReservesRollForward",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]",
        "label": "SEC Schedule, 12-09, Movement in Valuation Allowances and Reserves [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_MtrlTermsOfTrdArrTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "MtrlTermsOfTrdArrTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Material Terms of Trading Arrangement",
        "label": "Material Terms of Trading Arrangement [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "us-gaap_MunicipalBondsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "MunicipalBondsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Municipal Bonds [Member]",
        "label": "Municipal Bonds [Member]",
        "documentation": "Long-term debt securities issued by state, city or local governments or the agencies operated by state, city or local governments."
       }
      }
     },
     "auth_ref": []
    },
    "srt_NameOfMajorCustomerDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "NameOfMajorCustomerDomain",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Customer [Domain]",
        "label": "Customer [Domain]",
        "documentation": "Single external customer or group of external customers."
       }
      }
     },
     "auth_ref": [
      "r355",
      "r917",
      "r1108",
      "r1170",
      "r1171"
     ]
    },
    "ecd_NamedExecutiveOfficersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NamedExecutiveOfficersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Named Executive Officers, Footnote",
        "label": "Named Executive Officers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "cgnx_NatureOfOperationsPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "NatureOfOperationsPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nature of Operations",
        "label": "Nature Of Operations [Policy Text Block]",
        "documentation": "Nature of Operations."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash used in financing activities",
        "label": "Net Cash Provided by (Used in) Financing Activities",
        "documentation": "Amount of cash inflow (outflow) from financing activities, including discontinued operations. Financing activity cash flows include obtaining resources from owners and providing them with a return on, and a return of, their investment; borrowing money and repaying amounts borrowed, or settling the obligation; and obtaining and paying for other resources obtained from creditors on long-term credit."
       }
      }
     },
     "auth_ref": [
      "r283"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from financing activities:",
        "label": "Net Cash Provided by (Used in) Financing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by (used in) investing activities",
        "label": "Net Cash Provided by (Used in) Investing Activities",
        "documentation": "Amount of cash inflow (outflow) from investing activities, including discontinued operations. Investing activity cash flows include making and collecting loans and acquiring and disposing of debt or equity instruments and property, plant, and equipment and other productive assets."
       }
      }
     },
     "auth_ref": [
      "r283"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from investing activities:",
        "label": "Net Cash Provided by (Used in) Investing Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net cash provided by operating activities",
        "label": "Net Cash Provided by (Used in) Operating Activities",
        "documentation": "Amount of cash inflow (outflow) from operating activities, including discontinued operations. Operating activity cash flows include transactions, adjustments, and changes in value not defined as investing or financing activities."
       }
      }
     },
     "auth_ref": [
      "r160",
      "r161",
      "r162"
     ]
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetCashProvidedByUsedInOperatingActivitiesAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash flows from operating activities:",
        "label": "Net Cash Provided by (Used in) Operating Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NetIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 1.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 6.0
      },
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net income",
        "terseLabel": "Net income",
        "label": "Net Income (Loss)",
        "documentation": "The portion of profit or loss for the period, net of income taxes, which is attributable to the parent."
       }
      }
     },
     "auth_ref": [
      "r148",
      "r162",
      "r199",
      "r239",
      "r270",
      "r273",
      "r278",
      "r286",
      "r303",
      "r307",
      "r308",
      "r309",
      "r310",
      "r313",
      "r314",
      "r321",
      "r335",
      "r341",
      "r346",
      "r349",
      "r395",
      "r467",
      "r468",
      "r469",
      "r470",
      "r471",
      "r472",
      "r473",
      "r474",
      "r475",
      "r626",
      "r640",
      "r738",
      "r817",
      "r834",
      "r835",
      "r904",
      "r943",
      "r1104"
     ]
    },
    "us-gaap_NetRentableArea": {
     "xbrltype": "areaItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NetRentableArea",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net Rentable Area",
        "label": "Net Rentable Area",
        "documentation": "Net rentable area for properties owned."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock",
     "presentation": [
      "http://cognex.com/role/NewPronouncements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Pronouncements",
        "label": "Accounting Standards Update and Change in Accounting Principle [Text Block]",
        "documentation": "The entire disclosure for change in accounting principle. Includes, but is not limited to, nature, reason, and method of adopting amendment to accounting standards or other change in accounting principle."
       }
      }
     },
     "auth_ref": [
      "r221",
      "r222",
      "r224",
      "r238",
      "r301",
      "r302",
      "r305",
      "r306",
      "r315",
      "r316",
      "r397",
      "r398",
      "r593",
      "r594",
      "r595",
      "r620",
      "r623",
      "r627",
      "r628",
      "r629",
      "r641",
      "r642",
      "r643",
      "r659",
      "r660",
      "r673",
      "r715",
      "r716",
      "r717",
      "r755",
      "r756",
      "r757",
      "r758",
      "r759"
     ]
    },
    "us-gaap_NewAccountingPronouncementsPolicyPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NewAccountingPronouncementsPolicyPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "New Accounting Pronouncements",
        "label": "New Accounting Pronouncements, Policy [Policy Text Block]",
        "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": []
    },
    "cgnx_NonCashLossFromCatastrophes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "NonCashLossFromCatastrophes",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 17.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-cash, loss from catastrophes",
        "label": "Non-cash, Loss from Catastrophes",
        "documentation": "Non-cash, Loss from Catastrophes"
       }
      }
     },
     "auth_ref": []
    },
    "ecd_NonGaapMeasureDescriptionTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonGaapMeasureDescriptionTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-GAAP Measure Description",
        "label": "Non-GAAP Measure Description [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "ecd_NonNeosMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonNeosMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-NEOs",
        "label": "Non-NEOs [Member]"
       }
      }
     },
     "auth_ref": [
      "r959",
      "r971",
      "r981",
      "r998",
      "r1007"
     ]
    },
    "ecd_NonPeoNeoAvgCompActuallyPaidAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgCompActuallyPaidAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Compensation Actually Paid Amount",
        "label": "Non-PEO NEO Average Compensation Actually Paid Amount"
       }
      }
     },
     "auth_ref": [
      "r988"
     ]
    },
    "ecd_NonPeoNeoAvgTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoAvgTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO Average Total Compensation Amount",
        "label": "Non-PEO NEO Average Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r987"
     ]
    },
    "ecd_NonPeoNeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonPeoNeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-PEO NEO",
        "label": "Non-PEO NEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r998"
     ]
    },
    "ecd_NonRule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Adopted",
        "label": "Non-Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "ecd_NonRule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "NonRule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-Rule 10b5-1 Arrangement Terminated",
        "label": "Non-Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "us-gaap_NoncompeteAgreementsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncompeteAgreementsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-compete agreements",
        "label": "Noncompete Agreements [Member]",
        "documentation": "Agreement in which one party agrees not to pursue a similar trade in competition with another party."
       }
      }
     },
     "auth_ref": [
      "r104"
     ]
    },
    "us-gaap_NoncurrentAssets": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NoncurrentAssets",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Long-lived assets",
        "label": "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": [
      "r354"
     ]
    },
    "cgnx_NoncurrentDeferredTaxAssetsDeprecation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "NoncurrentDeferredTaxAssetsDeprecation",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails": {
       "parentTag": "cgnx_DeferredTaxAssetsWithJurisdictionalNettingGross",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/IncomeTaxesConstituentsofDeferredTaxAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Depreciation",
        "label": "Noncurrent Deferred Tax Assets Deprecation",
        "documentation": "Noncurrent deferred tax assets deprecation."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NondesignatedMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NondesignatedMember",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsAdditionalDetailsDetails",
      "http://cognex.com/role/DerivativeInstrumentsBalanceSheetLocationDetails",
      "http://cognex.com/role/DerivativeInstrumentsGainLossRecognizedinOtherComprehensiveIncomeLossDetails",
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Not Designated as Hedging Instrument [Member]",
        "label": "Not Designated as Hedging Instrument [Member]",
        "documentation": "Derivative instrument not designated as hedging instrument under Generally Accepted Accounting Principles (GAAP)."
       }
      }
     },
     "auth_ref": [
      "r25"
     ]
    },
    "us-gaap_NonvestedRestrictedStockSharesActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NonvestedRestrictedStockSharesActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Nonvested Restricted Stock Shares Activity",
        "label": "Nonvested Restricted Stock Shares Activity [Table Text Block]",
        "documentation": "Tabular disclosure of the changes in outstanding nonvested restricted stock shares."
       }
      }
     },
     "auth_ref": [
      "r31"
     ]
    },
    "cgnx_NumberOfGroupsWithinEmployeePopulation": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "NumberOfGroupsWithinEmployeePopulation",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of groups within the employee population",
        "label": "Number Of Groups Within Employee Population",
        "documentation": "Number of groups within employee population."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_NumberOfReportableSegments": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "NumberOfReportableSegments",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of reportable segments",
        "label": "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": [
      "r1067"
     ]
    },
    "us-gaap_OffsettingAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OffsettingAssetsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Offsetting Assets",
        "label": "Offsetting Assets [Table Text Block]",
        "documentation": "Tabular disclosure of derivative and other financial assets that are subject to offsetting, including master netting arrangements."
       }
      }
     },
     "auth_ref": [
      "r143",
      "r261"
     ]
    },
    "us-gaap_OneTimeTerminationBenefitsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OneTimeTerminationBenefitsMember",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "One-time Termination Benefits [Member]",
        "label": "One-time Termination Benefits [Member]",
        "documentation": "A lump sum payment to an involuntarily terminated employee in conjunction with exit or disposal activities."
       }
      }
     },
     "auth_ref": [
      "r908",
      "r909",
      "r910",
      "r911"
     ]
    },
    "us-gaap_OperatingIncomeLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingIncomeLoss",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Operating income",
        "label": "Operating Income (Loss)",
        "documentation": "The net result for the period of deducting operating expenses from operating revenues."
       }
      }
     },
     "auth_ref": [
      "r335",
      "r341",
      "r346",
      "r349",
      "r904"
     ]
    },
    "us-gaap_OperatingLeaseExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease expense",
        "label": "Operating Lease, Expense",
        "documentation": "Amount of operating lease expense. Excludes sublease income."
       }
      }
     },
     "auth_ref": [
      "r1156"
     ]
    },
    "cgnx_OperatingLeaseExpenseNoLiabilityOrAssetRecognized": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "OperatingLeaseExpenseNoLiabilityOrAssetRecognized",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease expense for which no liability or asset was recognized",
        "label": "Operating Lease, Expense, No Liability Or Asset Recognized",
        "documentation": "Operating Lease, Expense, No Liability Or Asset Recognized"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiability",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, liability",
        "label": "Operating Lease, Liability",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease."
       }
      }
     },
     "auth_ref": [
      "r663"
     ]
    },
    "us-gaap_OperatingLeaseLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease liabilities",
        "label": "Operating Lease, Liability, Current",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as current."
       }
      }
     },
     "auth_ref": [
      "r663"
     ]
    },
    "cgnx_OperatingLeaseLiabilityDiscountedPresentValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "OperatingLeaseLiabilityDiscountedPresentValue",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, liability, discounted present value",
        "label": "Operating Lease, Liability, Discounted Present Value",
        "documentation": "Operating Lease, Liability, Discounted Present Value"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OperatingLeaseLiabilityNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseLiabilityNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-current operating lease liabilities",
        "label": "Operating Lease, Liability, Noncurrent",
        "documentation": "Present value of lessee's discounted obligation for lease payments from operating lease, classified as noncurrent."
       }
      }
     },
     "auth_ref": [
      "r663"
     ]
    },
    "us-gaap_OperatingLeasePayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeasePayments",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease payments",
        "label": "Operating Lease, Payments",
        "documentation": "Amount of cash outflow from operating lease, excluding payments to bring another asset to condition and location necessary for its intended use."
       }
      }
     },
     "auth_ref": [
      "r664",
      "r667"
     ]
    },
    "us-gaap_OperatingLeaseRightOfUseAsset": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseRightOfUseAsset",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 8.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease assets",
        "label": "Operating Lease, Right-of-Use Asset",
        "documentation": "Amount of lessee's right to use underlying asset under operating lease."
       }
      }
     },
     "auth_ref": [
      "r662"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageDiscountRatePercent": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageDiscountRatePercent",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, weighted average discount rate (percent)",
        "label": "Operating Lease, Weighted Average Discount Rate, Percent",
        "documentation": "Weighted average discount rate for operating lease calculated at point in time."
       }
      }
     },
     "auth_ref": [
      "r669",
      "r931"
     ]
    },
    "us-gaap_OperatingLeaseWeightedAverageRemainingLeaseTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OperatingLeaseWeightedAverageRemainingLeaseTerm1",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Operating lease, weighted average remaining lease term (years)",
        "label": "Operating Lease, Weighted Average Remaining Lease Term",
        "documentation": "Weighted average remaining lease term for operating lease, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r668",
      "r931"
     ]
    },
    "us-gaap_OtherAccruedLiabilitiesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAccruedLiabilitiesCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "Other Accrued Liabilities, Current",
        "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": [
      "r37"
     ]
    },
    "cgnx_OtherAsiaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "OtherAsiaMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Asia [Member]",
        "label": "Other Asia [Member]",
        "documentation": "Other Asia [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherAssetsNoncurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 7.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other assets",
        "label": "Other Assets, Noncurrent",
        "documentation": "Amount of noncurrent assets classified as other."
       }
      }
     },
     "auth_ref": [
      "r249"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change related to available-for-sale investments",
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount, after tax and reclassification adjustment, of gain (loss) in value of unsold investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale), attributable to parent."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r22",
      "r191"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParentAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Available-for-sale investments:",
        "label": "Other Comprehensive Income (Loss), Available-for-Sale Securities Adjustment, Net of Tax, Portion Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Net change related to foreign currency translation adjustments",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature, attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r22",
      "r191"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Net unrealized gain (loss) on available-for-sale investments, net of tax",
        "label": "OCI, Debt Securities, Available-for-Sale, Gain (Loss), after Adjustment and Tax",
        "documentation": "Amount, after tax and adjustment, of unrealized gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale) and unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r264",
      "r265",
      "r266"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign currency translation gain (loss)",
        "verboseLabel": "Foreign currency translation adjustments, net of tax",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Adjustment, Net of Tax",
        "documentation": "Amount after tax and reclassification adjustments of gain (loss) on foreign currency translation adjustments, foreign currency transactions designated and effective as economic hedges of a net investment in a foreign entity and intra-entity foreign currency transactions that are of a long-term-investment nature."
       }
      }
     },
     "auth_ref": [
      "r8"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax benefit of foreign currency translation adjustment",
        "label": "Other Comprehensive Income (Loss), Foreign Currency Translation Adjustment, Tax",
        "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": [
      "r8",
      "r9",
      "r648",
      "r656"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_ComprehensiveIncomeNetOfTax",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Other comprehensive income (loss), net of tax",
        "label": "Other Comprehensive Income (Loss), Net of Tax, Portion Attributable to Parent",
        "documentation": "Amount after tax of other comprehensive income (loss) attributable to parent entity."
       }
      }
     },
     "auth_ref": [
      "r13",
      "r22",
      "r191",
      "r271",
      "r274"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reclassification of net realized (gain) loss into current operations",
        "negatedTerseLabel": "Reclassification of net realized (gain) loss on the sale of available-for-sale investments",
        "verboseLabel": "Net realized gains reclassified into current operations",
        "label": "Other Comprehensive Income (Loss), Reclassification Adjustment from AOCI for Sale of Securities, Net of Tax",
        "documentation": "Amount after tax of reclassification adjustment from accumulated other comprehensive income for unrealized gain (loss) realized upon the sale of available-for-sale securities."
       }
      }
     },
     "auth_ref": [
      "r11",
      "r145",
      "r269",
      "r394"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME": {
       "parentTag": "us-gaap_OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOME",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net unrealized gain (loss), net of tax of $4,389, $(5,943), and $(2,206) in 2023, 2022, and 2021, respectively",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, after Tax",
        "documentation": "Amount, after tax and before adjustment, of unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r264",
      "r266",
      "r394"
     ]
    },
    "us-gaap_OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCOMPREHENSIVEINCOMEParenthetical",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITYParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax effect of unrealized gain (loss) on available-for-sale investments",
        "verboseLabel": "Tax effect of unrealized gain on available-for-sale investments",
        "label": "OCI, Debt Securities, Available-for-Sale, Unrealized Holding Gain (Loss), before Adjustment, Tax",
        "documentation": "Amount, before adjustment, of tax expense (benefit) for unrealized holding gain (loss) on investment in debt security measured at fair value with change in fair value recognized in other comprehensive income (available-for-sale). Excludes tax expense (benefit) for unrealized gain (loss) on investment in debt security measured at amortized cost (held-to-maturity) from transfer to available-for-sale."
       }
      }
     },
     "auth_ref": [
      "r9",
      "r265"
     ]
    },
    "us-gaap_OtherDeferredCompensationArrangementsLiabilityCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherDeferredCompensationArrangementsLiabilityCurrent",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred payments related to Sualab Co., Ltd. acquisition",
        "label": "Other Deferred Compensation Arrangements, Liability, Current",
        "documentation": "Amount of the liabilities, classified as other, for deferred compensation arrangements payable within one year or the operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r88",
      "r178"
     ]
    },
    "cgnx_OtherGeographicAreaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "OtherGeographicAreaMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other [Member]",
        "label": "Other Geographic Area [Member]",
        "documentation": "Other Geographic Area [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherIntangibleAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherIntangibleAssetsMember",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Non-compete Agreements [Member]",
        "label": "Other Intangible Assets [Member]",
        "documentation": "Intangible assets classified as other."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherInventoryPurchasedGoods": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherInventoryPurchasedGoods",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Inventory, Purchased Goods, Gross",
        "label": "Other Inventory, Purchased Goods, Gross",
        "documentation": "Gross amount of components used by the entity which are bought from another entity rather than produced by the entity."
       }
      }
     },
     "auth_ref": [
      "r1044"
     ]
    },
    "us-gaap_OtherLiabilitiesDisclosureAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesDisclosureAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Other Liabilities Disclosure [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_OtherLiabilitiesNoncurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherLiabilitiesNoncurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other liabilities",
        "label": "Other Liabilities, Noncurrent",
        "documentation": "Amount of liabilities classified as other, due after one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": [
      "r39"
     ]
    },
    "us-gaap_OtherNonoperatingIncomeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "OtherNonoperatingIncomeExpense",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other income (expense)",
        "label": "Other Nonoperating Income (Expense)",
        "documentation": "Amount of income (expense) related to nonoperating activities, classified as other."
       }
      }
     },
     "auth_ref": [
      "r155"
     ]
    },
    "ecd_OtherPerfMeasureAmt": {
     "xbrltype": "decimalItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OtherPerfMeasureAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other Performance Measure, Amount",
        "label": "Other Performance Measure, Amount"
       }
      }
     },
     "auth_ref": [
      "r990"
     ]
    },
    "ecd_OutstandingAggtErrCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingAggtErrCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding Aggregate Erroneous Compensation Amount",
        "label": "Outstanding Aggregate Erroneous Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r957",
      "r969",
      "r979",
      "r1005"
     ]
    },
    "ecd_OutstandingRecoveryCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Compensation Amount",
        "label": "Outstanding Recovery Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r960",
      "r972",
      "r982",
      "r1008"
     ]
    },
    "ecd_OutstandingRecoveryIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "OutstandingRecoveryIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Outstanding Recovery, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r960",
      "r972",
      "r982",
      "r1008"
     ]
    },
    "ecd_PayVsPerformanceDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PayVsPerformanceDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Pay vs Performance Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r986"
     ]
    },
    "us-gaap_PayablesAndAccrualsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PayablesAndAccrualsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payables and Accruals [Abstract]",
        "label": "Payables and Accruals [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PaymentForContingentConsiderationLiabilityOperatingActivities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentForContingentConsiderationLiabilityOperatingActivities",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payment for Contingent Consideration Liability, Operating Activities",
        "label": "Payment for Contingent Consideration Liability, 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": [
      "r12"
     ]
    },
    "us-gaap_PaymentsForRepurchaseOfCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForRepurchaseOfCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "label": "Payments for Repurchase of Common Stock",
        "documentation": "The cash outflow to reacquire common stock during the period."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_PaymentsForRestructuring": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsForRestructuring",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Cash payments",
        "label": "Payments for Restructuring",
        "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": [
      "r445",
      "r1050"
     ]
    },
    "us-gaap_PaymentsOfDividends": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfDividends",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Payments of dividends",
        "label": "Payments of Dividends",
        "documentation": "Cash outflow in the form of capital distributions and dividends to common shareholders, preferred shareholders and noncontrolling interests."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_PaymentsOfDividendsCommonStock": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsOfDividendsCommonStock",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Payment of dividends",
        "label": "Payments of Ordinary Dividends, Common Stock",
        "documentation": "Amount of cash outflow in the form of ordinary dividends to common shareholders of the parent entity."
       }
      }
     },
     "auth_ref": [
      "r47"
     ]
    },
    "us-gaap_PaymentsRelatedToTaxWithholdingForShareBasedCompensation": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsRelatedToTaxWithholdingForShareBasedCompensation",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash used to fund tax payments",
        "label": "Payment, Tax Withholding, Share-Based Payment Arrangement",
        "documentation": "Amount of cash outflow to satisfy grantee's tax withholding obligation for award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r282"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireBusinessesGross",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Cash paid in purchase price",
        "label": "Payments to Acquire Businesses, Gross",
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price."
       }
      }
     },
     "auth_ref": [
      "r46",
      "r607"
     ]
    },
    "us-gaap_PaymentsToAcquireBusinessesNetOfCashAcquired": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireBusinessesNetOfCashAcquired",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Net payments related to business acquisitions",
        "terseLabel": "Payments related to business acquisitions",
        "label": "Payments to Acquire Businesses, 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": [
      "r46"
     ]
    },
    "us-gaap_PaymentsToAcquireInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquireInvestments",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of investments",
        "label": "Payments to Acquire Investments",
        "documentation": "The cash outflow associated with the purchase of all investments (debt, security, other) during the period."
       }
      }
     },
     "auth_ref": [
      "r158"
     ]
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Purchases of property, plant, and equipment",
        "label": "Payments to Acquire Property, Plant, and Equipment",
        "documentation": "The cash outflow associated with the acquisition of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale; includes cash outflows to pay for construction of self-constructed assets."
       }
      }
     },
     "auth_ref": [
      "r159"
     ]
    },
    "ecd_PeerGroupIssuersFnTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupIssuersFnTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Issuers, Footnote",
        "label": "Peer Group Issuers, Footnote [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r989"
     ]
    },
    "ecd_PeerGroupTotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeerGroupTotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Peer Group Total Shareholder Return Amount",
        "label": "Peer Group Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r989"
     ]
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/EmployeeSavingsPlan"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Employee Savings Plan",
        "label": "Retirement Benefits [Text Block]",
        "documentation": "The entire disclosure for retirement benefits."
       }
      }
     },
     "auth_ref": [
      "r500",
      "r501",
      "r502",
      "r508",
      "r509",
      "r510",
      "r511",
      "r512",
      "r513",
      "r514",
      "r515",
      "r516",
      "r517",
      "r924"
     ]
    },
    "ecd_PeoActuallyPaidCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoActuallyPaidCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Actually Paid Compensation Amount",
        "label": "PEO Actually Paid Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r988"
     ]
    },
    "ecd_PeoMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO",
        "label": "PEO [Member]"
       }
      }
     },
     "auth_ref": [
      "r998"
     ]
    },
    "ecd_PeoName": {
     "xbrltype": "normalizedStringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Name",
        "label": "PEO Name"
       }
      }
     },
     "auth_ref": [
      "r991"
     ]
    },
    "ecd_PeoTotalCompAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PeoTotalCompAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "PEO Total Compensation Amount",
        "label": "PEO Total Compensation Amount"
       }
      }
     },
     "auth_ref": [
      "r987"
     ]
    },
    "us-gaap_PerformanceSharesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PerformanceSharesMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Performance Shares",
        "label": "Performance Shares [Member]",
        "documentation": "Share-based payment arrangement awarded for meeting performance target."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PlanNameAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Axis]",
        "label": "Plan Name [Axis]",
        "documentation": "Information by plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132",
      "r1133",
      "r1134",
      "r1135"
     ]
    },
    "us-gaap_PlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PlanNameDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Plan Name [Domain]",
        "label": "Plan Name [Domain]",
        "documentation": "Plan name for share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r1110",
      "r1111",
      "r1112",
      "r1113",
      "r1114",
      "r1115",
      "r1116",
      "r1117",
      "r1118",
      "r1119",
      "r1120",
      "r1121",
      "r1122",
      "r1123",
      "r1124",
      "r1125",
      "r1126",
      "r1127",
      "r1128",
      "r1129",
      "r1130",
      "r1131",
      "r1132",
      "r1133",
      "r1134",
      "r1135"
     ]
    },
    "us-gaap_PreferredStockParOrStatedValuePerShare": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockParOrStatedValuePerShare",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock par value (in dollars per share)",
        "label": "Preferred Stock, Par or Stated Value Per Share",
        "documentation": "Face amount or stated value per share of preferred stock nonredeemable or redeemable solely at the option of the issuer."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r478"
     ]
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Authorized shares (in shares)",
        "label": "Preferred Stock, Shares Authorized",
        "documentation": "The maximum number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) permitted to be issued by an entity's charter and bylaws."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r796"
     ]
    },
    "us-gaap_PreferredStockSharesIssued": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesIssued",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares issued (in shares)",
        "label": "Preferred Stock, Shares Issued",
        "documentation": "Total number of nonredeemable preferred shares (or preferred stock redeemable solely at the option of the issuer) issued to shareholders (includes related preferred shares that were issued, repurchased, and remain in the treasury). May be all or portion of the number of preferred shares authorized. Excludes preferred shares that are classified as debt."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r478"
     ]
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockSharesOutstanding",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, shares outstanding (in shares)",
        "label": "Preferred Stock, Shares Outstanding",
        "documentation": "Aggregate share number for all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by stockholders. Does not include preferred shares that have been repurchased."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r796",
      "r815",
      "r1174",
      "r1175"
     ]
    },
    "us-gaap_PreferredStockValueOutstanding": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PreferredStockValueOutstanding",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Preferred stock, $0.01 par value - Authorized: 400 shares in 2023 and 2022, respectively, no shares issued and outstanding",
        "label": "Preferred Stock, Value, Outstanding",
        "documentation": "Value of all nonredeemable preferred stock (or preferred stock redeemable solely at the option of the issuer) held by shareholders, which is net of related treasury stock. May be all or a portion of the number of preferred shares authorized. These shares represent the ownership interest of the preferred shareholders."
       }
      }
     },
     "auth_ref": [
      "r133",
      "r796"
     ]
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 5.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Prepaid expenses and other current assets",
        "label": "Prepaid Expense and Other Assets, Current",
        "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": [
      "r1045"
     ]
    },
    "us-gaap_ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net payments from issuance of common stock under stock plans",
        "label": "Proceeds, Issuance of Shares, Share-Based Payment Arrangement, Including Option Exercised",
        "documentation": "Amount of cash inflow from issuance of shares under share-based payment arrangement. Includes, but is not limited to, option exercised."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r28"
     ]
    },
    "us-gaap_ProceedsFromSaleMaturityAndCollectionsOfInvestments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleMaturityAndCollectionsOfInvestments",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInInvestingActivities",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Maturities and sales of investments",
        "label": "Proceeds from Sale, Maturity and Collection of Investments",
        "documentation": "The cash inflow associated with the sale, maturity and collection of all investments such as debt, security and so forth during the period."
       }
      }
     },
     "auth_ref": [
      "r45"
     ]
    },
    "us-gaap_ProceedsFromSaleOfPropertyPlantAndEquipment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromSaleOfPropertyPlantAndEquipment",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from Sale of Property, Plant, and Equipment",
        "label": "Proceeds from Sale of Property, Plant, and Equipment",
        "documentation": "The cash inflow from the sale of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale."
       }
      }
     },
     "auth_ref": [
      "r157"
     ]
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProceedsFromStockOptionsExercised",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Proceeds from Stock Options Exercised",
        "label": "Proceeds from Stock Options Exercised",
        "documentation": "Amount of cash inflow from exercise of option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r10",
      "r28"
     ]
    },
    "cgnx_ProductCostOfRevenueMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ProductCostOfRevenueMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product cost of revenue [Member]",
        "label": "Product Cost Of Revenue [Member]",
        "documentation": "Product cost of revenue."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProductLiabilityContingencyLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductLiabilityContingencyLineItems",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Liability Contingency [Line Items]",
        "label": "Product Liability Contingency [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": [
      "r459",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "us-gaap_ProductLiabilityContingencyTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductLiabilityContingencyTable",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Liability Contingency [Table]",
        "label": "Product Liability Contingency [Table]",
        "documentation": "Information and financial data about the reasonably possible loss or the recognized and additional reasonably possible loss from product liability related to an individual product."
       }
      }
     },
     "auth_ref": [
      "r459",
      "r1096",
      "r1097",
      "r1098"
     ]
    },
    "srt_ProductOrServiceAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductOrServiceAxis",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Axis]",
        "label": "Product and Service [Axis]",
        "documentation": "Information by product and service, or group of similar products and similar services."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r713",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r887",
      "r915",
      "r933",
      "r1032",
      "r1098",
      "r1099",
      "r1108",
      "r1170"
     ]
    },
    "us-gaap_ProductWarrantyAccrual": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductWarrantyAccrual",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning Balance",
        "periodEndLabel": "Ending Balance",
        "label": "Standard and Extended Product Warranty Accrual",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers."
       }
      }
     },
     "auth_ref": [
      "r127",
      "r461",
      "r463",
      "r466"
     ]
    },
    "us-gaap_ProductWarrantyAccrualClassifiedCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductWarrantyAccrualClassifiedCurrent",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warranty obligations",
        "label": "Product Warranty Accrual, Current",
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers. For classified balance sheets, represents the current portion of the liabilities (due within one year or within the normal operating cycle if longer)."
       }
      }
     },
     "auth_ref": [
      "r37",
      "r1102",
      "r1103"
     ]
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductWarrantyAccrualPayments",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Fulfillment of warranty obligations",
        "label": "Standard and Extended Product Warranty Accrual, Decrease for Payments",
        "documentation": "Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty."
       }
      }
     },
     "auth_ref": [
      "r464"
     ]
    },
    "us-gaap_ProductWarrantyAccrualWarrantiesIssued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProductWarrantyAccrualWarrantiesIssued",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Provisions for warranties issued during the period",
        "label": "Standard and Extended Product Warranty Accrual, Increase for Warranties Issued",
        "documentation": "Amount of increase in the standard and extended product warranty accrual from warranties issued."
       }
      }
     },
     "auth_ref": [
      "r465"
     ]
    },
    "cgnx_ProductWarrantyPeriod": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ProductWarrantyPeriod",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product Warranty Period",
        "label": "Product Warranty Period",
        "documentation": "Product warranty period."
       }
      }
     },
     "auth_ref": []
    },
    "srt_ProductsAndServicesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ProductsAndServicesDomain",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Product and Service [Domain]",
        "label": "Product and Service [Domain]",
        "documentation": "Product or service, or a group of similar products or similar services."
       }
      }
     },
     "auth_ref": [
      "r351",
      "r713",
      "r745",
      "r746",
      "r747",
      "r748",
      "r749",
      "r750",
      "r887",
      "r915",
      "r933",
      "r1032",
      "r1098",
      "r1099",
      "r1108",
      "r1170"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Abstract]",
        "label": "Property, Plant and Equipment [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Axis]",
        "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": [
      "r17"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipment"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment Disclosure [Text Block]",
        "documentation": "The entire disclosure for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r169",
      "r214",
      "r218",
      "r219"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentDisposals": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentDisposals",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Disposals in period",
        "label": "Property, Plant and Equipment, Disposals",
        "documentation": "Amount of divestiture of long-lived, 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, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentGross",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": "us-gaap_PropertyPlantAndEquipmentNet",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant and equipment, gross",
        "label": "Property, Plant and Equipment, Gross",
        "documentation": "Amount before accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r170",
      "r245",
      "r736"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentLineItems",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Line Items]",
        "label": "Property, Plant and Equipment [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentNet",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_Assets",
       "weight": 1.0,
       "order": 3.0
      },
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, plant, and equipment, net",
        "totalLabel": "Property, plant and equipment, net, total",
        "label": "Property, Plant and Equipment, Net",
        "documentation": "Amount after accumulated depreciation, depletion and amortization of physical assets used in the normal conduct of business to produce goods and services and not intended for resale. Examples include, but are not limited to, land, buildings, machinery and equipment, office equipment, and furniture and fixtures."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r725",
      "r736",
      "r932"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for long-lived, physical asset used in normal conduct of business and not intended for resale. Includes, but is not limited to, work of art, historical treasure, and similar asset classified as collections."
       }
      }
     },
     "auth_ref": [
      "r17",
      "r214",
      "r218",
      "r734"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant, and Equipment",
        "label": "Property, Plant and Equipment [Table Text Block]",
        "documentation": "Tabular disclosure of physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, balances by class of assets, depreciation and depletion expense and method used, including composite depreciation, and accumulated deprecation."
       }
      }
     },
     "auth_ref": [
      "r17"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Type [Domain]",
        "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": [
      "r170"
     ]
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment, Useful Life",
        "label": "Property, Plant and Equipment, Useful Life",
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ProvisionForDoubtfulAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ProvisionForDoubtfulAccounts",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionAllowanceforCreditLossDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Increases to the allowance for credit losses",
        "label": "Accounts Receivable, Credit Loss Expense (Reversal)",
        "documentation": "Amount of expense (reversal of expense) for expected credit loss on accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r281",
      "r404"
     ]
    },
    "us-gaap_PurchaseCommitmentRemainingMinimumAmountCommitted": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "PurchaseCommitmentRemainingMinimumAmountCommitted",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CommitmentsandContingenciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Purchase order outstanding",
        "label": "Purchase Commitment, Remaining Minimum Amount Committed",
        "documentation": "Minimum amount to be expended to satisfy the terms of arrangements in which the entity has agreed to expend funds to procure goods or services, excluding long-term purchase commitments or unconditional purchase obligations."
       }
      }
     },
     "auth_ref": [
      "r132",
      "r196"
     ]
    },
    "ecd_PvpTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure",
        "label": "Pay vs Performance Disclosure [Table]"
       }
      }
     },
     "auth_ref": [
      "r986"
     ]
    },
    "ecd_PvpTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "PvpTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Pay vs Performance Disclosure, Table",
        "label": "Pay vs Performance [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r986"
     ]
    },
    "srt_RangeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeAxis",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Axis]",
        "label": "Statistical Measurement [Axis]",
        "documentation": "Information by statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r458",
      "r459",
      "r460",
      "r501",
      "r518",
      "r550",
      "r551",
      "r552",
      "r683",
      "r707",
      "r751",
      "r786",
      "r787",
      "r840",
      "r844",
      "r846",
      "r847",
      "r864",
      "r884",
      "r885",
      "r905",
      "r914",
      "r927",
      "r934",
      "r937",
      "r1091",
      "r1106",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1166"
     ]
    },
    "srt_RangeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "RangeMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesWarrantyDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Range [Domain]",
        "label": "Statistical Measurement [Domain]",
        "documentation": "Statistical measurement. Includes, but is not limited to, minimum, maximum, weighted average, arithmetic average, and median."
       }
      }
     },
     "auth_ref": [
      "r457",
      "r458",
      "r459",
      "r460",
      "r501",
      "r518",
      "r550",
      "r551",
      "r552",
      "r683",
      "r707",
      "r751",
      "r786",
      "r787",
      "r840",
      "r844",
      "r846",
      "r847",
      "r864",
      "r884",
      "r885",
      "r905",
      "r914",
      "r927",
      "r934",
      "r937",
      "r1091",
      "r1106",
      "r1162",
      "r1163",
      "r1164",
      "r1165",
      "r1166"
     ]
    },
    "us-gaap_RealizedGainLossOnInvestmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RealizedGainLossOnInvestmentsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Realized Gain (Loss) on Investments",
        "label": "Realized Gain (Loss) on Investments [Table Text Block]",
        "documentation": "Tabular disclosure of realized gains and losses on investments reported in the statement of income."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RealizedInvestmentGainsLosses": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RealizedInvestmentGainsLosses",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsRealizedGainLossonInvestmentsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Net realized gains (losses)",
        "label": "Realized Investment Gains (Losses)",
        "documentation": "Amount of realized gain (loss) on investment."
       }
      }
     },
     "auth_ref": [
      "r742"
     ]
    },
    "us-gaap_ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ReconciliationOfUnrecognizedTaxBenefitsExcludingAmountsPertainingToExaminedTaxReturnsRollForward",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "label": "Reconciliation of Unrecognized Tax Benefits, Excluding Amounts Pertaining to Examined Tax Returns [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_RecoveryOfErrCompDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RecoveryOfErrCompDisclosureLineItems",
     "lang": {
      "en-us": {
       "role": {
        "label": "Recovery of Erroneously Awarded Compensation Disclosure [Line Items]"
       }
      }
     },
     "auth_ref": [
      "r952",
      "r964",
      "r974",
      "r1000"
     ]
    },
    "cgnx_RepurchaseProgramMarch2020Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "RepurchaseProgramMarch2020Member",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase Program March 2020 [Member]",
        "label": "Repurchase Program March 2020 [Member]",
        "documentation": "Repurchase Program March 2020"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_RepurchaseProgramMarch2022Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "RepurchaseProgramMarch2022Member",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase Program March 2022",
        "label": "Repurchase Program March 2022 [Member]",
        "documentation": "Repurchase Program March 2022"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_RepurchaseProgramOctober2018Member": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "RepurchaseProgramOctober2018Member",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase Program October 2018 [Member]",
        "label": "Repurchase Program October 2018 [Member]",
        "documentation": "Repurchase Program October 2018 [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research, development, and engineering expenses",
        "label": "Research and Development Expense",
        "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": [
      "r129",
      "r568",
      "r1167"
     ]
    },
    "us-gaap_ResearchAndDevelopmentExpenseMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchAndDevelopmentExpenseMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research, development, and engineering expenses",
        "label": "Research and Development Expense [Member]",
        "documentation": "Primary financial statement caption in which the reported facts about research and development expense have been included."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research and Development",
        "label": "Research, Development, and Computer Software, Policy [Policy Text Block]",
        "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": [
      "r1",
      "r3",
      "r129"
     ]
    },
    "us-gaap_ResearchMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ResearchMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Research Tax Credit Carryforward [Member]",
        "label": "Research Tax Credit Carryforward [Member]",
        "documentation": "Research tax credit carryforwards arising from certain qualifying expenditures incurred to develop new products and processes."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "ecd_RestatementDateAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDateAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date:",
        "label": "Restatement Determination Date [Axis]"
       }
      }
     },
     "auth_ref": [
      "r953",
      "r965",
      "r975",
      "r1001"
     ]
    },
    "ecd_RestatementDeterminationDate": {
     "xbrltype": "dateItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDeterminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement Determination Date",
        "label": "Restatement Determination Date"
       }
      }
     },
     "auth_ref": [
      "r954",
      "r966",
      "r976",
      "r1002"
     ]
    },
    "ecd_RestatementDoesNotRequireRecoveryTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "RestatementDoesNotRequireRecoveryTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restatement does not require Recovery",
        "label": "Restatement Does Not Require Recovery [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r961",
      "r973",
      "r983",
      "r1009"
     ]
    },
    "us-gaap_RestrictedStockMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock [Member]",
        "label": "Restricted Stock [Member]",
        "documentation": "Stock including a provision that prohibits sale or substantive sale of an equity instrument for a specified period of time or until specified performance conditions are met."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_RestrictedStockUnitsRSUMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestrictedStockUnitsRSUMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restricted Stock Units (RSUs) [Member]",
        "label": "Restricted Stock Units (RSUs) [Member]",
        "documentation": "Share instrument which is convertible to stock or an equivalent amount of cash, after a specified period of time or when specified performance conditions are met."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedActivitiesAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Restructuring and Related Activities [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringAndRelatedActivitiesDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedActivitiesDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/RestructuringCharges"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Charges",
        "label": "Restructuring and Related Activities Disclosure [Text Block]",
        "documentation": "The entire disclosure for restructuring and related activities. Description of restructuring activities such as exit and disposal activities, include facts and circumstances leading to the plan, the expected plan completion date, the major types of costs associated with the plan activities, total expected costs, the accrual balance at the end of the period, and the periods over which the remaining accrual will be settled."
       }
      }
     },
     "auth_ref": [
      "r442",
      "r443",
      "r445",
      "r448",
      "r454"
     ]
    },
    "us-gaap_RestructuringAndRelatedCostNumberOfPositionsEliminated": {
     "xbrltype": "integerItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringAndRelatedCostNumberOfPositionsEliminated",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Number of positions eliminated",
        "label": "Restructuring and Related Cost, Number of Positions Eliminated",
        "documentation": "The number of positions eliminated during the period as a result of restructuring activities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringCharges": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCharges",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 4.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/RestructuringChargesAdditionalInformationDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring charges",
        "label": "Restructuring Charges",
        "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": [
      "r15",
      "r449",
      "r451",
      "r1092"
     ]
    },
    "us-gaap_RestructuringCostAndReserveAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCostAndReserveAxis",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Type [Axis]",
        "label": "Restructuring Type [Axis]",
        "documentation": "Information by type of restructuring cost."
       }
      }
     },
     "auth_ref": [
      "r444",
      "r445",
      "r451",
      "r452"
     ]
    },
    "us-gaap_RestructuringCostAndReserveLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringCostAndReserveLineItems",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Cost and Reserve [Line Items]",
        "label": "Restructuring Cost and Reserve [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r444",
      "r445",
      "r446",
      "r447",
      "r451",
      "r452",
      "r453"
     ]
    },
    "us-gaap_RestructuringPlanAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringPlanAxis",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Plan [Axis]",
        "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://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Plan [Domain]",
        "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://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Restructuring Reserve, Beginning Balance",
        "periodEndLabel": "Restructuring Reserve, Ending Balance",
        "label": "Restructuring Reserve",
        "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": [
      "r445",
      "r450"
     ]
    },
    "us-gaap_RestructuringReserveRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringReserveRollForward",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring Reserve [Roll Forward]",
        "label": "Restructuring Reserve [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RestructuringReserveTranslationAdjustment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RestructuringReserveTranslationAdjustment",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Restructuring Reserve, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the restructuring reserve."
       }
      }
     },
     "auth_ref": [
      "r1093",
      "r1094"
     ]
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsAccumulatedDeficit",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retained earnings",
        "label": "Retained Earnings (Accumulated Deficit)",
        "documentation": "Amount of accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r136",
      "r177",
      "r732",
      "r755",
      "r759",
      "r770",
      "r797",
      "r932"
     ]
    },
    "us-gaap_RetainedEarningsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RetainedEarningsMember",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Retained Earnings [Member]",
        "label": "Retained Earnings [Member]",
        "documentation": "Accumulated undistributed earnings (deficit)."
       }
      }
     },
     "auth_ref": [
      "r237",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r396",
      "r399",
      "r559",
      "r560",
      "r561",
      "r591",
      "r592",
      "r615",
      "r617",
      "r618",
      "r621",
      "r624",
      "r752",
      "r754",
      "r772",
      "r1174"
     ]
    },
    "cgnx_RetirementAllowance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "RetirementAllowance",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail": {
       "parentTag": "us-gaap_AccruedLiabilitiesCurrent",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/AccruedExpensesConstituentsofAccruedExpensesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign retirement obligations",
        "label": "Retirement Allowance",
        "documentation": "Retirement allowance Japan."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueCommissionersIrelandMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueCommissionersIrelandMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Commissioners, Ireland [Member]",
        "label": "Revenue Commissioners, Ireland [Member]",
        "documentation": "Designated tax department of the government of Ireland."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue from Contract with Customer [Abstract]",
        "label": "Revenue from Contract with Customer [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueFromContractWithCustomerExcludingAssessedTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerExcludingAssessedTax",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue",
        "verboseLabel": "Revenue",
        "label": "Revenue from Contract with Customer, Excluding Assessed Tax",
        "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": [
      "r336",
      "r337",
      "r340",
      "r344",
      "r345",
      "r351",
      "r353",
      "r355",
      "r496",
      "r497",
      "r713"
     ]
    },
    "us-gaap_RevenueFromContractWithCustomerTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueFromContractWithCustomerTextBlock",
     "presentation": [
      "http://cognex.com/role/RevenueRecognition"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue from Contract with Customer [Text Block]",
        "documentation": "The entire disclosure of revenue from contract with customer to transfer good or service and to transfer nonfinancial asset. Includes, but is not limited to, disaggregation of revenue, credit loss recognized from contract with customer, judgment and change in judgment related to contract with customer, and asset recognized from cost incurred to obtain or fulfill contract with customer. Excludes insurance and lease contracts."
       }
      }
     },
     "auth_ref": [
      "r225",
      "r488",
      "r489",
      "r490",
      "r491",
      "r492",
      "r493",
      "r494",
      "r495",
      "r499"
     ]
    },
    "cgnx_RevenuePaymentTerms": {
     "xbrltype": "durationItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "RevenuePaymentTerms",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesSummaryofSignificantAccountingPoliciesRevenueRecognitionDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue, payment terms",
        "label": "Revenue, Payment Terms",
        "documentation": "Revenue, Payment Terms"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionAndDeferredRevenueAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRecognitionAndDeferredRevenueAbstract",
     "lang": {
      "en-us": {
       "role": {
        "label": "Revenue Recognition and Deferred Revenue [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenueRecognitionPolicyTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenue Recognition",
        "label": "Revenue [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for revenue. Includes revenue from contract with customer and from other sources."
       }
      }
     },
     "auth_ref": [
      "r818",
      "r886",
      "r900"
     ]
    },
    "us-gaap_RevenuesFromExternalCustomersAndLongLivedAssetsLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "RevenuesFromExternalCustomersAndLongLivedAssetsLineItems",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "label": "Revenues from External Customers and Long-Lived Assets [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_Rule10b51ArrAdoptedFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrAdoptedFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Adopted",
        "label": "Rule 10b5-1 Arrangement Adopted [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "ecd_Rule10b51ArrTrmntdFlag": {
     "xbrltype": "booleanItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "Rule10b51ArrTrmntdFlag",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Rule 10b5-1 Arrangement Terminated",
        "label": "Rule 10b5-1 Arrangement Terminated [Flag]"
       }
      }
     },
     "auth_ref": [
      "r1018"
     ]
    },
    "cgnx_SACSiriusAdvancedCyberneticsGmbHMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "SACSiriusAdvancedCyberneticsGmbHMember",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SAC Sirius Advanced Cybernetics GmbH",
        "label": "SAC Sirius Advanced Cybernetics GmbH [Member]",
        "documentation": "SAC Sirius Advanced Cybernetics GmbH"
       }
      }
     },
     "auth_ref": []
    },
    "country_SG": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "SG",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SINGAPORE",
        "label": "SINGAPORE"
       }
      }
     },
     "auth_ref": []
    },
    "currency_SGD": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/currency/2023",
     "localname": "SGD",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsOutstandingForwardContractsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Singapore Dollar [Member]",
        "label": "Singapore, Dollars"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesReturnsAndAllowancesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SalesReturnsAndAllowancesMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sales Returns and Allowances [Member]",
        "label": "Sales Returns and Allowances [Member]",
        "documentation": "A revision in the estimated reserve needed for product returns and price or other concessions granted to customers."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SalesRevenueNetMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SalesRevenueNetMember",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Total Revenue",
        "label": "Revenue Benchmark [Member]",
        "documentation": "Revenue from sale of product and rendering of service and other sources of income, when it serves as benchmark in concentration of risk calculation."
       }
      }
     },
     "auth_ref": [
      "r355",
      "r1030"
     ]
    },
    "srt_ScenarioForecastMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScenarioForecastMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forecast",
        "label": "Forecast [Member]",
        "documentation": "Information reported for future period. Excludes information expected to be reported in future period for effect on historical fact."
       }
      }
     },
     "auth_ref": [
      "r519",
      "r1041",
      "r1065"
     ]
    },
    "srt_ScenarioUnspecifiedDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScenarioUnspecifiedDomain",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario, Unspecified [Domain]",
        "label": "Scenario [Domain]",
        "documentation": "Scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts."
       }
      }
     },
     "auth_ref": [
      "r315",
      "r519",
      "r1027",
      "r1065"
     ]
    },
    "us-gaap_ScheduleOfAccruedLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAccruedLiabilitiesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Accrued Expenses",
        "label": "Schedule of Accrued Liabilities [Table Text Block]",
        "documentation": "Tabular disclosure of the components of accrued liabilities."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTable",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "label": "Schedule of Antidilutive Securities Excluded from Computation of Earnings Per Share [Table]",
        "documentation": "Schedule for securities (including those issuable pursuant to contingent stock agreements) that could potentially dilute basic earnings per share (EPS) in the future that were not included in the computation of diluted EPS because to do so would increase EPS amounts or decrease loss per share amounts for the period presented, by Antidilutive Securities."
       }
      }
     },
     "auth_ref": [
      "r53"
     ]
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAvailableForSaleSecuritiesLineItems",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Debt Securities, Available-for-sale [Line Items]",
        "label": "Debt Securities, Available-for-Sale [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": [
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374"
     ]
    },
    "us-gaap_ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Available-for-Sale Investments",
        "label": "Schedule of Available-for-Sale Securities Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation of available-for-sale securities from cost basis to fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfBusinessAcquisitionsByAcquisitionTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfBusinessAcquisitionsByAcquisitionTable",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails",
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Business Acquisitions, by Acquisition [Table]",
        "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": [
      "r99",
      "r100",
      "r605"
     ]
    },
    "us-gaap_ScheduleOfCashAndCashEquivalentsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfCashAndCashEquivalentsTable",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Cash and Cash Equivalents [Table]",
        "label": "Schedule of Cash and Cash Equivalents [Table]",
        "documentation": "Schedule of cash and cash equivalent balances. This table excludes restricted cash balances."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Provision for Income Taxes",
        "label": "Schedule of Components of Income Tax Expense (Benefit) [Table Text Block]",
        "documentation": "Tabular disclosure of the components of income tax expense attributable to continuing operations for each year presented including, but not limited to: current tax expense (benefit), deferred tax expense (benefit), investment tax credits, government grants, the benefits of operating loss carryforwards, tax expense that results from allocating certain tax benefits either directly to contributed capital or to reduce goodwill or other noncurrent intangible assets of an acquired entity, adjustments of a deferred tax liability or asset for enacted changes in tax laws or rates or a change in the tax status of the entity, and adjustments of the beginning-of-the-year balances of a valuation allowance because of a change in circumstances that causes a change in judgment about the realizability of the related deferred tax asset in future years."
       }
      }
     },
     "auth_ref": [
      "r184"
     ]
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Constituents of Deferred Tax Assets",
        "label": "Schedule of Deferred Tax Assets and Liabilities [Table Text Block]",
        "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": [
      "r183"
     ]
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Derivative Instruments, Gain (Loss)",
        "label": "Derivative Instruments, Gain (Loss) [Table Text Block]",
        "documentation": "Tabular disclosure of the location and amount of derivative instruments and nonderivative instruments designated as hedging instruments reported before netting adjustments, and the amount of gain (loss) on derivative instruments and nonderivative instruments designated and qualified as hedging instruments."
       }
      }
     },
     "auth_ref": [
      "r113",
      "r118",
      "r613"
     ]
    },
    "us-gaap_ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value",
        "label": "Schedule of Derivative Instruments in Statement of Financial Position, Fair Value [Table Text Block]",
        "documentation": "Tabular disclosure of the location and fair value amounts of derivative instruments (and nonderivative instruments that are designated and qualify as hedging instruments) reported in the statement of financial position."
       }
      }
     },
     "auth_ref": [
      "r114"
     ]
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reconciliation of the United States Federal Statutory Corporate Tax Rate to the Company's Effective Tax Rate or Income Tax Provision",
        "label": "Schedule of Effective Income Tax Rate Reconciliation [Table Text Block]",
        "documentation": "Tabular disclosure of the reconciliation using percentage or dollar amounts of the reported amount of income tax expense attributable to continuing operations for the year to the amount of income tax expense that would result from applying domestic federal statutory tax rates to pretax income from continuing operations."
       }
      }
     },
     "auth_ref": [
      "r182"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Employee Service Share-based Compensation, Allocation of Recognized Period Costs [Table]",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table]",
        "documentation": "Disclosure of information about amount recognized for award under share-based payment arrangement. Includes, but is not limited to, amount expensed in statement of income or comprehensive income, amount capitalized in statement of financial position, and corresponding reporting line item in financial statements."
       }
      }
     },
     "auth_ref": [
      "r91"
     ]
    },
    "us-gaap_ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation Expense",
        "label": "Share-Based Payment Arrangement, Expensed and Capitalized, Amount [Table Text Block]",
        "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": [
      "r91"
     ]
    },
    "us-gaap_ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Assets and Liabilities Measured at Fair Value on a Recurring Basis",
        "label": "Schedule of Fair Value, Assets and Liabilities Measured on Recurring Basis [Table Text Block]",
        "documentation": "Tabular disclosure of assets and liabilities, including [financial] instruments measured at fair value that are classified in stockholders' equity, if any, that are measured at fair value on a recurring basis. The disclosures contemplated herein include the fair value measurements at the reporting date by the level within the fair value hierarchy in which the fair value measurements in their entirety fall, segregating fair value measurements using quoted prices in active markets for identical assets (Level 1), significant other observable inputs (Level 2), and significant unobservable inputs (Level 3)."
       }
      }
     },
     "auth_ref": [
      "r631",
      "r632"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTable",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Finite-Lived Intangible Assets [Table]",
        "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": [
      "r67",
      "r69",
      "r714"
     ]
    },
    "us-gaap_ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Amortized Intangible Assets",
        "label": "Schedule of Finite-Lived Intangible Assets [Table Text Block]",
        "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": [
      "r67",
      "r69"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTable",
     "presentation": [
      "http://cognex.com/role/GoodwillChangesintheCarryingValueofGoodwillDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Goodwill [Table]",
        "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": [
      "r424",
      "r425",
      "r426",
      "r427",
      "r428",
      "r429",
      "r430",
      "r431",
      "r432",
      "r433",
      "r435",
      "r907"
     ]
    },
    "us-gaap_ScheduleOfGoodwillTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfGoodwillTextBlock",
     "presentation": [
      "http://cognex.com/role/GoodwillTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the Carrying Value of Goodwill",
        "label": "Schedule of Goodwill [Table Text Block]",
        "documentation": "Tabular disclosure of goodwill by reportable segment and in total which includes a rollforward schedule."
       }
      }
     },
     "auth_ref": [
      "r907",
      "r1080",
      "r1081",
      "r1082",
      "r1083",
      "r1084",
      "r1085",
      "r1086",
      "r1087",
      "r1088",
      "r1089",
      "r1090"
     ]
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "presentation": [
      "http://cognex.com/role/InventoriesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Inventories",
        "label": "Schedule of Inventory, Current [Table Text Block]",
        "documentation": "Tabular disclosure of the carrying amount as of the balance sheet date of merchandise, goods, commodities, or supplies held for future sale or to be used in manufacturing, servicing or production process."
       }
      }
     },
     "auth_ref": [
      "r33",
      "r140",
      "r141",
      "r142"
     ]
    },
    "us-gaap_ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/DerivativeInstrumentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Notional Amounts of Outstanding Derivative Positions",
        "label": "Schedule of Notional Amounts of Outstanding Derivative Positions [Table Text Block]",
        "documentation": "Tabular disclosure of the notional amounts of outstanding derivative positions."
       }
      }
     },
     "auth_ref": [
      "r109"
     ]
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in Warranty Obligations",
        "label": "Schedule of Product Warranty Liability [Table Text Block]",
        "documentation": "Tabular disclosure of the changes in the guarantor's aggregate product warranty liability, including the beginning balance of the aggregate product warranty liability, the aggregate reductions in that liability for payments made (in cash or in kind) under the warranty, the aggregate changes in the liability for accruals related to product warranties issued during the reporting period, the aggregate changes in the liability for accruals related to preexisting warranties (including adjustments related to changes in estimates), and the ending balance of the aggregate product warranty liability."
       }
      }
     },
     "auth_ref": [
      "r462"
     ]
    },
    "us-gaap_ScheduleOfPropertyPlantAndEquipmentTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfPropertyPlantAndEquipmentTable",
     "presentation": [
      "http://cognex.com/role/PropertyPlantandEquipmentAdditionalInformationDetails",
      "http://cognex.com/role/PropertyPlantandEquipmentPropertyPlantandEquipmentDetail",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Property, Plant and Equipment [Table]",
        "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": [
      "r17"
     ]
    },
    "us-gaap_ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed",
        "label": "Schedule of Recognized Identified Assets Acquired and Liabilities Assumed [Table Text Block]",
        "documentation": "Tabular disclosure of the amounts recognized as of the acquisition date for each major class of assets acquired and liabilities assumed. May include but not limited to the following: (a) acquired receivables; (b) contingencies recognized at the acquisition date; and (c) the fair value of noncontrolling interests in the acquiree."
       }
      }
     },
     "auth_ref": [
      "r189"
     ]
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRestructuringAndRelatedCostsTable",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Restructuring and Related Costs [Table]",
        "label": "Schedule of Restructuring and Related Costs [Table]",
        "documentation": "Table presenting the description of the restructuring costs, such as the expected cost; the costs incurred during the period; the cumulative costs incurred as of the balance sheet date; the income statement caption within which the restructuring charges recognized for the period are included; and the amount of and periodic changes to 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 by type of restructuring."
       }
      }
     },
     "auth_ref": [
      "r444",
      "r445",
      "r446",
      "r447",
      "r451",
      "r452",
      "r453"
     ]
    },
    "us-gaap_ScheduleOfRestructuringAndRelatedCostsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRestructuringAndRelatedCostsTextBlock",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Restructuring and Related Costs",
        "label": "Restructuring and Related Costs [Table Text Block]",
        "documentation": "Tabular disclosure of costs incurred for restructuring including, but not limited to, exit and disposal activities, remediation, implementation, integration, asset impairment, and charges against earnings from the write-down of assets."
       }
      }
     },
     "auth_ref": [
      "r73",
      "r75",
      "r77"
     ]
    },
    "us-gaap_ScheduleOfRestructuringReserveByTypeOfCostTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRestructuringReserveByTypeOfCostTextBlock",
     "presentation": [
      "http://cognex.com/role/RestructuringChargesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Restructuring Reserve by Type of Cost",
        "label": "Schedule of Restructuring Reserve by Type of Cost [Table Text Block]",
        "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": [
      "r74",
      "r78"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas",
        "label": "Schedule of Revenue from External Customers and Long-Lived Assets, by Geographical Areas [Table Text Block]",
        "documentation": "Tabular disclosure of information concerning material long-lived assets (excluding financial instruments, customer relationships with financial institutions, mortgage and other servicing rights, deferred policy acquisition costs, and deferred taxes assets) located in identified geographic areas and/or the amount of revenue from external customers attributed to that country from which revenue is material. An entity may also provide subtotals of geographic information about groups of countries."
       }
      }
     },
     "auth_ref": [
      "r63",
      "r149"
     ]
    },
    "us-gaap_ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsTable",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Revenues from External Customers and Long-Lived Assets [Table]",
        "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": [
      "r63",
      "r146"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation Arrangements by Share-based Payment Award [Table]",
        "label": "Schedule of Share-Based Compensation Arrangements by Share-Based Payment Award [Table]",
        "documentation": "Disclosure of information about share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r521",
      "r523",
      "r525",
      "r526",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationSharesAuthorizedUnderStockOptionPlansByExercisePriceRangeTable",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Share-based Compensation, Shares Authorized under Stock Option Plans, by Exercise Price Range [Table]",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [Table]",
        "documentation": "Details comprising a table providing supplementary information on outstanding and exercisable share awards as of the balance sheet date which stratifies outstanding options by ranges of exercise prices."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Stock Option Activity",
        "label": "Share-Based Payment Arrangement, Option, Activity [Table Text Block]",
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value."
       }
      }
     },
     "auth_ref": [
      "r26",
      "r27",
      "r90"
     ]
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-Average Assumptions Used in Estimating Fair Values of Stock Options Granted",
        "label": "Schedule of Share-Based Payment Award, Stock Options, Valuation Assumptions [Table Text Block]",
        "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": [
      "r181"
     ]
    },
    "us-gaap_ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Performance Restricted Stock Units",
        "label": "Share-Based Payment Arrangement, Restricted Stock and Restricted Stock Unit, Activity [Table Text Block]",
        "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://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule of Stock by Class [Table]",
        "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": [
      "r80",
      "r81",
      "r82",
      "r83",
      "r84",
      "r85",
      "r86",
      "r175",
      "r176",
      "r177",
      "r251",
      "r252",
      "r253",
      "r330",
      "r478",
      "r479",
      "r480",
      "r481",
      "r482",
      "r483",
      "r484",
      "r766",
      "r767",
      "r768",
      "r769",
      "r914",
      "r1026",
      "r1053"
     ]
    },
    "us-gaap_ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Gross Unrealized Losses and Fair Value for Available-for-Sale Investments",
        "label": "Schedule of Unrealized Loss on Investments [Table Text Block]",
        "documentation": "For all investments in an unrealized loss position, including those for which other-than-temporary impairments have not been recognized in earnings (including investments for which a portion of an other-than-temporary impairment has been recognized in other comprehensive income), a tabular disclosure of the aggregate related fair value of investments with unrealized losses and the aggregate amount of unrealized losses (that is, the amount by which amortized cost basis exceeds fair value)."
       }
      }
     },
     "auth_ref": [
      "r204"
     ]
    },
    "srt_ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccounts"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Schedule II - Valuation and Qualifying Accounts",
        "label": "SEC Schedule, 12-09, Schedule of Valuation and Qualifying Accounts Disclosure [Text Block]",
        "documentation": "The entire disclosure for valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r226",
      "r297"
     ]
    },
    "us-gaap_ScheduleOfWeightedAverageNumberOfSharesTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleOfWeightedAverageNumberOfSharesTableTextBlock",
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Calculation of Weighted Average Shares",
        "label": "Schedule of Weighted Average Number of Shares [Table Text Block]",
        "documentation": "Tabular disclosure of the weighted average number of shares used in calculating basic net earnings per share (or unit) and diluted earnings per share (or unit)."
       }
      }
     },
     "auth_ref": [
      "r52"
     ]
    },
    "us-gaap_ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock",
     "presentation": [
      "http://cognex.com/role/IntangibleAssetsTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Estimated Amortization Expense Succeeding Fiscal Years",
        "label": "Schedule of Finite-Lived Intangible Assets, Future Amortization Expense [Table Text Block]",
        "documentation": "Tabular disclosure of the amount of amortization expense expected to be recorded in succeeding fiscal years for finite-lived intangible assets."
       }
      }
     },
     "auth_ref": [
      "r69"
     ]
    },
    "dei_Security12bTitle": {
     "xbrltype": "securityTitleItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "Security12bTitle",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title of 12(b) Security",
        "label": "Title of 12(b) Security",
        "documentation": "Title of a 12(b) registered security."
       }
      }
     },
     "auth_ref": [
      "r946"
     ]
    },
    "dei_SecurityExchangeName": {
     "xbrltype": "edgarExchangeCodeItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "SecurityExchangeName",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Security Exchange Name",
        "label": "Security Exchange Name",
        "documentation": "Name of the Exchange on which a security is registered."
       }
      }
     },
     "auth_ref": [
      "r948"
     ]
    },
    "srt_SegmentGeographicalDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "SegmentGeographicalDomain",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Domain]",
        "label": "Geographical [Domain]",
        "documentation": "Geographical area."
       }
      }
     },
     "auth_ref": [
      "r227",
      "r228",
      "r229",
      "r230",
      "r231",
      "r232",
      "r233",
      "r234",
      "r235",
      "r353",
      "r354",
      "r777",
      "r781",
      "r783",
      "r841",
      "r845",
      "r849",
      "r865",
      "r875",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r888",
      "r916",
      "r937",
      "r1108",
      "r1170"
     ]
    },
    "us-gaap_SegmentReportingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment Reporting [Abstract]",
        "label": "Segment Reporting [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SegmentReportingDisclosureTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SegmentReportingDisclosureTextBlock",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformation"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Segment and Geographic Information",
        "label": "Segment Reporting Disclosure [Text Block]",
        "documentation": "The entire disclosure for reporting segments including data and tables. Reportable segments include those that meet any of the following quantitative thresholds a) it's reported revenue, including sales to external customers and intersegment sales or transfers is 10 percent or more of the combined revenue, internal and external, of all operating segments b) the absolute amount of its reported profit or loss is 10 percent or more of the greater, in absolute amount of 1) the combined reported profit of all operating segments that did not report a loss or 2) the combined reported loss of all operating segments that did report a loss c) its assets are 10 percent or more of the combined assets of all operating segments."
       }
      }
     },
     "auth_ref": [
      "r331",
      "r332",
      "r333",
      "r334",
      "r335",
      "r339",
      "r343",
      "r347",
      "r348",
      "r349",
      "r350",
      "r351",
      "r352",
      "r355"
     ]
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SellingGeneralAndAdministrativeExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "parentTag": "us-gaap_OperatingIncomeLoss",
       "weight": -1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general, and administrative expenses",
        "label": "Selling, General and Administrative Expense",
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc."
       }
      }
     },
     "auth_ref": [
      "r153"
     ]
    },
    "cgnx_SellingGeneralAndAdministrativeMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "SellingGeneralAndAdministrativeMember",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseStockBasedCompensationExpenseDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Selling, general, and administrative [Member]",
        "label": "Selling General And Administrative [Member]",
        "documentation": "Selling, general, and administrative."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vesting period for stock option plans",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Award Vesting Period",
        "documentation": "Period over which grantee's right to exercise award under share-based payment arrangement is no longer contingent on satisfaction of service or performance condition, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, combination of market, performance or service condition."
       }
      }
     },
     "auth_ref": [
      "r928"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Forfeited or expired",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeited in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that were forfeited during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r542"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited or expired, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Forfeitures, Weighted Average Grant Date Fair Value",
        "documentation": "Weighted average fair value as of the grant date of equity-based award plans other than stock (unit) option plans that were not exercised or put into effect as a result of the occurrence of a terminating event."
       }
      }
     },
     "auth_ref": [
      "r542"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period",
        "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": [
      "r540"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value at grant date for nonvested equity-based awards issued during the period on other than stock (or unit) option plans (for example, phantom stock or unit plan, stock or unit appreciation rights plan, performance target plan)."
       }
      }
     },
     "auth_ref": [
      "r540"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Nonvested beginning balance outstanding",
        "periodEndLabel": "Nonvested ending balance outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number",
        "documentation": "The number of non-vested equity-based payment instruments, excluding stock (or unit) options, that validly exist and are outstanding as of the balance sheet date."
       }
      }
     },
     "auth_ref": [
      "r537",
      "r538"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Number of Shares [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Nonvested beginning balance, weighted-average exercise price",
        "periodEndLabel": "Nonvested ending balance, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value",
        "documentation": "Per share or unit weighted-average fair value of nonvested award under share-based payment arrangement. Excludes share and unit options."
       }
      }
     },
     "auth_ref": [
      "r537",
      "r538"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValueRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-Average Grant Fair Value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Nonvested, Weighted Average Grant Date Fair Value [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested (in shares)",
        "negatedTerseLabel": "Vested",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period",
        "documentation": "The number of equity-based payment instruments, excluding stock (or unit) options, that vested during the reporting period."
       }
      }
     },
     "auth_ref": [
      "r541"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vested, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Equity Instruments Other than Options, Vested in Period, Weighted Average Grant Date Fair Value",
        "documentation": "The weighted average fair value as of grant date pertaining to an equity-based award plan other than a stock (or unit) option plan for which the grantee gained the right during the reporting period, by satisfying service and performance requirements, to receive or retain shares or units, other instruments, or cash in accordance with the terms of the arrangement."
       }
      }
     },
     "auth_ref": [
      "r541"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected dividend yield",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Dividend Rate",
        "documentation": "The estimated dividend rate (a percentage of the share price) to be paid (expected dividends) to holders of the underlying shares over the option's term."
       }
      }
     },
     "auth_ref": [
      "r551"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected volatility",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Volatility Rate",
        "documentation": "The estimated measure of the percentage by which a share price is expected to fluctuate during a period. Volatility also may be defined as a probability-weighted measure of the dispersion of returns about the mean. The volatility of a share price is the standard deviation of the continuously compounded rates of return on the share over a specified period. That is the same as the standard deviation of the differences in the natural logarithms of the stock prices plus dividends, if any, over the period."
       }
      }
     },
     "auth_ref": [
      "r550"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "xbrltype": "percentItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Risk-free rate",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Risk Free Interest Rate",
        "documentation": "The risk-free interest rate assumption that is used in valuing an option on its own shares."
       }
      }
     },
     "auth_ref": [
      "r552"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award [Line Items]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r521",
      "r523",
      "r525",
      "r526",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Additional Shares Authorized",
        "documentation": "Number of additional shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Authorized",
        "documentation": "Number of shares authorized for issuance under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r929"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares available for grant under stock option plans",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Number of Shares Available for Grant",
        "documentation": "The difference between the maximum number of shares (or other type of equity) authorized for issuance under the plan (including the effects of amendments and adjustments), and the sum of: 1) the number of shares (or other type of equity) already issued upon exercise of options or other equity-based awards under the plan; and 2) shares (or other type of equity) reserved for issuance on granting of outstanding awards, net of cancellations and forfeitures, if applicable."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, aggregate intrinsic value",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Exercisable Aggregate Intrinsic Value",
        "documentation": "Share based compensation arrangement by share based payment award options exercisable aggregate intrinsic value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Number",
        "documentation": "The number of shares into which fully or partially vested stock options outstanding as of the balance sheet date can be currently converted under the option plan."
       }
      }
     },
     "auth_ref": [
      "r531"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Exercise Price",
        "documentation": "The weighted-average price as of the balance sheet date at which grantees can acquire the shares reserved for issuance on vested portions of options outstanding and currently exercisable under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r531"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Forfeited or expired",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period",
        "documentation": "For presentations that combine terminations, 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 or that expired."
       }
      }
     },
     "auth_ref": [
      "r1116"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Forfeited or expired, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Forfeitures and Expirations in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price of options that were either forfeited or expired."
       }
      }
     },
     "auth_ref": [
      "r1116"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Net of Forfeitures",
        "documentation": "Net number of share options (or share units) granted during the period."
       }
      }
     },
     "auth_ref": [
      "r1117"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average grant-date fair values of stock options granted",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Grants in Period, Weighted Average Grant Date Fair Value",
        "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": [
      "r543"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, aggregate intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Intrinsic Value",
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance outstanding",
        "periodEndLabel": "Ending balance outstanding",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Number",
        "documentation": "Number of options outstanding, including both vested and non-vested options."
       }
      }
     },
     "auth_ref": [
      "r529",
      "r530"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingRollForward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding [Roll Forward]",
        "documentation": "A roll forward is a reconciliation of a concept from the beginning of a period to the end of a period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Beginning balance outstanding, weighted-average exercise price",
        "periodEndLabel": "Ending balance outstanding, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan."
       }
      }
     },
     "auth_ref": [
      "r529",
      "r530"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePriceRollforward",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Exercisable, Number",
        "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": [
      "r546"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, aggregate intrinsic value",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Aggregate Intrinsic Value",
        "documentation": "Amount by which current fair value of underlying stock exceeds exercise price of fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Exercise Price",
        "documentation": "Weighted-average exercise price, at which grantee can acquire shares reserved for issuance, for fully vested and expected to vest options outstanding. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "cgnx_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total fair values of stock options vested",
        "label": "Share Based Compensation Arrangement By Share Based Payment Award Options Vested Fair Value",
        "documentation": "Share based compensation arrangement by share based payment award options vested fair value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardAwardTypeAndPlanNameDomain",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail",
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail",
      "http://cognex.com/role/StockBasedCompensationScheduleofPerformanceRestrictedStockUnitsDetails",
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Award [Domain]",
        "label": "Award Type [Domain]",
        "documentation": "Award under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r525",
      "r526",
      "r527",
      "r529",
      "r530",
      "r531",
      "r532",
      "r533",
      "r534",
      "r535",
      "r536",
      "r537",
      "r538",
      "r539",
      "r540",
      "r541",
      "r542",
      "r543",
      "r544",
      "r545",
      "r546",
      "r549",
      "r550",
      "r551",
      "r552",
      "r553"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercised, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Exercises in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average price at which option holders acquired shares when converting their stock options into shares."
       }
      }
     },
     "auth_ref": [
      "r534"
     ]
    },
    "us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice": {
     "xbrltype": "perShareItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Granted, weighted-average exercise price",
        "label": "Share-Based Compensation Arrangements by Share-Based Payment Award, Options, Grants in Period, Weighted Average Exercise Price",
        "documentation": "Weighted average per share amount at which grantees can acquire shares of common stock by exercise of options."
       }
      }
     },
     "auth_ref": [
      "r533"
     ]
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-Based Compensation",
        "label": "Share-Based Payment Arrangement [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for award under share-based payment arrangement. Includes, but is not limited to, methodology and assumption used in measuring cost."
       }
      }
     },
     "auth_ref": [
      "r520",
      "r528",
      "r547",
      "r548",
      "r549",
      "r550",
      "r553",
      "r562",
      "r563",
      "r564",
      "r565"
     ]
    },
    "us-gaap_ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareBasedCompensationSharesAuthorizedUnderStockOptionPlansExercisePriceRangeLineItems",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofRestrictedStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shares",
        "label": "Share-Based Payment Arrangement, Option, Exercise Price Range [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_ShareRepurchaseProgramAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareRepurchaseProgramAxis",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Repurchase Program [Axis]",
        "label": "Share Repurchase Program [Axis]",
        "documentation": "Information by share repurchase program."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShareRepurchaseProgramDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareRepurchaseProgramDomain",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Share Repurchase Program [Domain]",
        "label": "Share Repurchase Program [Domain]",
        "documentation": "Name of the share repurchase program."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseWeightedAverageAssumptionsUsedinEstimatingFairValuesofStockOptionsGrantedDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Expected term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Fair Value Assumptions, Expected Term",
        "documentation": "Expected term of award under share-based payment arrangement, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r549"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Exercisable, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercisable, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r89"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Outstanding, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for option awards outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days."
       }
      }
     },
     "auth_ref": [
      "r180"
     ]
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1": {
     "xbrltype": "durationItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Options vested or expected to vest, weighted-average remaining contractual term (in years)",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Vested and Expected to Vest, Outstanding, Weighted Average Remaining Contractual Term",
        "documentation": "Weighted average remaining contractual term for fully vested and expected to vest options outstanding, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents reported fact of one year, five months, and thirteen days. Includes, but is not limited to, unvested options for which requisite service period has not been rendered but that are expected to vest based on achievement of performance condition, if forfeitures are recognized when they occur."
       }
      }
     },
     "auth_ref": [
      "r545"
     ]
    },
    "us-gaap_ShareholdersEquityAndShareBasedPaymentsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShareholdersEquityAndShareBasedPaymentsTextBlock",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquity"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders' Equity",
        "label": "Shareholders' Equity and Share-Based Payments [Text Block]",
        "documentation": "The entire disclosure for shareholders' equity and share-based payment arrangement. Includes, but is not limited to, disclosure of policy and terms of share-based payment arrangement, deferred compensation arrangement, and employee stock purchase plan (ESPP)."
       }
      }
     },
     "auth_ref": [
      "r174",
      "r179"
     ]
    },
    "cgnx_SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/StockBasedCompensationExpenseAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total intrinsic values of stock options exercised",
        "label": "Shares Based Compensation Arrangement By Shares Based Payment Award Options Exercised Intrinsic Value",
        "documentation": "Shares based compensation arrangement by shares based payment award options exercised intrinsic value."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_ShortTermInvestmentsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ShortTermInvestmentsMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Short-term Investments [Member]",
        "label": "Short-Term Investments [Member]",
        "documentation": "Investments which are not otherwise included in another category or item that the entity has the intent to sell or dispose of within one year from the date of the balance sheet."
       }
      }
     },
     "auth_ref": [
      "r867",
      "r868",
      "r869",
      "r889"
     ]
    },
    "us-gaap_SignificantAccountingPoliciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SignificantAccountingPoliciesTextBlock",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Summary of Significant Accounting Policies",
        "label": "Significant Accounting Policies [Text Block]",
        "documentation": "The entire disclosure for all significant accounting policies of the reporting entity."
       }
      }
     },
     "auth_ref": [
      "r163",
      "r285"
     ]
    },
    "cgnx_SouthboroughMassachusettsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "SouthboroughMassachusettsMember",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Southborough, Massachusetts",
        "label": "Southborough, Massachusetts [Member]",
        "documentation": "Southborough, Massachusetts"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_SovereignBondsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "SovereignBondsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sovereign bonds",
        "label": "Sovereign Bonds Fair Value Disclosure",
        "documentation": "Sovereign bonds fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SovereignDebtSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SovereignDebtSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Sovereign Bonds [Member]",
        "label": "Sovereign Debt Securities [Member]",
        "documentation": "Debt security issued by foreign government (not within the country of domicile of the entity)."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/AccruedExpensesChangesinWarrantyObligationsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Foreign exchange rate changes",
        "label": "Standard and Extended Product Warranty Accrual, Foreign Currency Translation Gain (Loss)",
        "documentation": "Amount of foreign currency translation gain (loss) which decreases (increases) the standard and extended product warranty accrual."
       }
      }
     },
     "auth_ref": [
      "r1101"
     ]
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StandardProductWarrantyPolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Warranty Obligations",
        "label": "Standard Product Warranty, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability."
       }
      }
     },
     "auth_ref": [
      "r1100"
     ]
    },
    "cgnx_StandardProductandServicesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "StandardProductandServicesMember",
     "presentation": [
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Standard products and services",
        "label": "Standard Product and Services [Member]",
        "documentation": "Standard Product and Services [Member]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StateAdministrationOfTaxationChinaMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StateAdministrationOfTaxationChinaMember",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "State Administration of Taxation, China [Member]",
        "label": "State Administration of Taxation, China [Member]",
        "documentation": "Designated tax department of the government of China."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementEquityComponentsAxis",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesComprehensiveIncomeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Equity Components [Axis]",
        "label": "Equity Components [Axis]",
        "documentation": "Information by component of equity."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r41",
      "r237",
      "r276",
      "r277",
      "r278",
      "r298",
      "r299",
      "r300",
      "r304",
      "r312",
      "r314",
      "r329",
      "r396",
      "r399",
      "r485",
      "r559",
      "r560",
      "r561",
      "r591",
      "r592",
      "r615",
      "r616",
      "r617",
      "r618",
      "r619",
      "r621",
      "r624",
      "r651",
      "r652",
      "r653",
      "r654",
      "r655",
      "r657",
      "r672",
      "r752",
      "r753",
      "r754",
      "r772",
      "r836"
     ]
    },
    "srt_StatementGeographicalAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementGeographicalAxis",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RevenueRecognitionDisaggregationbyGeographyandTypeDetails",
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Geographical [Axis]",
        "label": "Geographical [Axis]",
        "documentation": "Information by geographical components."
       }
      }
     },
     "auth_ref": [
      "r227",
      "r236",
      "r353",
      "r354",
      "r777",
      "r781",
      "r783",
      "r841",
      "r845",
      "r849",
      "r865",
      "r871",
      "r875",
      "r876",
      "r877",
      "r878",
      "r879",
      "r880",
      "r881",
      "r882",
      "r883",
      "r888",
      "r916",
      "r937",
      "r1108",
      "r1170"
     ]
    },
    "us-gaap_StatementLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementLineItems",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Line Items]",
        "label": "Statement [Line Items]",
        "documentation": "Line items represent financial concepts included in a table. These concepts are used to disclose reportable information associated with domain members defined in one or many axes to the table."
       }
      }
     },
     "auth_ref": [
      "r298",
      "r299",
      "r300",
      "r329",
      "r713",
      "r761",
      "r774",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r796",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r805",
      "r806",
      "r807",
      "r808",
      "r810",
      "r811",
      "r812",
      "r813",
      "r814",
      "r816",
      "r818",
      "r819",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r836",
      "r938"
     ]
    },
    "us-gaap_StatementOfCashFlowsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfCashFlowsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Cash Flows [Abstract]",
        "label": "Statement of Cash Flows [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfFinancialPositionAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfFinancialPositionAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Financial Position [Abstract]",
        "label": "Statement of Financial Position [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfIncomeAndComprehensiveIncomeAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfIncomeAndComprehensiveIncomeAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Comprehensive Income [Abstract]",
        "label": "Statement of Comprehensive Income [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StatementOfStockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementOfStockholdersEquityAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement of Stockholders' Equity [Abstract]",
        "label": "Statement of Stockholders' Equity [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_StatementScenarioAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "StatementScenarioAxis",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexNarrativeDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Scenario [Axis]",
        "label": "Scenario [Axis]",
        "documentation": "Information by scenario reported, distinguishing information from actual fact. Includes, but is not limited to, pro forma and forecast. Excludes actual facts."
       }
      }
     },
     "auth_ref": [
      "r315",
      "r519",
      "r1027",
      "r1028",
      "r1065"
     ]
    },
    "us-gaap_StatementTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StatementTable",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Statement [Table]",
        "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": [
      "r298",
      "r299",
      "r300",
      "r329",
      "r713",
      "r761",
      "r774",
      "r788",
      "r789",
      "r790",
      "r791",
      "r792",
      "r793",
      "r796",
      "r799",
      "r800",
      "r801",
      "r802",
      "r803",
      "r805",
      "r806",
      "r807",
      "r808",
      "r810",
      "r811",
      "r812",
      "r813",
      "r814",
      "r816",
      "r818",
      "r819",
      "r821",
      "r822",
      "r823",
      "r824",
      "r825",
      "r826",
      "r827",
      "r828",
      "r829",
      "r830",
      "r831",
      "r832",
      "r836",
      "r938"
     ]
    },
    "ecd_StkPrcOrTsrEstimationMethodTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "StkPrcOrTsrEstimationMethodTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/ErrCompDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Price or TSR Estimation Method",
        "label": "Stock Price or TSR Estimation Method [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r956",
      "r968",
      "r978",
      "r1004"
     ]
    },
    "us-gaap_StockAppreciationRightsSARSMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockAppreciationRightsSARSMember",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Appreciation Rights (SARs)",
        "label": "Stock Appreciation Rights (SARs) [Member]",
        "documentation": "Right to receive cash or shares equal to appreciation of predetermined number of grantor's shares during predetermined time period."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/StockBasedCompensationExpenseSummaryofStockOptionActivityDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under stock option plans, shares",
        "negatedLabel": "Exercised",
        "label": "Share-Based Compensation Arrangement by Share-Based Payment Award, Options, Exercises in Period",
        "documentation": "Number of share options (or share units) exercised during the current period."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r133",
      "r134",
      "r177",
      "r534"
     ]
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Issuance of common stock under stock option plans",
        "label": "Stock Issued During Period, Value, Stock Options Exercised",
        "documentation": "Value of stock issued as a result of the exercise of stock options."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r41",
      "r177"
     ]
    },
    "us-gaap_StockOptionPlanExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockOptionPlanExpense",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0,
       "order": 11.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock-based compensation expense",
        "label": "Stock or Unit Option Plan Expense",
        "documentation": "Amount of noncash expense for option under share-based payment arrangement."
       }
      }
     },
     "auth_ref": [
      "r15"
     ]
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRedeemedOrCalledDuringPeriodShares",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Redeemed or Called During Period, Shares",
        "label": "Stock Redeemed or Called During Period, Shares",
        "documentation": "Number of stock bought back by the entity at the exercise price or redemption price."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_StockRedeemedOrCalledDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRedeemedOrCalledDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Redeemed or Called During Period, Value",
        "label": "Stock Redeemed or Called During Period, Value",
        "documentation": "Equity impact of the value of stock bought back by the entity at the exercise price or redemption price."
       }
      }
     },
     "auth_ref": [
      "r24"
     ]
    },
    "us-gaap_StockRepurchaseProgramAuthorizedAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramAuthorizedAmount1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase of authorized common stock",
        "label": "Stock Repurchase Program, Authorized Amount",
        "documentation": "Amount of stock repurchase plan authorized."
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_StockRepurchaseProgramBuybackExciseTax": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "StockRepurchaseProgramBuybackExciseTax",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Repurchase Program, Buyback Excise Tax",
        "label": "Stock Repurchase Program, Buyback Excise Tax",
        "documentation": "Stock Repurchase Program, Buyback Excise Tax"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Stock Repurchase Program, Remaining Authorized Repurchase Amount",
        "label": "Stock Repurchase Program, Remaining Authorized Repurchase Amount",
        "documentation": "Amount remaining of a stock repurchase plan authorized."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodShares": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodShares",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Repurchase of common stock, shares",
        "terseLabel": "Stock Repurchased During Period, Shares",
        "label": "Stock Repurchased During Period, Shares",
        "documentation": "Number of shares that have been repurchased during the period and have not been retired and are not held in treasury. Some state laws may govern the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r133",
      "r134",
      "r177",
      "r769",
      "r836",
      "r870"
     ]
    },
    "cgnx_StockRepurchasedDuringPeriodSharesNotYetSettled": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "StockRepurchasedDuringPeriodSharesNotYetSettled",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Repurchase of common stock, not yet settled (in shares)",
        "label": "Stock Repurchased During Period, Shares Not Yet Settled",
        "documentation": "Stock Repurchased During Period, Shares Not Yet Settled"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_StockRepurchasedDuringPeriodValue": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockRepurchasedDuringPeriodValue",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY",
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Repurchase of common stock",
        "terseLabel": "Stock Repurchased During Period, Value",
        "label": "Stock Repurchased During Period, Value",
        "documentation": "Equity impact of the value of stock that has been repurchased during the period and has not been retired and is not held in treasury. Some state laws may mandate the circumstances under which an entity may acquire its own stock and prescribe the accounting treatment therefore. This element is used when state law does not recognize treasury stock."
       }
      }
     },
     "auth_ref": [
      "r24",
      "r133",
      "r134",
      "r177",
      "r772",
      "r836",
      "r870",
      "r944"
     ]
    },
    "us-gaap_StockholdersEquity": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquity",
     "crdr": "credit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_LiabilitiesAndStockholdersEquity",
       "weight": 1.0,
       "order": 3.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS",
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFSHAREHOLDERSEQUITY"
     ],
     "lang": {
      "en-us": {
       "role": {
        "totalLabel": "Total shareholders\u2019 equity",
        "periodStartLabel": "Beginning Balance",
        "periodEndLabel": "Balance",
        "label": "Equity, Attributable to Parent",
        "documentation": "Amount of equity (deficit) attributable to parent. Excludes temporary equity and equity attributable to noncontrolling interest."
       }
      }
     },
     "auth_ref": [
      "r134",
      "r137",
      "r138",
      "r164",
      "r798",
      "r815",
      "r837",
      "r838",
      "r932",
      "r945",
      "r1054",
      "r1077",
      "r1152",
      "r1174"
     ]
    },
    "us-gaap_StockholdersEquityAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "StockholdersEquityAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Shareholders\u2019 equity:",
        "label": "Equity, Attributable to Parent [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventLineItems",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Line Items]",
        "label": "Subsequent Event [Line Items]",
        "documentation": "Detail information of subsequent event by type. User is expected to use existing line items from elsewhere in the taxonomy as the primary line items for this disclosure, which is further associated with dimension and member elements pertaining to a subsequent event."
       }
      }
     },
     "auth_ref": [
      "r658",
      "r675"
     ]
    },
    "us-gaap_SubsequentEventMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventMember",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Member]",
        "label": "Subsequent Event [Member]",
        "documentation": "Identifies event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r658",
      "r675"
     ]
    },
    "us-gaap_SubsequentEventTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTable",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event [Table]",
        "label": "Subsequent Event [Table]",
        "documentation": "Discloses pertinent information about one or more significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued."
       }
      }
     },
     "auth_ref": [
      "r658",
      "r675"
     ]
    },
    "us-gaap_SubsequentEventTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeAxis",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Axis]",
        "label": "Subsequent Event Type [Axis]",
        "documentation": "Information by event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r658",
      "r675"
     ]
    },
    "us-gaap_SubsequentEventTypeDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventTypeDomain",
     "presentation": [
      "http://cognex.com/role/SubsequentEventsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Event Type [Domain]",
        "label": "Subsequent Event Type [Domain]",
        "documentation": "Event that occurred after the balance sheet date but before financial statements are issued or available to be issued."
       }
      }
     },
     "auth_ref": [
      "r658",
      "r675"
     ]
    },
    "us-gaap_SubsequentEventsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events [Abstract]",
        "label": "Subsequent Events [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_SubsequentEventsTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SubsequentEventsTextBlock",
     "presentation": [
      "http://cognex.com/role/SubsequentEvents"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Subsequent Events",
        "label": "Subsequent Events [Text Block]",
        "documentation": "The entire disclosure for significant events or transactions that occurred after the balance sheet date through the date the financial statements were issued or the date the financial statements were available to be issued. Examples include: the sale of a capital stock issue, purchase of a business, settlement of litigation, catastrophic loss, significant foreign exchange rate changes, loans to insiders or affiliates, and transactions not in the ordinary course of business."
       }
      }
     },
     "auth_ref": [
      "r674",
      "r676"
     ]
    },
    "us-gaap_SummaryOfIncomeTaxContingenciesTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "SummaryOfIncomeTaxContingenciesTextBlock",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesTables"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Changes in the Reserve for Income Taxes, Excluding Interest and Penalties",
        "label": "Summary of Income Tax Contingencies [Table Text Block]",
        "documentation": "Tabular disclosure for tax positions taken in the tax returns filed or to be filed for which it is more likely than not that the tax position will not be sustained upon examination by taxing authorities and other income tax contingencies. Includes, but is not limited to, interest and penalties, reconciliation of unrecognized tax benefits, unrecognized tax benefits that would affect the effective tax rate, tax years that remain subject to examination by tax jurisdictions, and information about positions for which it is reasonably possible that amounts unrecognized will significantly change within 12 months."
       }
      }
     },
     "auth_ref": [
      "r21",
      "r185",
      "r186"
     ]
    },
    "ecd_TabularListTableTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TabularListTableTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tabular List, Table",
        "label": "Tabular List [Table Text Block]"
       }
      }
     },
     "auth_ref": [
      "r997"
     ]
    },
    "us-gaap_TaxCreditCarryforwardAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxCreditCarryforwardAxis",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Axis]",
        "label": "Tax Credit Carryforward [Axis]",
        "documentation": "Information by specific tax credit related to an unused tax credit."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "us-gaap_TaxCreditCarryforwardLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxCreditCarryforwardLineItems",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Line Items]",
        "label": "Tax Credit Carryforward [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_TaxCreditCarryforwardNameDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxCreditCarryforwardNameDomain",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward, Name [Domain]",
        "label": "Tax Credit Carryforward, Name [Domain]",
        "documentation": "The name of the tax credit carryforward."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "us-gaap_TaxCreditCarryforwardTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TaxCreditCarryforwardTable",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Tax Credit Carryforward [Table]",
        "label": "Tax Credit Carryforward [Table]",
        "documentation": "A listing of tax credit carryforwards available to reduce future taxable income including descriptions, amounts, expiration dates, limitations on use and the related deferred tax assets and valuation allowances."
       }
      }
     },
     "auth_ref": [
      "r95"
     ]
    },
    "ecd_TotalShareholderRtnAmt": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Amount",
        "label": "Total Shareholder Return Amount"
       }
      }
     },
     "auth_ref": [
      "r989"
     ]
    },
    "ecd_TotalShareholderRtnVsPeerGroupTextBlock": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TotalShareholderRtnVsPeerGroupTextBlock",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/PvpDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Total Shareholder Return Vs Peer Group",
        "label": "Total Shareholder Return Vs Peer Group [Text Block]"
       }
      }
     },
     "auth_ref": [
      "r996"
     ]
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts Receivable",
        "label": "Accounts Receivable [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for accounts receivable."
       }
      }
     },
     "auth_ref": [
      "r201",
      "r202",
      "r203",
      "r358",
      "r359",
      "r361"
     ]
    },
    "us-gaap_TrademarksMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TrademarksMember",
     "presentation": [
      "http://cognex.com/role/BusinessAcquisitionsMoritexPurchasePriceAllocationDetails",
      "http://cognex.com/role/IntangibleAssetsAmortizedIntangibleAssetsDetail",
      "http://cognex.com/role/IntangibleAssetsNarrativeDetails",
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trademarks",
        "label": "Trademarks [Member]",
        "documentation": "Rights acquired through registration of a trademark to gain or protect exclusive use of a business name, symbol or other device or style."
       }
      }
     },
     "auth_ref": [
      "r103"
     ]
    },
    "ecd_TradingArrAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrAxis",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangement:",
        "label": "Trading Arrangement [Axis]"
       }
      }
     },
     "auth_ref": [
      "r1017"
     ]
    },
    "ecd_TradingArrByIndTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TradingArrByIndTable",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Arrangements, by Individual",
        "label": "Trading Arrangements, by Individual [Table]"
       }
      }
     },
     "auth_ref": [
      "r1019"
     ]
    },
    "dei_TradingSymbol": {
     "xbrltype": "tradingSymbolItemType",
     "nsuri": "http://xbrl.sec.gov/dei/2023",
     "localname": "TradingSymbol",
     "presentation": [
      "http://cognex.com/role/CoverPage"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Trading Symbol",
        "label": "Trading Symbol",
        "documentation": "Trading symbol of an instrument as listed on an exchange."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TransfersAndServicingOfFinancialInstrumentsTypesOfFinancialInstrumentsDomain",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Financial Instruments [Domain]",
        "label": "Financial Instruments [Domain]",
        "documentation": "Instrument or contract that imposes a contractual obligation to deliver cash or another financial instrument or to exchange other financial instruments on potentially unfavorable terms and conveys a contractual right to receive cash or another financial instrument or to exchange other financial instruments on potentially favorable terms."
       }
      }
     },
     "auth_ref": [
      "r363",
      "r364",
      "r365",
      "r366",
      "r367",
      "r368",
      "r369",
      "r370",
      "r371",
      "r372",
      "r373",
      "r374",
      "r375",
      "r376",
      "r377",
      "r378",
      "r379",
      "r380",
      "r381",
      "r382",
      "r383",
      "r384",
      "r385",
      "r386",
      "r387",
      "r388",
      "r389",
      "r390",
      "r391",
      "r392",
      "r477",
      "r483",
      "r622",
      "r677",
      "r678",
      "r679",
      "r680",
      "r681",
      "r682",
      "r683",
      "r684",
      "r685",
      "r686",
      "r687",
      "r688",
      "r689",
      "r690",
      "r691",
      "r692",
      "r693",
      "r694",
      "r695",
      "r696",
      "r697",
      "r698",
      "r699",
      "r700",
      "r701",
      "r702",
      "r703",
      "r704",
      "r705",
      "r706",
      "r739",
      "r1034",
      "r1035",
      "r1036",
      "r1037",
      "r1038",
      "r1039",
      "r1040",
      "r1073",
      "r1074",
      "r1075",
      "r1076"
     ]
    },
    "ecd_TrdArrAdoptionDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrAdoptionDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Adoption Date",
        "label": "Trading Arrangement Adoption Date"
       }
      }
     },
     "auth_ref": [
      "r1020"
     ]
    },
    "ecd_TrdArrDuration": {
     "xbrltype": "durationItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrDuration",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Arrangement Duration",
        "label": "Trading Arrangement Duration"
       }
      }
     },
     "auth_ref": [
      "r1021"
     ]
    },
    "ecd_TrdArrIndName": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndName",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Name",
        "label": "Trading Arrangement, Individual Name"
       }
      }
     },
     "auth_ref": [
      "r1019"
     ]
    },
    "ecd_TrdArrIndTitle": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrIndTitle",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Title",
        "label": "Trading Arrangement, Individual Title"
       }
      }
     },
     "auth_ref": [
      "r1019"
     ]
    },
    "ecd_TrdArrSecuritiesAggAvailAmt": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrSecuritiesAggAvailAmt",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Aggregate Available",
        "label": "Trading Arrangement, Securities Aggregate Available Amount"
       }
      }
     },
     "auth_ref": [
      "r1022"
     ]
    },
    "ecd_TrdArrTerminationDate": {
     "xbrltype": "stringItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "TrdArrTerminationDate",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/InsiderTradingArrangements"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Termination Date",
        "label": "Trading Arrangement Termination Date"
       }
      }
     },
     "auth_ref": [
      "r1020"
     ]
    },
    "cgnx_TreasuryBillsFairValueDisclosure": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "TreasuryBillsFairValueDisclosure",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/FairValueMeasurementsAssetsandLiabilitiesMeasuredatFairValueonaRecurringBasisDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Treasury notes",
        "label": "Treasury Bills Fair Value Disclosure",
        "documentation": "Treasury bills fair value disclosure."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_TypeOfRestructuringDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "TypeOfRestructuringDomain",
     "presentation": [
      "http://cognex.com/role/LeasesDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringReservebyTypeofCostDetails",
      "http://cognex.com/role/RestructuringChargesScheduleofRestructuringandRelatedCostsDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Type of Restructuring [Domain]",
        "label": "Type of Restructuring [Domain]",
        "documentation": "Identification of the types of restructuring costs."
       }
      }
     },
     "auth_ref": [
      "r444",
      "r445",
      "r451",
      "r452"
     ]
    },
    "country_US": {
     "xbrltype": "domainItemType",
     "nsuri": "http://xbrl.sec.gov/country/2023",
     "localname": "US",
     "presentation": [
      "http://cognex.com/role/SegmentandGeographicInformationScheduleofRevenuefromExternalCustomersandLongLivedAssetsbyGeographicalAreasDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "United States [Member]",
        "label": "UNITED STATES"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_USTreasuryBillSecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasuryBillSecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsComponentsofCashCashEquivalentsandInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "verboseLabel": "Treasury Bills [Member]",
        "label": "US Treasury Bill Securities [Member]",
        "documentation": "This category includes information about negotiable debt securities issued by the United States Department of the Treasury which generally have maturities of one year or less, are interest bearing, and are backed by the full faith and credit of the United States government."
       }
      }
     },
     "auth_ref": [
      "r1168"
     ]
    },
    "us-gaap_USTreasurySecuritiesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "USTreasurySecuritiesMember",
     "presentation": [
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsAmortizedCosttoFairValueDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsEffectiveMaturityDatesofAvailableforSaleInvestmentsDetail",
      "http://cognex.com/role/CashCashEquivalentsandInvestmentsGrossUnrealizedLossesandFairValueforAvailableforSaleInvestmentsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Treasury Bills [Member]",
        "label": "US Treasury Securities [Member]",
        "documentation": "This category includes information about debt securities issued by the United States Department of the Treasury and backed by the United States government. Such securities primarily consist of treasury bills (short-term maturities - one year or less), treasury notes (intermediate term maturities - two to ten years), and treasury bonds (long-term maturities - ten to thirty years)."
       }
      }
     },
     "auth_ref": [
      "r901",
      "r922",
      "r924",
      "r1168"
     ]
    },
    "us-gaap_UnbilledReceivablesCurrent": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnbilledReceivablesCurrent",
     "crdr": "debit",
     "calculation": {
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS": {
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0,
       "order": 6.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unbilled revenue",
        "label": "Unbilled Receivables, Current",
        "documentation": "Amount received for services rendered and products shipped, but not yet billed, for non-contractual agreements due within one year or the normal operating cycle, if longer."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UncollectibleReceivablesMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UncollectibleReceivablesMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Reserve for Uncollectible Accounts Receivable and Sales Return [Member]",
        "label": "Uncollectible Receivables [Member]",
        "documentation": "A revision in the estimated reserve needed to reduce the carrying amount of accounts receivable to net realizable value with respect to credit and collection risk."
       }
      }
     },
     "auth_ref": []
    },
    "ecd_UndrlygSecurityMktPriceChngPct": {
     "xbrltype": "pureItemType",
     "nsuri": "http://xbrl.sec.gov/ecd/2023",
     "localname": "UndrlygSecurityMktPriceChngPct",
     "presentation": [
      "http://xbrl.sec.gov/ecd/role/AwardTimingDisclosure"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Underlying Security Market Price Change",
        "label": "Underlying Security Market Price Change, Percent"
       }
      }
     },
     "auth_ref": [
      "r1016"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefits": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefits",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "periodStartLabel": "Balance of reserve for income taxes",
        "periodEndLabel": "Balance of reserve for income taxes",
        "label": "Unrecognized Tax Benefits",
        "documentation": "Amount of unrecognized tax benefits."
       }
      }
     },
     "auth_ref": [
      "r570",
      "r579"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions as a result of tax positions taken in prior periods",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Prior Period Tax Positions",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedTerseLabel": "Reductions relating to settlements with taxing authorities",
        "label": "Unrecognized Tax Benefits, Decrease Resulting from Settlements with Taxing Authorities",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from settlements with taxing authorities."
       }
      }
     },
     "auth_ref": [
      "r582"
     ]
    },
    "cgnx_UnrecognizedTaxBenefitsGross": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "UnrecognizedTaxBenefitsGross",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross",
        "label": "Unrecognized Tax Benefits, Gross",
        "documentation": "Unrecognized Tax Benefits, Gross"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_UnrecognizedTaxBenefitsGrossNoncurrentLiability": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "UnrecognizedTaxBenefitsGrossNoncurrentLiability",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross, Noncurrent Liability",
        "label": "Unrecognized Tax Benefits, Gross, Noncurrent Liability",
        "documentation": "Unrecognized Tax Benefits, Gross, Noncurrent Liability"
       }
      }
     },
     "auth_ref": []
    },
    "cgnx_UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes",
        "label": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes",
        "documentation": "Unrecognized Tax Benefits, Gross, Offset to Tax Attributes"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Interest and penalties, gross",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Accrued",
        "documentation": "Amount accrued for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r578"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesAdditionalInformationDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Income tax penalties and interest expense",
        "label": "Unrecognized Tax Benefits, Income Tax Penalties and Interest Expense",
        "documentation": "Amount of expense for interest on an underpayment of income taxes and penalties related to a tax position claimed or expected to be claimed in the tax return."
       }
      }
     },
     "auth_ref": [
      "r578"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions as a result of tax positions taken in the current period",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Current Period Tax Positions",
        "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": [
      "r581"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Additions as a result of tax positions taken in prior periods",
        "label": "Unrecognized Tax Benefits, Increase Resulting from Prior Period Tax Positions",
        "documentation": "Amount of increase in unrecognized tax benefits resulting from tax positions taken in prior period tax returns."
       }
      }
     },
     "auth_ref": [
      "r580"
     ]
    },
    "us-gaap_UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/IncomeTaxesChangesintheReserveforIncomeTaxesExcludingInterestandPenaltiesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Reductions as a result of the expiration of the applicable statutes of limitations",
        "label": "Unrecognized Tax Benefits, Reduction Resulting from Lapse of Applicable Statute of Limitations",
        "documentation": "Amount of decrease in unrecognized tax benefits resulting from lapses of applicable statutes of limitations."
       }
      }
     },
     "auth_ref": [
      "r583"
     ]
    },
    "us-gaap_UnusualOrInfrequentItemAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnusualOrInfrequentItemAxis",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Axis]",
        "label": "Unusual or Infrequent Item, or Both [Axis]",
        "documentation": "Information by an event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r156"
     ]
    },
    "us-gaap_UnusualOrInfrequentItemDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnusualOrInfrequentItemDomain",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Domain]",
        "label": "Unusual or Infrequent Item, or Both [Domain]",
        "documentation": "Event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r156"
     ]
    },
    "us-gaap_UnusualOrInfrequentItemLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnusualOrInfrequentItemLineItems",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Line Items]",
        "label": "Unusual or Infrequent Item, or Both [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_UnusualOrInfrequentItemTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UnusualOrInfrequentItemTable",
     "presentation": [
      "http://cognex.com/role/LossfromFireDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Unusual or Infrequent Item, or Both [Table]",
        "label": "Unusual or Infrequent Item, or Both [Table]",
        "documentation": "Disclosure of information about the nature and financial statement effect of an event or transaction that is unusual in nature or infrequent in occurrence, or both."
       }
      }
     },
     "auth_ref": [
      "r156"
     ]
    },
    "us-gaap_UseOfEstimates": {
     "xbrltype": "textBlockItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "UseOfEstimates",
     "presentation": [
      "http://cognex.com/role/SummaryofSignificantAccountingPoliciesPolicies"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Use of Estimates in the Preparation of Financial Statements",
        "label": "Use of Estimates, Policy [Policy Text Block]",
        "documentation": "Disclosure of accounting policy for the use of estimates in the preparation of financial statements in conformity with generally accepted accounting principles."
       }
      }
     },
     "auth_ref": [
      "r60",
      "r61",
      "r62",
      "r212",
      "r213",
      "r215",
      "r216"
     ]
    },
    "us-gaap_ValuationAllowanceOfDeferredTaxAssetsMember": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowanceOfDeferredTaxAssetsMember",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Deferred Tax Valuation Allowance [Member]",
        "label": "SEC Schedule, 12-09, Valuation Allowance, Deferred Tax Asset [Member]",
        "documentation": "Valuation allowance of deferred tax asset attributable to deductible temporary difference and carryforward."
       }
      }
     },
     "auth_ref": [
      "r1056",
      "r1057",
      "r1058",
      "r1059",
      "r1060"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesAdjustments": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesAdjustments",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Other",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Increase (Decrease) Adjustment",
        "documentation": "Amount of increase (decrease) in valuation and qualifying accounts and reserves from adjustment."
       }
      }
     },
     "auth_ref": [
      "r1061"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesBalance": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesBalance",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDBALANCESHEETSParenthetical",
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Accounts receivable, allowance for credit losses",
        "periodStartLabel": "Balance\u00a0at Beginning of Period",
        "periodEndLabel": "Balance\u00a0at End of Period",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Amount",
        "documentation": "Amount of valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r290",
      "r296"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesChargedToCostAndExpense",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Charged\u00a0to Costs and Expenses",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Cost and Expense",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to cost and expense."
       }
      }
     },
     "auth_ref": [
      "r293"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesChargedToOtherAccounts": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesChargedToOtherAccounts",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Additions, Charge to Other Account",
        "documentation": "Amount of increase in valuation and qualifying accounts and reserves from charge to accounts other than cost and expense."
       }
      }
     },
     "auth_ref": [
      "r294"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesDeductions": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesDeductions",
     "crdr": "debit",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "negatedLabel": "Deductions",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves, Deduction",
        "documentation": "Amount of decrease in valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r295"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesDomain": {
     "xbrltype": "domainItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesDomain",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves [Domain]",
        "documentation": "Valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ]
    },
    "us-gaap_ValuationAllowancesAndReservesTypeAxis": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "ValuationAllowancesAndReservesTypeAxis",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "label": "SEC Schedule, 12-09, Valuation Allowances and Reserves Type [Axis]",
        "documentation": "Information by valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ]
    },
    "srt_ValuationAndQualifyingAccountsAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ValuationAndQualifyingAccountsAbstract",
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "srt_ValuationAndQualifyingAccountsDisclosureLineItems": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ValuationAndQualifyingAccountsDisclosureLineItems",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Line Items]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [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": [
      "r226",
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ]
    },
    "srt_ValuationAndQualifyingAccountsDisclosureTable": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/srt/2023",
     "localname": "ValuationAndQualifyingAccountsDisclosureTable",
     "presentation": [
      "http://cognex.com/role/ScheduleIIValuationandQualifyingAccountsDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]",
        "label": "SEC Schedule, 12-09, Valuation and Qualifying Accounts Disclosure [Table]",
        "documentation": "Disclosure of valuation and qualifying accounts and reserves."
       }
      }
     },
     "auth_ref": [
      "r226",
      "r290",
      "r291",
      "r292",
      "r295",
      "r296"
     ]
    },
    "us-gaap_VariableLeasePayment": {
     "xbrltype": "monetaryItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "VariableLeasePayment",
     "crdr": "credit",
     "presentation": [
      "http://cognex.com/role/LeasesDetails"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Variable Lease, Payment",
        "label": "Variable Lease, Payment",
        "documentation": "Amount of cash outflow for variable lease payment excluded from lease liability."
       }
      }
     },
     "auth_ref": [
      "r665"
     ]
    },
    "cgnx_VoteEntitledForEachCommonShareOutstanding": {
     "xbrltype": "integerItemType",
     "nsuri": "http://cognex.com/20231231",
     "localname": "VoteEntitledForEachCommonShareOutstanding",
     "presentation": [
      "http://cognex.com/role/ShareholdersEquityAdditionalInformationDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Vote entitled for each common share outstanding",
        "label": "Vote Entitled For Each Common Share Outstanding",
        "documentation": "Vote entitled for each common share outstanding."
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberDilutedSharesOutstandingAdjustment": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberDilutedSharesOutstandingAdjustment",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 2.0
      }
     },
     "presentation": [
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Effect of dilutive stock options",
        "label": "Weighted Average Number of Shares Outstanding, Diluted, Adjustment",
        "documentation": "The sum of dilutive potential common shares or units used in the calculation of the diluted per-share or per-unit computation."
       }
      }
     },
     "auth_ref": [
      "r1066"
     ]
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": null,
       "weight": null,
       "order": null,
       "root": true
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Diluted (in shares)",
        "totalLabel": "Diluted weighted-average common and common-equivalent shares outstanding",
        "label": "Weighted Average Number of Shares Outstanding, Diluted",
        "documentation": "The average number of shares or units issued and outstanding that are used in calculating diluted EPS or earnings per unit (EPU), determined based on the timing of issuance of shares or units in the period."
       }
      }
     },
     "auth_ref": [
      "r319",
      "r324"
     ]
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingAbstract": {
     "xbrltype": "stringItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingAbstract",
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Weighted-average common and common-equivalent shares outstanding:",
        "label": "Weighted Average Number of Shares Outstanding, Diluted [Abstract]"
       }
      }
     },
     "auth_ref": []
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "xbrltype": "sharesItemType",
     "nsuri": "http://fasb.org/us-gaap/2023",
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "calculation": {
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail": {
       "parentTag": "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding",
       "weight": 1.0,
       "order": 1.0
      }
     },
     "presentation": [
      "http://cognex.com/role/CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://cognex.com/role/WeightedAverageSharesCalculationofWeightedAverageSharesDetail"
     ],
     "lang": {
      "en-us": {
       "role": {
        "terseLabel": "Basic (in shares)",
        "verboseLabel": "Basic weighted-average common shares outstanding",
        "label": "Weighted Average Number of Shares Outstanding, Basic",
        "documentation": "Number of [basic] shares or units, after adjustment for contingently issuable shares or units and other shares or units not deemed outstanding, determined by relating the portion of time within a reporting period that common shares or units have been outstanding to the total time in that period."
       }
      }
     },
     "auth_ref": [
      "r318",
      "r324"
     ]
    }
   }
  }
 },
 "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": "4",
   "SubTopic": "50",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482610/350-50-25-4"
  },
  "r2": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "6",
   "SubTopic": "50",
   "Topic": "350",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482610/350-50-25-6"
  },
  "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": "45",
   "Paragraph": "1",
   "SubTopic": "230",
   "Topic": "830",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r7": {
   "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"
  },
  "r8": {
   "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"
  },
  "r9": {
   "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"
  },
  "r10": {
   "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"
  },
  "r11": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "15",
   "SubTopic": "10",
   "Topic": "220",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-15"
  },
  "r12": {
   "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"
  },
  "r13": {
   "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"
  },
  "r14": {
   "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"
  },
  "r15": {
   "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"
  },
  "r16": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480463/815-10-45-5"
  },
  "r17": {
   "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"
  },
  "r18": {
   "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"
  },
  "r19": {
   "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"
  },
  "r20": {
   "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"
  },
  "r21": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "19",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-19"
  },
  "r22": {
   "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"
  },
  "r23": {
   "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"
  },
  "r24": {
   "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"
  },
  "r25": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "SubTopic": "10",
   "Topic": "815",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-2"
  },
  "r26": {
   "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"
  },
  "r27": {
   "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"
  },
  "r28": {
   "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"
  },
  "r29": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "SubTopic": "20",
   "Topic": "210",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3"
  },
  "r30": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4D",
   "Subparagraph": "(c)(2)",
   "SubTopic": "20",
   "Topic": "860",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4D"
  },
  "r31": {
   "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"
  },
  "r32": {
   "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"
  },
  "r33": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "210",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483489/210-10-50-1"
  },
  "r34": {
   "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"
  },
  "r35": {
   "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"
  },
  "r36": {
   "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"
  },
  "r37": {
   "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"
  },
  "r38": {
   "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"
  },
  "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.24)",
   "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.25)",
   "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.29-31)",
   "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": "220",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r43": {
   "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"
  },
  "r44": {
   "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"
  },
  "r45": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "12",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r46": {
   "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"
  },
  "r47": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "15",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-15"
  },
  "r48": {
   "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"
  },
  "r49": {
   "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"
  },
  "r50": {
   "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"
  },
  "r51": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "230",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482913/230-10-50-3"
  },
  "r52": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "260",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482662/260-10-50-1"
  },
  "r53": {
   "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"
  },
  "r54": {
   "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"
  },
  "r55": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-16"
  },
  "r56": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r57": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "18",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r58": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-20"
  },
  "r59": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "275",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-21"
  },
  "r60": {
   "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"
  },
  "r61": {
   "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"
  },
  "r62": {
   "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"
  },
  "r63": {
   "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"
  },
  "r64": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "310",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r65": {
   "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"
  },
  "r66": {
   "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"
  },
  "r67": {
   "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"
  },
  "r68": {
   "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"
  },
  "r69": {
   "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"
  },
  "r70": {
   "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"
  },
  "r71": {
   "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"
  },
  "r72": {
   "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"
  },
  "r73": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "420",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r74": {
   "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"
  },
  "r75": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "420",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 5.P.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-1"
  },
  "r76": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "420",
   "SubTopic": "10",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB TOPIC 5.P.3,4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-1"
  },
  "r77": {
   "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)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r78": {
   "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"
  },
  "r79": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "460",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r80": {
   "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"
  },
  "r81": {
   "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"
  },
  "r82": {
   "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"
  },
  "r83": {
   "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"
  },
  "r84": {
   "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"
  },
  "r85": {
   "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"
  },
  "r86": {
   "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"
  },
  "r87": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "25",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483070/710-10-25-3"
  },
  "r88": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "710",
   "SubTopic": "10",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483043/710-10-30-2"
  },
  "r89": {
   "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"
  },
  "r90": {
   "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"
  },
  "r91": {
   "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"
  },
  "r92": {
   "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"
  },
  "r93": {
   "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"
  },
  "r94": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "740",
   "SubTopic": "10",
   "Section": "45",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-6"
  },
  "r95": {
   "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"
  },
  "r96": {
   "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"
  },
  "r97": {
   "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"
  },
  "r98": {
   "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"
  },
  "r99": {
   "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"
  },
  "r100": {
   "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"
  },
  "r101": {
   "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"
  },
  "r102": {
   "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"
  },
  "r103": {
   "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"
  },
  "r104": {
   "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"
  },
  "r105": {
   "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"
  },
  "r106": {
   "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"
  },
  "r107": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1"
  },
  "r108": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r109": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r110": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B"
  },
  "r111": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4"
  },
  "r112": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r113": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r114": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r115": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(a),(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r116": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r117": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4B"
  },
  "r118": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4C",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4C"
  },
  "r119": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "4D",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4D"
  },
  "r120": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5"
  },
  "r121": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-7"
  },
  "r122": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-8"
  },
  "r123": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "10",
   "Section": "55",
   "Paragraph": "182",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480401/815-10-55-182"
  },
  "r124": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "815",
   "SubTopic": "25",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480238/815-25-50-1"
  },
  "r125": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "20",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-20"
  },
  "r126": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Name": "Accounting Standards Codification",
   "Topic": "825",
   "SubTopic": "10",
   "Section": "50",
   "Paragraph": "21",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21"
  },
  "r127": {
   "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.15(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r128": {
   "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"
  },
  "r129": {
   "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"
  },
  "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(25))",
   "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(28))",
   "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(29))",
   "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(30)(a)(1))",
   "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)(3))",
   "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))",
   "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(31))",
   "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(32))",
   "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(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r141": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r142": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(c))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r143": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3"
  },
  "r144": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483444/210-20-55-7"
  },
  "r145": {
   "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"
  },
  "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(1))",
   "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(10))",
   "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(20))",
   "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.1)",
   "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.1,2)",
   "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.2(a),(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r152": {
   "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"
  },
  "r153": {
   "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"
  },
  "r154": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r155": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SX 210.5-03.9)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483621/220-10-S99-2"
  },
  "r156": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "220",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483613/220-20-50-1"
  },
  "r157": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "12",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-12"
  },
  "r158": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "13",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-13"
  },
  "r159": {
   "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"
  },
  "r160": {
   "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"
  },
  "r161": {
   "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"
  },
  "r162": {
   "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"
  },
  "r163": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "235",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//235/tableOfContent"
  },
  "r164": {
   "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"
  },
  "r165": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "330",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.BB)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480581/330-10-S99-2"
  },
  "r166": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "350",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482665/350-30-50-1"
  },
  "r167": {
   "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"
  },
  "r168": {
   "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"
  },
  "r169": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "360",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//360/tableOfContent"
  },
  "r170": {
   "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"
  },
  "r171": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r172": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r173": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "440",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//440/tableOfContent"
  },
  "r174": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "505",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//505/tableOfContent"
  },
  "r175": {
   "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"
  },
  "r176": {
   "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"
  },
  "r177": {
   "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"
  },
  "r178": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "710",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483070/710-10-25-9"
  },
  "r179": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r180": {
   "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"
  },
  "r181": {
   "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"
  },
  "r182": {
   "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"
  },
  "r183": {
   "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"
  },
  "r184": {
   "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"
  },
  "r185": {
   "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"
  },
  "r186": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "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"
  },
  "r187": {
   "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"
  },
  "r188": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//805/tableOfContent"
  },
  "r189": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "805",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Section": "50",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479907/805-20-50-1"
  },
  "r190": {
   "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"
  },
  "r191": {
   "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"
  },
  "r192": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "815",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//815/tableOfContent"
  },
  "r193": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482907/825-10-50-21"
  },
  "r194": {
   "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"
  },
  "r195": {
   "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"
  },
  "r196": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r197": {
   "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"
  },
  "r198": {
   "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"
  },
  "r199": {
   "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"
  },
  "r200": {
   "role": "http://fasb.org/us-gaap/role/ref/legacyRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480081/944-40-50-3"
  },
  "r201": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11B",
   "Subparagraph": "(b)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-11B"
  },
  "r202": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(d)",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-15"
  },
  "r203": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "SubTopic": "10",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-6"
  },
  "r204": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r205": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r206": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-6"
  },
  "r207": {
   "role": "http://fasb.org/us-gaap/role/ref/otherTransitionRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-7"
  },
  "r208": {
   "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"
  },
  "r209": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "20",
   "SubTopic": "210",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-20"
  },
  "r210": {
   "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"
  },
  "r211": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "SubTopic": "35",
   "Topic": "720",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1"
  },
  "r212": {
   "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"
  },
  "r213": {
   "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"
  },
  "r214": {
   "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"
  },
  "r215": {
   "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"
  },
  "r216": {
   "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"
  },
  "r217": {
   "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"
  },
  "r218": {
   "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"
  },
  "r219": {
   "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"
  },
  "r220": {
   "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"
  },
  "r221": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(1)",
   "SubTopic": "20",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r222": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(d)(2)",
   "SubTopic": "20",
   "Topic": "310",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481925/310-20-65-2"
  },
  "r223": {
   "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"
  },
  "r224": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "250",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//250/tableOfContent"
  },
  "r225": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Accounting Standards Codification",
   "Topic": "606",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//606/tableOfContent"
  },
  "r226": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "09",
   "Publisher": "SEC"
  },
  "r227": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Footnote": "2",
   "Publisher": "SEC"
  },
  "r228": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column B",
   "Publisher": "SEC"
  },
  "r229": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column C",
   "Publisher": "SEC"
  },
  "r230": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column D",
   "Publisher": "SEC"
  },
  "r231": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column E",
   "Publisher": "SEC"
  },
  "r232": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column F",
   "Publisher": "SEC"
  },
  "r233": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column G",
   "Publisher": "SEC"
  },
  "r234": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column H",
   "Publisher": "SEC"
  },
  "r235": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "28",
   "Paragraph": "Column I",
   "Publisher": "SEC"
  },
  "r236": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "12",
   "Subsection": "29",
   "Footnote": "4",
   "Publisher": "SEC"
  },
  "r237": {
   "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"
  },
  "r238": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "105",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479343/105-10-65-6"
  },
  "r239": {
   "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"
  },
  "r240": {
   "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"
  },
  "r241": {
   "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"
  },
  "r242": {
   "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"
  },
  "r243": {
   "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"
  },
  "r244": {
   "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(12))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r245": {
   "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"
  },
  "r246": {
   "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"
  },
  "r247": {
   "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"
  },
  "r248": {
   "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"
  },
  "r249": {
   "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"
  },
  "r250": {
   "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"
  },
  "r251": {
   "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"
  },
  "r252": {
   "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"
  },
  "r253": {
   "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"
  },
  "r254": {
   "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"
  },
  "r255": {
   "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"
  },
  "r256": {
   "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"
  },
  "r257": {
   "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"
  },
  "r258": {
   "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"
  },
  "r259": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-3"
  },
  "r260": {
   "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"
  },
  "r261": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "210",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483466/210-20-50-4"
  },
  "r262": {
   "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"
  },
  "r263": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r264": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r265": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10A",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-10A"
  },
  "r266": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r267": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r268": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14A"
  },
  "r269": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "17A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-17A"
  },
  "r270": {
   "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"
  },
  "r271": {
   "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"
  },
  "r272": {
   "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"
  },
  "r273": {
   "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"
  },
  "r274": {
   "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"
  },
  "r275": {
   "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"
  },
  "r276": {
   "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"
  },
  "r277": {
   "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"
  },
  "r278": {
   "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"
  },
  "r279": {
   "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"
  },
  "r280": {
   "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"
  },
  "r281": {
   "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"
  },
  "r282": {
   "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"
  },
  "r283": {
   "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"
  },
  "r284": {
   "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"
  },
  "r285": {
   "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"
  },
  "r286": {
   "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"
  },
  "r287": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(h)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r288": {
   "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"
  },
  "r289": {
   "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(n))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r290": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r291": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r292": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r293": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r294": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r295": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r296": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r297": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r298": {
   "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"
  },
  "r299": {
   "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"
  },
  "r300": {
   "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"
  },
  "r301": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r302": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r303": {
   "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"
  },
  "r304": {
   "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"
  },
  "r305": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r306": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-1"
  },
  "r307": {
   "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"
  },
  "r308": {
   "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"
  },
  "r309": {
   "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"
  },
  "r310": {
   "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"
  },
  "r311": {
   "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"
  },
  "r312": {
   "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"
  },
  "r313": {
   "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"
  },
  "r314": {
   "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"
  },
  "r315": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5",
   "Subparagraph": "(SAB Topic 11.M.Q2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-5"
  },
  "r316": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "6",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480530/250-10-S99-6"
  },
  "r317": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "260",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//260/tableOfContent"
  },
  "r318": {
   "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"
  },
  "r319": {
   "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"
  },
  "r320": {
   "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"
  },
  "r321": {
   "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"
  },
  "r322": {
   "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"
  },
  "r323": {
   "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"
  },
  "r324": {
   "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"
  },
  "r325": {
   "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"
  },
  "r326": {
   "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"
  },
  "r327": {
   "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"
  },
  "r328": {
   "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"
  },
  "r329": {
   "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"
  },
  "r330": {
   "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"
  },
  "r331": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "280",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//280/tableOfContent"
  },
  "r332": {
   "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"
  },
  "r333": {
   "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"
  },
  "r334": {
   "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"
  },
  "r335": {
   "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"
  },
  "r336": {
   "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"
  },
  "r337": {
   "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"
  },
  "r338": {
   "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"
  },
  "r339": {
   "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"
  },
  "r340": {
   "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"
  },
  "r341": {
   "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"
  },
  "r342": {
   "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"
  },
  "r343": {
   "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"
  },
  "r344": {
   "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"
  },
  "r345": {
   "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"
  },
  "r346": {
   "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"
  },
  "r347": {
   "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"
  },
  "r348": {
   "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"
  },
  "r349": {
   "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"
  },
  "r350": {
   "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"
  },
  "r351": {
   "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"
  },
  "r352": {
   "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"
  },
  "r353": {
   "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"
  },
  "r354": {
   "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"
  },
  "r355": {
   "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"
  },
  "r356": {
   "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"
  },
  "r357": {
   "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"
  },
  "r358": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-1"
  },
  "r359": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481962/310-10-50-2"
  },
  "r360": {
   "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"
  },
  "r361": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "310",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481569/310-20-50-1"
  },
  "r362": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-2"
  },
  "r363": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r364": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r365": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r366": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r367": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r368": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r369": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r370": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r371": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r372": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r373": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r374": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r375": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r376": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r377": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(aaa)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r378": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r379": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r380": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r381": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r382": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r383": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r384": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r385": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r386": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r387": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5A",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5A"
  },
  "r388": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r389": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r390": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r391": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r392": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r393": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r394": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r395": {
   "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"
  },
  "r396": {
   "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"
  },
  "r397": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r398": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479654/326-10-65-4"
  },
  "r399": {
   "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"
  },
  "r400": {
   "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"
  },
  "r401": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-11"
  },
  "r402": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r403": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r404": {
   "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"
  },
  "r405": {
   "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"
  },
  "r406": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "13",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-13"
  },
  "r407": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-14"
  },
  "r408": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "16",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-16"
  },
  "r409": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479319/326-20-50-5"
  },
  "r410": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479130/326-30-45-1"
  },
  "r411": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r412": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r413": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-4"
  },
  "r414": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-5"
  },
  "r415": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-7"
  },
  "r416": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r417": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r418": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479106/326-30-50-9"
  },
  "r419": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "330",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//330/tableOfContent"
  },
  "r420": {
   "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"
  },
  "r421": {
   "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"
  },
  "r422": {
   "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"
  },
  "r423": {
   "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"
  },
  "r424": {
   "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"
  },
  "r425": {
   "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"
  },
  "r426": {
   "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"
  },
  "r427": {
   "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"
  },
  "r428": {
   "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"
  },
  "r429": {
   "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"
  },
  "r430": {
   "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"
  },
  "r431": {
   "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"
  },
  "r432": {
   "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"
  },
  "r433": {
   "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"
  },
  "r434": {
   "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"
  },
  "r435": {
   "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"
  },
  "r436": {
   "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"
  },
  "r437": {
   "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"
  },
  "r438": {
   "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"
  },
  "r439": {
   "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"
  },
  "r440": {
   "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"
  },
  "r441": {
   "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"
  },
  "r442": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//420/tableOfContent"
  },
  "r443": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r444": {
   "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"
  },
  "r445": {
   "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"
  },
  "r446": {
   "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"
  },
  "r447": {
   "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"
  },
  "r448": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482017/420-10-50-1"
  },
  "r449": {
   "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"
  },
  "r450": {
   "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"
  },
  "r451": {
   "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"
  },
  "r452": {
   "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"
  },
  "r453": {
   "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"
  },
  "r454": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "420",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Subparagraph": "(SAB Topic 5.P.4(e))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479823/420-10-S99-2"
  },
  "r455": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r456": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "440",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482648/440-10-50-4"
  },
  "r457": {
   "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"
  },
  "r458": {
   "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"
  },
  "r459": {
   "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"
  },
  "r460": {
   "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"
  },
  "r461": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-4"
  },
  "r462": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r463": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r464": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r465": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r466": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r467": {
   "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"
  },
  "r468": {
   "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"
  },
  "r469": {
   "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"
  },
  "r470": {
   "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"
  },
  "r471": {
   "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"
  },
  "r472": {
   "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"
  },
  "r473": {
   "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"
  },
  "r474": {
   "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"
  },
  "r475": {
   "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"
  },
  "r476": {
   "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"
  },
  "r477": {
   "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"
  },
  "r478": {
   "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"
  },
  "r479": {
   "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"
  },
  "r480": {
   "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"
  },
  "r481": {
   "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"
  },
  "r482": {
   "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"
  },
  "r483": {
   "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"
  },
  "r484": {
   "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"
  },
  "r485": {
   "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"
  },
  "r486": {
   "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"
  },
  "r487": {
   "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"
  },
  "r488": {
   "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"
  },
  "r489": {
   "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"
  },
  "r490": {
   "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"
  },
  "r491": {
   "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"
  },
  "r492": {
   "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"
  },
  "r493": {
   "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"
  },
  "r494": {
   "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"
  },
  "r495": {
   "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"
  },
  "r496": {
   "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"
  },
  "r497": {
   "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"
  },
  "r498": {
   "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"
  },
  "r499": {
   "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"
  },
  "r500": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//715/tableOfContent"
  },
  "r501": {
   "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"
  },
  "r502": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(d)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r503": {
   "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"
  },
  "r504": {
   "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"
  },
  "r505": {
   "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"
  },
  "r506": {
   "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"
  },
  "r507": {
   "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"
  },
  "r508": {
   "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"
  },
  "r509": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(l)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r510": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(o)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r511": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(p)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r512": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(q)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r513": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r514": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(r)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480506/715-20-50-1"
  },
  "r515": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480126/715-20-S99-2"
  },
  "r516": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "60",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480266/715-60-50-3"
  },
  "r517": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "70",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480794/715-70-50-1"
  },
  "r518": {
   "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"
  },
  "r519": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "715",
   "SubTopic": "80",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480576/715-80-50-5"
  },
  "r520": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "718",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//718/tableOfContent"
  },
  "r521": {
   "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"
  },
  "r522": {
   "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"
  },
  "r523": {
   "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"
  },
  "r524": {
   "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"
  },
  "r525": {
   "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"
  },
  "r526": {
   "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"
  },
  "r527": {
   "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"
  },
  "r528": {
   "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"
  },
  "r529": {
   "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"
  },
  "r530": {
   "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"
  },
  "r531": {
   "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"
  },
  "r532": {
   "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"
  },
  "r533": {
   "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"
  },
  "r534": {
   "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"
  },
  "r535": {
   "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"
  },
  "r536": {
   "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"
  },
  "r537": {
   "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"
  },
  "r538": {
   "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"
  },
  "r539": {
   "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"
  },
  "r540": {
   "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"
  },
  "r541": {
   "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"
  },
  "r542": {
   "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"
  },
  "r543": {
   "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"
  },
  "r544": {
   "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"
  },
  "r545": {
   "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"
  },
  "r546": {
   "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"
  },
  "r547": {
   "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"
  },
  "r548": {
   "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"
  },
  "r549": {
   "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"
  },
  "r550": {
   "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"
  },
  "r551": {
   "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"
  },
  "r552": {
   "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"
  },
  "r553": {
   "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"
  },
  "r554": {
   "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"
  },
  "r555": {
   "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"
  },
  "r556": {
   "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"
  },
  "r557": {
   "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"
  },
  "r558": {
   "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"
  },
  "r559": {
   "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"
  },
  "r560": {
   "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"
  },
  "r561": {
   "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"
  },
  "r562": {
   "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"
  },
  "r563": {
   "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"
  },
  "r564": {
   "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"
  },
  "r565": {
   "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"
  },
  "r566": {
   "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"
  },
  "r567": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "720",
   "SubTopic": "35",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483406/720-35-50-1"
  },
  "r568": {
   "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"
  },
  "r569": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//740/tableOfContent"
  },
  "r570": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "10B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482525/740-10-45-10B"
  },
  "r571": {
   "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"
  },
  "r572": {
   "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"
  },
  "r573": {
   "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"
  },
  "r574": {
   "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"
  },
  "r575": {
   "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"
  },
  "r576": {
   "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"
  },
  "r577": {
   "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"
  },
  "r578": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15"
  },
  "r579": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r580": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r581": {
   "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"
  },
  "r582": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "15A",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-15A"
  },
  "r583": {
   "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"
  },
  "r584": {
   "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"
  },
  "r585": {
   "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"
  },
  "r586": {
   "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"
  },
  "r587": {
   "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"
  },
  "r588": {
   "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"
  },
  "r589": {
   "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"
  },
  "r590": {
   "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"
  },
  "r591": {
   "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"
  },
  "r592": {
   "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"
  },
  "r593": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r594": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r595": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "8",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482615/740-10-65-8"
  },
  "r596": {
   "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"
  },
  "r597": {
   "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"
  },
  "r598": {
   "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"
  },
  "r599": {
   "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"
  },
  "r600": {
   "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.3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r601": {
   "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"
  },
  "r602": {
   "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"
  },
  "r603": {
   "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"
  },
  "r604": {
   "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"
  },
  "r605": {
   "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"
  },
  "r606": {
   "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"
  },
  "r607": {
   "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"
  },
  "r608": {
   "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"
  },
  "r609": {
   "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"
  },
  "r610": {
   "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"
  },
  "r611": {
   "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"
  },
  "r612": {
   "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"
  },
  "r613": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4E",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4E"
  },
  "r614": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5C",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-5C"
  },
  "r615": {
   "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"
  },
  "r616": {
   "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"
  },
  "r617": {
   "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"
  },
  "r618": {
   "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"
  },
  "r619": {
   "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"
  },
  "r620": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(i)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480528/815-20-65-6"
  },
  "r621": {
   "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"
  },
  "r622": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480237/815-40-50-5"
  },
  "r623": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "1",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-1"
  },
  "r624": {
   "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"
  },
  "r625": {
   "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"
  },
  "r626": {
   "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"
  },
  "r627": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r628": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r629": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "815",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480175/815-40-65-2"
  },
  "r630": {
   "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"
  },
  "r631": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r632": {
   "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"
  },
  "r633": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(bbb)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-2"
  },
  "r634": {
   "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"
  },
  "r635": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-3"
  },
  "r636": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482106/820-10-50-6A"
  },
  "r637": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "820",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "13",
   "Subparagraph": "(d)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482477/820-10-65-13"
  },
  "r638": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5A",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482736/825-10-45-5A"
  },
  "r639": {
   "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"
  },
  "r640": {
   "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"
  },
  "r641": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r642": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r643": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "825",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "6",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482833/825-10-65-6"
  },
  "r644": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//830/tableOfContent"
  },
  "r645": {
   "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"
  },
  "r646": {
   "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"
  },
  "r647": {
   "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"
  },
  "r648": {
   "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"
  },
  "r649": {
   "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"
  },
  "r650": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "230",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481877/830-230-45-1"
  },
  "r651": {
   "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"
  },
  "r652": {
   "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"
  },
  "r653": {
   "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"
  },
  "r654": {
   "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"
  },
  "r655": {
   "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"
  },
  "r656": {
   "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"
  },
  "r657": {
   "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"
  },
  "r658": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481674/830-30-50-2"
  },
  "r659": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r660": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "5",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479832/842-10-65-5"
  },
  "r661": {
   "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"
  },
  "r662": {
   "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"
  },
  "r663": {
   "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"
  },
  "r664": {
   "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"
  },
  "r665": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "5",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-5"
  },
  "r666": {
   "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"
  },
  "r667": {
   "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"
  },
  "r668": {
   "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"
  },
  "r669": {
   "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"
  },
  "r670": {
   "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"
  },
  "r671": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "842",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479773/842-30-50-3"
  },
  "r672": {
   "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"
  },
  "r673": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "848",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483550/848-10-65-2"
  },
  "r674": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//855/tableOfContent"
  },
  "r675": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r676": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-2"
  },
  "r677": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r678": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(2)(ii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r679": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-3"
  },
  "r680": {
   "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"
  },
  "r681": {
   "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"
  },
  "r682": {
   "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"
  },
  "r683": {
   "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"
  },
  "r684": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r685": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r686": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r687": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r688": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "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"
  },
  "r689": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481326/860-20-50-4"
  },
  "r690": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481444/860-30-45-1"
  },
  "r691": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "7",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481420/860-30-50-7"
  },
  "r692": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r693": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r694": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r695": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)(4)(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-3"
  },
  "r696": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r697": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r698": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r699": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r700": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r701": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(6)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r702": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)(7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r703": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r704": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r705": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r706": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "860",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(e)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481229/860-50-50-4"
  },
  "r707": {
   "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"
  },
  "r708": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "912",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "11",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482312/912-310-45-11"
  },
  "r709": {
   "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"
  },
  "r710": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1"
  },
  "r711": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-1"
  },
  "r712": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "920",
   "SubTopic": "350",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483256/920-350-50-4"
  },
  "r713": {
   "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"
  },
  "r714": {
   "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"
  },
  "r715": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r716": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r717": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "926",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(f)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483194/926-20-65-2"
  },
  "r718": {
   "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"
  },
  "r719": {
   "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"
  },
  "r720": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.9-03(6))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479853/942-210-S99-1"
  },
  "r721": {
   "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"
  },
  "r722": {
   "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"
  },
  "r723": {
   "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"
  },
  "r724": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3A",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-3A"
  },
  "r725": {
   "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"
  },
  "r726": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r727": {
   "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"
  },
  "r728": {
   "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"
  },
  "r729": {
   "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"
  },
  "r730": {
   "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)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r731": {
   "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"
  },
  "r732": {
   "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"
  },
  "r733": {
   "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"
  },
  "r734": {
   "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"
  },
  "r735": {
   "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"
  },
  "r736": {
   "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"
  },
  "r737": {
   "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"
  },
  "r738": {
   "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"
  },
  "r739": {
   "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(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r740": {
   "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"
  },
  "r741": {
   "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"
  },
  "r742": {
   "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(3)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r743": {
   "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(3)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483586/944-220-S99-1"
  },
  "r744": {
   "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"
  },
  "r745": {
   "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"
  },
  "r746": {
   "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"
  },
  "r747": {
   "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"
  },
  "r748": {
   "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"
  },
  "r749": {
   "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"
  },
  "r750": {
   "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"
  },
  "r751": {
   "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"
  },
  "r752": {
   "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"
  },
  "r753": {
   "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"
  },
  "r754": {
   "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"
  },
  "r755": {
   "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"
  },
  "r756": {
   "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"
  },
  "r757": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iii)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r758": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "65",
   "Paragraph": "2",
   "Subparagraph": "(g)(2)(iv)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480016/944-40-65-2"
  },
  "r759": {
   "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"
  },
  "r760": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "944",
   "SubTopic": "825",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r761": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(d))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r762": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r763": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "3",
   "Subparagraph": "(SX 210.6-03(f)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r764": {
   "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(f)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479886/946-10-S99-3"
  },
  "r765": {
   "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"
  },
  "r766": {
   "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"
  },
  "r767": {
   "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"
  },
  "r768": {
   "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"
  },
  "r769": {
   "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"
  },
  "r770": {
   "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"
  },
  "r771": {
   "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"
  },
  "r772": {
   "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"
  },
  "r773": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "21",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480555/946-210-45-21"
  },
  "r774": {
   "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"
  },
  "r775": {
   "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"
  },
  "r776": {
   "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"
  },
  "r777": {
   "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"
  },
  "r778": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-1"
  },
  "r779": {
   "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"
  },
  "r780": {
   "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"
  },
  "r781": {
   "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"
  },
  "r782": {
   "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"
  },
  "r783": {
   "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"
  },
  "r784": {
   "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"
  },
  "r785": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "6",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480524/946-210-50-6"
  },
  "r786": {
   "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"
  },
  "r787": {
   "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"
  },
  "r788": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r789": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r790": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r791": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(12)(b)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r792": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r793": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(13)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r794": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(14))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r795": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(15))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r796": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(16)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r797": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(17))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r798": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(19))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r799": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r800": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-04(2)(b))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r801": {
   "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"
  },
  "r802": {
   "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"
  },
  "r803": {
   "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"
  },
  "r804": {
   "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(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479617/946-210-S99-1"
  },
  "r805": {
   "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"
  },
  "r806": {
   "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"
  },
  "r807": {
   "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"
  },
  "r808": {
   "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"
  },
  "r809": {
   "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"
  },
  "r810": {
   "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"
  },
  "r811": {
   "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"
  },
  "r812": {
   "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"
  },
  "r813": {
   "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"
  },
  "r814": {
   "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"
  },
  "r815": {
   "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"
  },
  "r816": {
   "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"
  },
  "r817": {
   "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"
  },
  "r818": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r819": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r820": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(2)(g)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r821": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r822": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r823": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "220",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.6-07(7)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483575/946-220-S99-1"
  },
  "r824": {
   "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"
  },
  "r825": {
   "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"
  },
  "r826": {
   "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"
  },
  "r827": {
   "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"
  },
  "r828": {
   "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"
  },
  "r829": {
   "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"
  },
  "r830": {
   "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"
  },
  "r831": {
   "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"
  },
  "r832": {
   "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"
  },
  "r833": {
   "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"
  },
  "r834": {
   "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"
  },
  "r835": {
   "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"
  },
  "r836": {
   "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"
  },
  "r837": {
   "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"
  },
  "r838": {
   "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"
  },
  "r839": {
   "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 1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-1"
  },
  "r840": {
   "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"
  },
  "r841": {
   "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"
  },
  "r842": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "12",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-12"
  },
  "r843": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "19",
   "Subparagraph": "(2)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-19"
  },
  "r844": {
   "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"
  },
  "r845": {
   "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"
  },
  "r846": {
   "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"
  },
  "r847": {
   "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"
  },
  "r848": {
   "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 7))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-3"
  },
  "r849": {
   "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"
  },
  "r850": {
   "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"
  },
  "r851": {
   "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 G)(Footnote 8))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r852": {
   "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 G))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5"
  },
  "r853": {
   "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 D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5A"
  },
  "r854": {
   "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"
  },
  "r855": {
   "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 A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r856": {
   "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 B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5B"
  },
  "r857": {
   "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"
  },
  "r858": {
   "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"
  },
  "r859": {
   "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 E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5C"
  },
  "r860": {
   "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"
  },
  "r861": {
   "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"
  },
  "r862": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5D",
   "Subparagraph": "(SX 210.12-13D(Column B)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5D"
  },
  "r863": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "5D",
   "Subparagraph": "(SX 210.12-13D(Column C)(Footnote 2))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-5D"
  },
  "r864": {
   "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"
  },
  "r865": {
   "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"
  },
  "r866": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r867": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r868": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column C))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r869": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r870": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "946",
   "SubTopic": "505",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481004/946-505-50-2"
  },
  "r871": {
   "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"
  },
  "r872": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481027/954-310-50-2"
  },
  "r873": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "440",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480327/954-440-50-1"
  },
  "r874": {
   "role": "http://www.xbrl.org/2003/role/disclosureRef",
   "Topic": "954",
   "SubTopic": "450",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480598/954-450-50-1"
  },
  "r875": {
   "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"
  },
  "r876": {
   "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"
  },
  "r877": {
   "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"
  },
  "r878": {
   "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"
  },
  "r879": {
   "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"
  },
  "r880": {
   "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"
  },
  "r881": {
   "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"
  },
  "r882": {
   "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"
  },
  "r883": {
   "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"
  },
  "r884": {
   "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"
  },
  "r885": {
   "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"
  },
  "r886": {
   "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"
  },
  "r887": {
   "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"
  },
  "r888": {
   "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"
  },
  "r889": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "7",
   "Subparagraph": "(SX 210.12-15(Column A))",
   "SubTopic": "320",
   "Topic": "946",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480032/946-320-S99-7"
  },
  "r890": {
   "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"
  },
  "r891": {
   "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"
  },
  "r892": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483467/210-10-45-8"
  },
  "r893": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r894": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(3))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r895": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r896": {
   "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"
  },
  "r897": {
   "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"
  },
  "r898": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r899": {
   "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"
  },
  "r900": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483426/235-10-50-4"
  },
  "r901": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.4-08(m)(1)(ii)(A))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-1"
  },
  "r902": {
   "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"
  },
  "r903": {
   "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"
  },
  "r904": {
   "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"
  },
  "r905": {
   "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"
  },
  "r906": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "326",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "8",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479081/326-30-55-8"
  },
  "r907": {
   "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"
  },
  "r908": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r909": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r910": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r911": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "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"
  },
  "r912": {
   "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"
  },
  "r913": {
   "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"
  },
  "r914": {
   "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"
  },
  "r915": {
   "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"
  },
  "r916": {
   "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"
  },
  "r917": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r918": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r919": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(e)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r920": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r921": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "606",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "91",
   "Subparagraph": "(g)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479777/606-10-55-91"
  },
  "r922": {
   "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"
  },
  "r923": {
   "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"
  },
  "r924": {
   "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"
  },
  "r925": {
   "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"
  },
  "r926": {
   "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"
  },
  "r927": {
   "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"
  },
  "r928": {
   "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"
  },
  "r929": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)(3)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r930": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479908/805-50-55-1"
  },
  "r931": {
   "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"
  },
  "r932": {
   "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"
  },
  "r933": {
   "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"
  },
  "r934": {
   "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"
  },
  "r935": {
   "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"
  },
  "r936": {
   "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"
  },
  "r937": {
   "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"
  },
  "r938": {
   "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"
  },
  "r939": {
   "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"
  },
  "r940": {
   "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"
  },
  "r941": {
   "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"
  },
  "r942": {
   "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"
  },
  "r943": {
   "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"
  },
  "r944": {
   "role": "http://www.xbrl.org/2003/role/exampleRef",
   "Topic": "946",
   "SubTopic": "830",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "11",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480167/946-830-55-11"
  },
  "r945": {
   "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"
  },
  "r946": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b"
  },
  "r947": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "b-2"
  },
  "r948": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Exchange Act",
   "Number": "240",
   "Section": "12",
   "Subsection": "d1-1"
  },
  "r949": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 10-K",
   "Number": "249",
   "Section": "310"
  },
  "r950": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Number": "249",
   "Section": "220",
   "Subsection": "f"
  },
  "r951": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "16",
   "Subsection": "J",
   "Paragraph": "a"
  },
  "r952": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1"
  },
  "r953": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r954": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r955": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r956": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r957": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r958": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r959": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r960": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r961": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Section": "6",
   "Subsection": "F",
   "Paragraph": "2"
  },
  "r962": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 20-F",
   "Subsection": "F",
   "Paragraph": "1",
   "Subparagraph": "ii",
   "Section": "6"
  },
  "r963": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Number": "249",
   "Section": "240",
   "Subsection": "f"
  },
  "r964": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a"
  },
  "r965": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r966": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r967": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r968": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r969": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r970": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r971": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r972": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r973": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form 40-F",
   "Section": "19",
   "Paragraph": "b"
  },
  "r974": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a"
  },
  "r975": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1"
  },
  "r976": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "i"
  },
  "r977": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "ii"
  },
  "r978": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iii"
  },
  "r979": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "iv"
  },
  "r980": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "1",
   "Sentence": "v"
  },
  "r981": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "2"
  },
  "r982": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "a",
   "Subparagraph": "3"
  },
  "r983": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Form N-CSR",
   "Section": "18",
   "Paragraph": "b"
  },
  "r984": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Forms 10-K, 10-Q, 20-F",
   "Number": "240",
   "Section": "13",
   "Subsection": "a-1"
  },
  "r985": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v"
  },
  "r986": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "1"
  },
  "r987": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "ii"
  },
  "r988": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iii"
  },
  "r989": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "iv"
  },
  "r990": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "2",
   "Subparagraph": "vi"
  },
  "r991": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "3"
  },
  "r992": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "4"
  },
  "r993": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "i"
  },
  "r994": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "ii"
  },
  "r995": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iii"
  },
  "r996": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "5",
   "Subparagraph": "iv"
  },
  "r997": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6"
  },
  "r998": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "v",
   "Paragraph": "6",
   "Subparagraph": "i"
  },
  "r999": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w"
  },
  "r1000": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1"
  },
  "r1001": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i"
  },
  "r1002": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "A"
  },
  "r1003": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "B"
  },
  "r1004": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "C"
  },
  "r1005": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "D"
  },
  "r1006": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "i",
   "Sentence": "E"
  },
  "r1007": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "ii"
  },
  "r1008": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "1",
   "Subparagraph": "iii"
  },
  "r1009": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "w",
   "Paragraph": "2"
  },
  "r1010": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "1"
  },
  "r1011": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2"
  },
  "r1012": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "A"
  },
  "r1013": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "C"
  },
  "r1014": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "D"
  },
  "r1015": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "E"
  },
  "r1016": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "402",
   "Subsection": "x",
   "Paragraph": "2",
   "Subparagraph": "ii",
   "Sentence": "F"
  },
  "r1017": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a"
  },
  "r1018": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "1"
  },
  "r1019": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "A"
  },
  "r1020": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "B"
  },
  "r1021": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "C"
  },
  "r1022": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "a",
   "Paragraph": "2",
   "Subparagraph": "D"
  },
  "r1023": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-K",
   "Number": "229",
   "Section": "408",
   "Subsection": "b",
   "Paragraph": "1"
  },
  "r1024": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Regulation S-T",
   "Number": "232",
   "Section": "405"
  },
  "r1025": {
   "role": "http://www.xbrl.org/2003/role/presentationRef",
   "Publisher": "SEC",
   "Name": "Securities Act",
   "Number": "230",
   "Section": "405"
  },
  "r1026": {
   "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"
  },
  "r1027": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "450",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "10",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483076/450-20-50-10"
  },
  "r1028": {
   "role": "http://www.xbrl.org/2003/role/recommendedDisclosureRef",
   "Topic": "855",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483399/855-10-50-3"
  },
  "r1029": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "2",
   "SubTopic": "740",
   "Topic": "718",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480887/718-740-35-2"
  },
  "r1030": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "18",
   "SubTopic": "10",
   "Topic": "275",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482861/275-10-50-18"
  },
  "r1031": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "SubTopic": "825",
   "Topic": "944",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479383/944-825-50-1B"
  },
  "r1032": {
   "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"
  },
  "r1033": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "SubTopic": "10",
   "Topic": "740",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r1034": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(a)",
   "Publisher": "SEC"
  },
  "r1035": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(1)",
   "Publisher": "SEC"
  },
  "r1036": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(2)",
   "Publisher": "SEC"
  },
  "r1037": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(b)",
   "Subparagraph": "(3)",
   "Publisher": "SEC"
  },
  "r1038": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(i)",
   "Publisher": "SEC"
  },
  "r1039": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(ii)",
   "Publisher": "SEC"
  },
  "r1040": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-K (SK)",
   "Number": "229",
   "Section": "1402",
   "Paragraph": "(c)",
   "Subparagraph": "(2)(iii)",
   "Publisher": "SEC"
  },
  "r1041": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Name": "Regulation S-X (SX)",
   "Number": "210",
   "Section": "11",
   "Subsection": "03",
   "Publisher": "SEC"
  },
  "r1042": {
   "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(1))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r1043": {
   "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(3)(a)(4))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r1044": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "210",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.5-02(6)(a))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480566/210-10-S99-1"
  },
  "r1045": {
   "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"
  },
  "r1046": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "220",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "14",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482790/220-10-45-14"
  },
  "r1047": {
   "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"
  },
  "r1048": {
   "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"
  },
  "r1049": {
   "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"
  },
  "r1050": {
   "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"
  },
  "r1051": {
   "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"
  },
  "r1052": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "230",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "28",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482740/230-10-45-28"
  },
  "r1053": {
   "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"
  },
  "r1054": {
   "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"
  },
  "r1055": {
   "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"
  },
  "r1056": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column B))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1057": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C(1)))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1058": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column C(2)))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1059": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column D))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1060": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09(Column E))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1061": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "235",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "4",
   "Subparagraph": "(SX 210.12-09)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480678/235-10-S99-4"
  },
  "r1062": {
   "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"
  },
  "r1063": {
   "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"
  },
  "r1064": {
   "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"
  },
  "r1065": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "250",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147483443/250-10-50-4"
  },
  "r1066": {
   "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"
  },
  "r1067": {
   "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"
  },
  "r1068": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481830/320-10-45-1"
  },
  "r1069": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-2"
  },
  "r1070": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-3"
  },
  "r1071": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5",
   "Subparagraph": "(f)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5"
  },
  "r1072": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "5B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-5B"
  },
  "r1073": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "320",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147481800/320-10-50-9"
  },
  "r1074": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r1075": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r1076": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "321",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "3",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479536/321-10-50-3"
  },
  "r1077": {
   "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"
  },
  "r1078": {
   "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"
  },
  "r1079": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1080": {
   "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"
  },
  "r1081": {
   "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"
  },
  "r1082": {
   "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"
  },
  "r1083": {
   "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"
  },
  "r1084": {
   "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"
  },
  "r1085": {
   "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"
  },
  "r1086": {
   "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"
  },
  "r1087": {
   "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"
  },
  "r1088": {
   "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"
  },
  "r1089": {
   "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"
  },
  "r1090": {
   "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"
  },
  "r1091": {
   "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"
  },
  "r1092": {
   "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"
  },
  "r1093": {
   "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"
  },
  "r1094": {
   "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"
  },
  "r1095": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "450",
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//450/tableOfContent"
  },
  "r1096": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1097": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1098": {
   "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"
  },
  "r1099": {
   "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"
  },
  "r1100": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r1101": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r1102": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r1103": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "460",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "8",
   "Subparagraph": "(c)(5)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482425/460-10-50-8"
  },
  "r1104": {
   "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"
  },
  "r1105": {
   "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"
  },
  "r1106": {
   "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"
  },
  "r1107": {
   "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"
  },
  "r1108": {
   "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"
  },
  "r1109": {
   "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"
  },
  "r1110": {
   "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"
  },
  "r1111": {
   "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"
  },
  "r1112": {
   "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"
  },
  "r1113": {
   "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"
  },
  "r1114": {
   "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"
  },
  "r1115": {
   "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"
  },
  "r1116": {
   "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"
  },
  "r1117": {
   "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"
  },
  "r1118": {
   "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"
  },
  "r1119": {
   "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"
  },
  "r1120": {
   "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"
  },
  "r1121": {
   "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"
  },
  "r1122": {
   "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"
  },
  "r1123": {
   "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"
  },
  "r1124": {
   "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"
  },
  "r1125": {
   "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"
  },
  "r1126": {
   "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"
  },
  "r1127": {
   "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"
  },
  "r1128": {
   "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"
  },
  "r1129": {
   "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"
  },
  "r1130": {
   "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"
  },
  "r1131": {
   "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"
  },
  "r1132": {
   "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"
  },
  "r1133": {
   "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"
  },
  "r1134": {
   "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"
  },
  "r1135": {
   "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"
  },
  "r1136": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "718",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(i)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480429/718-10-50-2"
  },
  "r1137": {
   "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"
  },
  "r1138": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-2"
  },
  "r1139": {
   "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"
  },
  "r1140": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "9",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482685/740-10-50-9"
  },
  "r1141": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.7)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r1142": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "740",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SAB Topic 6.I.Fact.4)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479360/740-10-S99-1"
  },
  "r1143": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "15",
   "Paragraph": "3",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480123/805-50-15-3"
  },
  "r1144": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "25",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480060/805-50-25-1"
  },
  "r1145": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480027/805-50-30-1"
  },
  "r1146": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "805",
   "SubTopic": "50",
   "Name": "Accounting Standards Codification",
   "Section": "30",
   "Paragraph": "2",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480027/805-50-30-2"
  },
  "r1147": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r1148": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1A",
   "Subparagraph": "(d)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1A"
  },
  "r1149": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-1B"
  },
  "r1150": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "815",
   "SubTopic": "10",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "4A",
   "Subparagraph": "(b)(1)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480434/815-10-50-4A"
  },
  "r1151": {
   "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"
  },
  "r1152": {
   "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"
  },
  "r1153": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "35",
   "Paragraph": "3",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147482014/830-20-35-3"
  },
  "r1154": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "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"
  },
  "r1155": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "830",
   "SubTopic": "30",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479424/830-30-S99-1"
  },
  "r1156": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "842",
   "SubTopic": "20",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "4",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479041/842-20-45-4"
  },
  "r1157": {
   "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"
  },
  "r1158": {
   "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"
  },
  "r1159": {
   "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"
  },
  "r1160": {
   "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"
  },
  "r1161": {
   "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"
  },
  "r1162": {
   "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"
  },
  "r1163": {
   "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"
  },
  "r1164": {
   "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"
  },
  "r1165": {
   "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"
  },
  "r1166": {
   "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"
  },
  "r1167": {
   "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"
  },
  "r1168": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "942",
   "SubTopic": "320",
   "Name": "Accounting Standards Codification",
   "Section": "50",
   "Paragraph": "2",
   "Subparagraph": "(b)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480832/942-320-50-2"
  },
  "r1169": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "210",
   "Name": "Accounting Standards Codification",
   "Section": "S99",
   "Paragraph": "1",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147479440/944-210-S99-1"
  },
  "r1170": {
   "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"
  },
  "r1171": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "944",
   "SubTopic": "40",
   "Name": "Accounting Standards Codification",
   "Section": "55",
   "Paragraph": "13H",
   "Subparagraph": "(c)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480046/944-40-55-13H"
  },
  "r1172": {
   "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"
  },
  "r1173": {
   "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"
  },
  "r1174": {
   "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"
  },
  "r1175": {
   "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"
  },
  "r1176": {
   "role": "http://www.xbrl.org/2009/role/commonPracticeRef",
   "Topic": "946",
   "SubTopic": "310",
   "Name": "Accounting Standards Codification",
   "Section": "45",
   "Paragraph": "1",
   "Subparagraph": "(a)",
   "Publisher": "FASB",
   "URI": "https://asc.fasb.org//1943274/2147480833/946-310-45-1"
  },
  "r1177": {
   "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"
  },
  "r1178": {
   "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"
  },
  "r1179": {
   "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"
  },
  "r1180": {
   "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>140
<FILENAME>0000851205-24-000027-xbrl.zip
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
begin 644 0000851205-24-000027-xbrl.zip
M4$L#!!0    ( !0T3U@A?S_77X0" !F]'P 1    8V=N>"TR,#(S,3(S,2YH
M=&WLO6ESXT:6*/I]?@5"/=UM1U JDMIE6S=8$E76N$K2B"J[_5Z\N $"21(N
M$&!CD<3^]>\LF8D$2&JI(L4DBS?FNDO$EGG.R;,O/_^?QV'HW(LD#>+HEW\V
M=NK_=$3DQ7X0]7_Y9ZMS=GGYS_]S^E\_#S*X#6Z-TE^V!EDV.GGW[N'A8>=A
M=R=.^N\:Q\?'[Q[QGBV^Z<2+\RA+QOKFQVX2[J3"V^G']^_DQ7?->G-7/8 W
M^$'Y?GQULUX_>,<7U:V^"*:_%RZ4WNGUHT=]IQ?W(_&XX\5#NJ<!_Z?N2Y-,
MW]9STRY]&'XL+S -IFT=UM=X]Z]/'SO>0 S=[2!*,S?RA'HJ>,RV87FE)]5R
M@R@,(O&O][<?WV6)&Z6].!FZ&> !7MK8WZX?;1=+S+.D] X3/L?OX*I>)KSS
MRVP<X57]SG2[[[JCR:W+"Z7M!VF\UVP<SES$[CMYAXG0X*G;*Y#R\B0!RIM%
M,O)J>4V/V?0// 799GV[WMQN--5+A.=/_R1<J'QMUFX:N\87U>T3>"AO'R]W
MW92W?Q*Z<-RV1+3]N;-U^O- N/[IST.1N0X^ORW^G0?WOVR=Q5$FHFS[;CR"
MQSS^ZY>M3#QF[^CLO3O]K__ZKY^S( O%*=+^MB+TG]_QCS^_XU=W8W]\^K,?
MW#MI-@[%+UM^D(Y"=WP2Q9& !02/)WBC2/B?@>^+B/X)UZ_RH4@"C[__F-V*
MWB];WC80:N0.\4TB.&D-1>3#_\\N0K>_Y00 X-[V;GWKM.>&J?CY7>E%KWCO
M>>SE]-H@]=SP3^$F%_!+JK_0V#K%'<_K S=P>^R7/]'<.KWX\^L_T(X $>,S
M^$3BAI>1+QY_$V/]\MVMTSK\OZ/]1K.^__4?.:.S8D"I'?GG;@8TP^?@ERTX
M."<^_+(]A+<,MGVW6,/>UFFC^0Y)9NKG+Q+7PX/DY%' 'T\';B+2K<J"X-3X
MP@N&@/!?MNI30! /X=N=+/:^=.@%UWF&_ #E3GF=43[<]N-L6[YNR\%="7JI
M7/(^+/FP43O8W:T=-@_4PM5*9Z\\3_WJLIO/+/LF[X:!=Q'&;O;:51YLG1[#
M&ANUX_W#VEZ!WZ]:9\-<)P*;%RH9]\EU-A )@'B4B(&(TN!>7(),'XK/42+<
M,/B/\'^-0P3U!S>(/L9I>AUU!+#8( M$VDJ"%"Z=PY]1G\_ G?OXLNWNJNWN
MU8&0]FJ[1\??M,^]ZC[3H!_!OVS<,)#A?NUX;_>;-KR_0AL&BF[6FO5O.W%?
M2<FXI8LX$0"=,ZD:W*&D#TG,M_R_\C1#3CZQKU[P*/SM_X@DGK:EPZW3?_SM
MJ-EH_C1?LEWJIH[FLZD)TESJIHZ?W=1T2;E7KR[\)HE'(@'>#DI8UHK\-FA;
M(US1YU3T\O!CT!/ZLTW@:C?-URD >\WJ%R\" +/X""#R+R,0>OV@&XI6FHII
MGT2]Z6;_E9_<^[9/-K_BDP??]DD$[.XK/WFL/HG*+N+1S[WL#S<!\@)T$E\K
M/@"GX*8QZP/S8%4%*0.Y?XRC_IU(AK!SD< Q&+D1DSU_)[T2V77OQ4Q7:Q%[
M!X":1JT)Z@XHBO/C41.'XFTVL_N"S4S'_7[CJXZQL3XTRT_\/!F#@ERL",BP
M^3HB_"9^<K#_>GZR/\%/YK-U$.>O,SKV)X[ ?!9R^%H<[$^PN_DLY&@V1":/
M&)![5R1/\HS+JXL2Q_KD/@;#'([5O>"S=MT[X]-U&=VX21:))!T$(WURT#Q1
M:SLVUO;"([/_=1SZ.3 =@H!JS+(7YRL2GUU*X[4T_+62\MF5-%^]DJ\4H,^N
M!)CLZUPB+Y.KSWX7/0G?\MU;<2^B7-RX8U(/0?ZD4[]J>"_V#H&?[M9?]=7#
M*MC/X:9[4$[O&=:=S,T$'TY B!MY@1O>Q&F !Z[]F*&J"VAI1_AR4FG58HY1
MO#WE6OT;J<STD?0JCMC%F;UJ\4>+6_S>,A?_,7"[01ADXV_8P/Y+-J ^!%;Q
M5^[B"?J9QRX.WF87C>,)EDQ^N?=N*GP42K!&-MB0"_1I,^_'Q2WRE+8>W,2G
M__P.(DU[%QIJ/XTZ:3Q[KW2A'D^(K@4M[NCU5DCC>(("%K,XE+.O7]R$5%G0
MXAI?@]8)#K"@Q36?@MRWJG+%N>\%$2X\RI*@F^,K4?UL#T=A/!;))S?S!K"Z
MTG4PIX@KT,4I>AX& D"1>(6EEXH^ N5):V_*XJ]HR]>]6S&*D\P%;M3A%TV1
MN0">ASCQ4Q%-VG0-<I'$D7B=;KI;U[:$\/R3.T!HDISGBAD^+?4;^_N@#>\>
M3,K]=^7H52)Z AU0(IT2=,. W$E*45Q8E$.1TI-L/((EI0'@$"-U]-L@H36;
M\;6=1["OW_'WBH_(;Z9QGM!?%!$]D1NGM2-1J=\%!1C47X&/?_<"D3BT)C$U
M@GQV^5LY9%1]^%3]5'[[B$Z(^BO-P-;  !%%S[;K#?@_]5QQ32_3+VYM-+=W
M&\4G^(KZ6WWD76G?T\'0M  ,')#.)! .M^M-_2)YY64[PZ-(VT*GB_IQ*-PT
M3\2I#)*??.Z<J\?5)?4W/C\=2KMV06D/2:5Y](U0DO'#*J D^='%UT-JSP)(
ME8Y5\^7'JCF_8[5O&Q@:+P=#XUO 8)Y!$+*D,VA8^,$][,&\]8H5[SCYRN,Z
M\3S^>"ZB> C:_I37OI2X2Z]X5U[]LV?@8-'(E[M@/8'_].%CCZ,P\(+LDT"-
MPO&#(9HW<60H><H:0J\<I0*,0&$ 5:/U&  CT"YHS\N'>0CW^K-B2_R-G]]-
M_;0&D5[A:LC"0PL.;4D6EG;V.BY?WMF173MKSF]GQW;MK#&_G37J=FVM/L>M
M+5SY7C"'-)*HYL\)%P3SA6OZBY9*OD]N.S>\<0/_,CIS1T'FABL#_X7;$ N&
M_ZW(7'2SM-TD"J)^NC* 7[A)LH[JV()PL7"[:)49_U(,M@J"5MYV>2LI80.R
M%FZPK+Q(L0%+"S>^UE'^V("XA=N6JRRL%F/T-A=N]*Z+_%D0_%?=,G]3*V6>
M@%]Y\WS)5LH\<;'JIOK;62G+B:XU5]ZD7XJ5LB1DK;K-_\96RI*PM/*&_]*M
ME"4A;M6= &]EI<PQZ-A<>9-^"5;*/.&_ZI;YFUHI<P3\[LJ;YTNV4N:)BU4W
MU=_.2EE..M'NRIOT2[%2EH2L5;?YW]A*61*65MWP?RME=XZY@[NK;K\O0]F=
M)_Q7W3)_4V5WGH!?=<MZV<KN/'%AK<4]L^'%^S&VBRQCY'T>4&^PE0&[M8;V
M5X']$N@_OJ>3LS)<:,\ZDSM-LI-;+ MF(..?GX((^ZD\ ]/Y(I=:52!+RS.1
M_.HF_H.;"+BY$_<R_.?*(-@Z.WX:@KEAS@;!7X-@Z_P BS_!LSOHI._'G]R_
MXN0L=-/41'2>9J"0)%2E[WJ@RT3^K>!>A=B+:748MG6>A,6?Y^\9W=:Y)*P\
MW3$V<@!#Y$YX@R@.XSYVPXW8+JF^8V50;YUGQ,J3OI:HM\XI8]FIU^UM8O0S
MC #_K7XB5LSTLM8!]%:H6!S#L0?)UGJ6O@K)=XGKBZ&;?%F=4V:=C^FK6>EJ
M!M7V5\+#M"BN8@,"5L(#M 07G[I97UP5GK:_$BZ?)?CT5A>C*^'56>(9O<@3
M4%=R\M!>!(_XKY510?:M\^&\%0JL$L7S0J[N02?;R:K?RTW@1O!/]8*7]S?<
M7PF?CP6&_WF0ZFZ[MT%_L#IF_[YUOAV-"#=(?G?#7 #8F6+Q!1>)^'>.TYTJ
MW$#=;-R:WN(HLN3Y#(2O69+^YZ^P23?Q!N./XEZ$,U9U&8WR+*4[&BM#&?8Z
MA.: AN8":&+!9&H/9=CK15I/GK&[,I1AG7O+$.L\$.,2MI?D^'0U63D9Q8F;
MB?=QY!=#+%<%\@?6^;6LAOP<2Y,.K'-HO1CRI-:^=[TO8A4IWCJWD\5PGR>]
M6^<<>C'<._&]H!&QYZ*;K2#%6^NYL1+R\Z1YZQPAST*>TE%:?51[4:ZN#I';
MZY"P M3SI&I[+?SG^,GGSEU"5MOX?1"&*\C*[36AK03]/*E^=6W43WD$;QBY
MX4IQ],/5-4W?$.!SI/!#ZRQ2DI#% &HU<J^B(P[B).,!\.K&;X[H6>V$F.<9
ML\X8MA_E*^W].+3."K<?X2MN_A]:9_X_B7*Z^#&.^AN6_G7H7CV?PZ2)\&*P
M+X76[,&U=4X/NX_V:HONU76[?)T$_<[/MG6N'OLUM14/"1]:YV*R'^4K'1,]
MLL[%92_"5S5:<K3QJKV%(6 /OC<NM>_$7WZT6KZTI5M?*ZZ='5GG1]LX5A:&
M:^N<:'8?[=76PJWSHFT<*XM$]^KZT=Y<+YZC/^O(.G^6O6"?)[5;YU,J&@ZG
M0232M.7].P_2H,)@/L4 9_&H=$:XN&A"KV\WCN8!\6/KG#I?52C_T8W\5>$M
MQ];Y6.P$^1SYRK%U;@Y[F\W/$^S6^1Q6H]G\/%%@K1_@=<P&-!HQB$-_%1O^
M'UMGGZ\(#N9Y#JPUFU_>.7^%.^8?6VO&V@O^>5*_M>;L>O>8.[;6GK40[G.D
M]T9]/<S:56[!UZBOAYW[YCB8ZSFPUO#]&+C=((057<3)F9NY:09(&8BST V&
MZ?MQ\5/@M>\GG)SG[M#MBXLD'EX$B6C#UV)\_75",PA^=?\#LGK^2"IU%FZ^
MO+-P!:/?TEFX4;?.IL;^A!TUO_"#B/N)BUAS0T-W>N]Z5T$T^#T06>0NMM%D
M8RZ-)M-_][*)-I-YEIS@!?7PRYM,-NK6V>'/H2W.HRP9GW0^+$S4U ^V=^O?
MB*<0C=+_ZZEYF1,H(^JKW/0UZ+/.A/]V]"W 1&H='<$F.__.P3:ZB./L)A'#
M(%VXSO(-A%3%LW5N@N\<S]5F_@<O;N9?(HIO$[EKX+QH-0^_!F/K+46J>%YM
M+\GZX=F*P[_:+ISU(XH%>2L:UGF,7F)7=>(\&W3C),[[@T]NFKK>($]%MN"X
MS#>96%6X6^<EL@SN)29(D'\9$VS,T>G0L-:-]'1>5J=UU@F2($];_KT;><(_
M&\-[(I$%7OIAV/UU/5U$#>M<1/9DT555BB4,!VLTK/,%;:8^ U:L<_%\V[06
M[*D/"F(QI'>\6D-;&@WK?#'?[=S<1L-:%\@*'8YY!O8:UOHJ5DV&S!4KUCH+
MONJ8O/U ]WDBHVF=1?]-R%"GY#4G8X44\\64MS2:UKD7-D3P8NL,R*#>?&OK
MK+FBOHY7XV>1$AT4W1 T74._6AV.\;UX3U8=_U8PB_5PY:B'[A+7%T,W^;)&
M,F51;&*]W$7KB'DK&,3"G5A?86#5#^=S!!;N%'I]P*6TNV<#+L6MWX;D-7+&
MF%.^KT3V$ -+:$7^UQ@>W\:LX;3N;S</YD.IUOIE?A5^/XCZYR(-^M&43G=7
M<>3+:V+1&>U+"H?M6NNG.8=MW -2[D71;.4V2+]4"D1B:FK4?O0&<, $_/FP
MD.J#>;GV=>[T7Z/Q1+YTD,9[S<;AR?_<_*D>?T6:]*ZUWA:[4&F#9K)KK9]C
MGCSQV8]BML]9GB3%Z'1/_G72_GQK]?D5>3+S_.JUO^[\6NO[6'^:F&?H8]<Z
MM\03(.U\./]V:W/)>M3<SW;:]V>>;0VPUYUMZQP6WP]-S/5L6YL68PN/_O2O
M*ZO/]O QFGFV]=I?=[:M3<]9?YJ8Z]FVUI%D"Q[/KOZT^FQ[T6R;6J_]=6?[
MN_!=V4D3\SS;>]:ZN6S!XZ^?+ZP^VX.\-_-LZ[6_ZFSO6>LO6W^:F.O9MLZ7
M]@1(/[R_62?;:CYGN]\=S3S;&F"O.]O6^=*^'YJ8Z]FVSI=F&X_6L2*[SG85
MC];YO[X?/,[U/&[\7\_90ZW9SE,;9*WGSO9MZ[6_3M9N_%]+HXFYGNV-_^LY
M//YJMXWL#6;;R'KMKSO;&__7TFABGF=[_[OP?]FC[^Y_%[XEB^C;.A^0)?"V
MH27.OG7.&!N1TW@Y<N;976K?.@_+,RW \')K"%OTW#=H>;J,G.Q]ZYPE]J!D
M62S,.K^'/2A9%N.RSNWP I2T<^P;NJ9LRSK_@2T(61;3LLYXMP4A2V)9!]99
MX2]IM_HA$7!#<C8((G<].=>!==:Z97A9$@,[L,ZJMPPOR^)CUAGT+\$+-51K
MI<&Z,K%5,^3?%"G+XF"K9LJ_*5*6Q;ZL-.9ODMC/O>PZZ8CD/O#,$1* K\AW
M$U_> G_(>];4 79@I6EO(X*6Q=:L-/5M1-"R6)R5IO\3"&J-\$$*P<0]U>^F
M,Q(>?,[KQ"&UQ%E3=G=HI5O =F0MB?4=6NDKL!U92V*#APMW(+P $$7*0^-@
MN[ZWW9Q/ [C#A1OAK]O;$>UM_^OVIE/8[N-,3)\C^SM<44^_(H/MT#JS6"47
M= 9N(F[%*$^\@9L*.,)@BPV-DSMQ[=K+8G@9 GN1F3F RD9]NWD\'S*US@*V
M%/Y6\$OK+..O1]8G%_[$5H8+36*K;]=1%9S/4;'.[+42^E8<%.L,8/M1M2R%
MW3I3^-M1U5QP8B[PM/KN7'C:D76VK970M^&@'%EGV=J/JB5YC(ZL"XQ;B:H%
M%7<<V6!Y?X,65#>8^[>1X<)MZ]<# G>W]T+6:7;^_39 +-S(?;T,*:'Y&<94
M-XCGVP!AP\0%&QH\'UEKR]V$;G3E#DT7\5G<CTKC0! 8G2SVOER/J"@F\B\C
M#S]]+_#Q!7/J^O[<M$]KS;078J$!H&_6ZX=/(&/1<VSGB UK+3$KST15T=Q_
MH6";)QL[MM9\LQ)E"U(XCZVUS%HXHN%N/!+ENLGV<!3&8R$,X*\.L*VSK3#
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
M;-QD&S?9QDVV<9-9:F=NW&3+1\R;VI?5,;YSRFI!%>'%R0&'%B<'V&3/K@D
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
M.%Z0>/D07@J/ >I1%!=KIDV;!)3(?:P(W_T<A2)-:3_(8F$Q?$(?$+ )0#J
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
M3H"V"K.,JNM%DT:QP@#3?.*8Z.39CQ@6%>9+ Y8&Y.,-XZB_#5;#4!&JU&5
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
M\E[#N+Q7N8QD V_8-V[9+=VBRPHYVP1K@'S@.9Z@^/ANHR8[.F!2%KT-_M%
MY[?*>@Q+O:S,S&@YNVG*4:G1"#+'YPP,-$-C[@U,@3E-$NCJ#5-97YC)ZBDB
M*=!>93RMK-^: 4-2'+&!1S%X8DR%?=9QS1G3G,B3#D#%E/L;S!Q,LI4)5%.S
M/NY/@\15]+(P6LW(:NQ I1[@%,*0O,32O8ZYM3$._9CHT@0,"?!,.9?L8:"B
M2<S7P>X97CP:TW3BFG+D4I(%3O;0Z3=Q--%5RVS.7738*E)V5#>/$2J0Z&RA
M;Z2J\T"959N=WJAQ$[=1,% Z4BB5KZ%(JA[$(+DC50JD:263S.6UZ&16:@/V
M,(A#ZLR'$PV-.9*ZLL^1PPR-V8U/ P_GVE!&RQ/K7I73=#W292_6K7C&R ],
M3]"Y0[HV5&G2Y63'TI0:/AH<7@P2?QL1SOFSB1RPR9G',JO>K$4M#!D,]NMH
MJFP]7Y1\<]9(P/J-3)JG1;'.SQ&X<BF'668+(.%J%B.!\X]YF27:QNB*/@XW
MB;:Y.71EI%9OBEU51&C#26MPIXJ*HJL_0[8\Y01.(L6J.0'U,L)*J#1PU<"+
M*8]P'*S(6S7L/9[_(&>_RB[^88 * R>?,L#EOLF(EJAZA]@I2IV8Z6JK5=I3
MQL,[3DM/ 95N3XF'"KIUJ+ 8#Y/R\N+9^T,2 ;DL2[ I;#BM:ZZ<72.#@<I'
MH*0!@-75OQ9NZ$C:P(5&H)1>I<BZ81'>) )F6QQ/.#N .0U'.>A46H(RW97O
MB8#I8U%_,6R*BI]Z ")*7RYU*B_\R08YE,JH-=0Z )I!-R;-I589LC0%4+79
M[Y>E!OK-9]16ZA+]?E%U+J!\ETIUG?H^K%<PU@GX=T>Q.;.K>!/+IZY >UXU
MZB'8^T7"[0Q_@G6<>;HLZ5"SVS,UD(P2@Z0MU9&,S;J=/&F9<R=D+$TR6E>J
M86;/-U(N"FFH2:%(E=IG]C %'!=ME<%J1!]R*OW+LBB5NAI3<UU5KX_E2.I:
MJ14 +>$>M/VAF-J96?>7F]:>6>EUIC=2]3F0"1OFK>I2T>/057U$N'!&&=+H
M^$(/MX0J-T&6PQS'>M(/<X62Q@@'C%LCL^>4?/^Z*P2?3*4^5M>[F690I>F]
M38:"#4OYGC(4MD[9K*63; PM806*THHP-C]1%$Y9N*H:*$^B+V)<Z?"ODYV-
MBM,D_HO8""?G%[/O9#?9TG@F-36S)IF6\O]ADB-6YQ-'EW8ZN@!)-93,N69$
M"G3#^$K<I'BA+A] G8K5>.T.E?;\BQBP48P9)%ALF022,9+[U.=VSEJUBSCT
MC[6TF)+(NZ1HY 2;):>F[D_*QD'B#BD/(!_AJZ9T87^1K$/YJ8=$5&0;\F?9
MX;Z2GQ\G2N=>$6V!]9[22%79]2#/T#FLTE3*A:E/C" ]>'H$J23 \D-->(@4
MT>HBM-9;JSY1G_W$!S*' !& &-D:Z>4/LW,D 8V&(MD2"!,0V'%F LXH"J9X
M*?HI(U.'9S7C\TYGQSD'2\U-]$F>_K;2?J:]]%9$\%<WX&1E>I,\<)_ VB+K
M0#Y;^6ZQ8>-,2J_K$PLJPVC*@LI[^PV,"B#G/S#J0*U^D8G]*>"O3^(1=3_G
M1J2Q"O=%?@"_W.8CL2+9,Q.C#J4CQ.B&I8^+;!$/#-QIU&<<%-DGA1*_R9<I
M(EUP([52F0L2%F.Z56*K]L+L$.ZG/*L2E8KL<NU]FKA#]KK/@JS4[#Z3PSR*
M8A\Q<@/N:5>H[=J*G_Y:Q>TK/?1-.:0>+-46Y".?6)#T#&#."W4BD9=!"Q8\
M&Z@UY4V!5OBY_\3$4!73(<&&,BQ5Z_Y]-GIC[-(B*IDQ(#P"S)I1V"^D<FF[
M>D]9:6BBX7]24WG!.%+MJA6H--(+9QN]W"BV<HOIC)1' 20V&275R6]AD;Y!
M)Y>&#XA2N@9H(57:TI13KHJ2\4J0E$EJ-CTO\BRDCUO"K[!":WBEZ!+K>G)J
M@C23*&7>/F8PW9'P*Z7MG[FC &!IW9IG=_@50!'Q6,@T'T03M?C!1!#&79J*
M3+>;J$9\94R#.X&2O)*JHXS%4%OW(BV3G8&RHP0>KSCPTYIJ*>&J'L,1NIN4
MRJ<76",=FS,/5.X_ZL<HE6K:P\>Z)HWHX?[K*HM 9L+"+K2&VQ6ZC3#5^P,U
MJW#I/_[6.*C_5,1,5=X#+\9WFK7CXZ:CMB ]%.A-+S* &K7]XSHW&*6^@AQ+
MUZQ;,8Q"M_[).> '7I92\9.SM[?OT'R8:MO+B2G>//BX>7!(?6LBSFPJMQ2I
MR7[;LH[4]7$\22K'$>TXURRSRONNP2:/CP^XP\FSZJ-]1WGB6#2:+VG@30#Z
MG?I<V[\EH]T]EY2!A7//M@Y(<TY54[V]Y?98_C\BL6/T(I5L(<LHE6TA21;T
MGA/DG8'WDOV@'_!74&!JSDWHCN4_/\6@G5RX:?;V>2 R%"0!B.6(<@*3ZQ7C
M1+H"(2Y'H+,K7_(/4OZP=JY'89(N#_H"-4ZU4]^V NS:EK[ CNXUI_WH83"9
MF,8-L%6JYZ._VJIA^Q!XIY$<<).0W+\D[8-^N35[075 *=4<\B*/EH%(.8F%
MTUVDYQK0XJN !Z5O\PPX;CTO.SYC\K?$JYKC:-0Z<I>\<2D;+39(YN6=\ 7Z
M=F:TP:\I2D*W;5+(:2/+"\ZUEV?\\6+V HY&D46HVK-OM%P$;3#FXM;D7DA!
M5&3P3<P$J,D)5[(HD>+7JIT :H"N1[,EJ!<@6ZS2JB1WCJSVDU[_3+A#%3NG
MLX*MF.4Z4N<3"2G9K^5,?3TLSA!8P$)? 2F&*JB%L\J?;;6GFQG+GG9%00U@
MA2+*JK."M#2TWB1MC')-KAG.86TDX\ _I\Y$J32@LB3W"ID@!X^D9H*R-F'*
M^6'8TW&\#8I&*7=X!&018_O(\92QC@)'N6$8'.%=)% "R_&^#.(0,ROU7O1<
M(ZJY$6FF."RVV"Y2?J3:5FGRR60OBF'BW&2>PSN5MBY<I;$:!/.4ZG+.(R21
MX[;_G=/_7J*JFNI:^O<"H;HZJ<B<BR5GZU*5B1]@.@ 8I+FO.''!D,I3T#'A
M EU1="AX_\BT-?<7CQYIKFX7TP[+[;UD_U'S=5Q;AB-+C8J8*6>&Q(;9)UZ%
M"'-NHZLZZ$<JT"[%AK2<J/79P TKVD-($\UF^2QK:GPH\/^A0#9?='9!WLMM
MVXO?  [YJ)A(1ELC-X 4##)>RA*C @=3*O@%Q0E)<4&9XKJ*XIP?SMN7[W\L
M2YSK2!1.#1YA))-)L'F8N%>M&@*ND.ARQIPYJHU;MRE2P$\ S."G(.1J*?D'
MI?<\(S&T7 5\X(@R)C#N0AA@2A8N!UB1,-"BW7_,6+G# $D^('E/Y>(H-PW@
M28\'5BZ0KNM]Z1.!6&@\S:IVT+WT4$!P#U3KUOXBAZ['SAQ*80#UCV9_X&A@
MDJ*I*F*;EFB*<:)RYJ;;Z^EY'YZ&"PNYGO"Q<!=G5<,#-2,;P?"=J/EZ*1>J
M%F/%:-8,:(_T=BJ?C4=2:U6]Q3B!PXS848<I7ES*H2Z\Q?C<IE."21C[FSP$
M&Y:RKGD(TSEI2_O/+PN'W4IQ4NT'IIQVT<7(!KK\'QX>=CP.EP,O)$T#1ST7
M$0,L"10\I'F J0PU-;Q0O41JZ]J3K"T1&G$OA2L1CFR=,*)?Y/V79$C%B0E8
M]7 OQM8!S*CE[1=Z#N&M0!TPU0YKSNW2[^VTSYR+X)*D@[H'5]V*<&:"?!JW
M<H&>ZD9]^[>:\[^<-PDB0K[<O/Z_+ S.9._KZAU'^(+"X2P>!T$W4/4S+K!Q
MGUL<$7OG!O_\@EX0LK#HY8G*<\V3-)?5"AT)P,;N#^Z/>%MC_P?_1Z6W=K"%
M+6O![4=,2ND+IT4%:T[C>'>/PF/T<7CK#_C EGG;%C4F<M*81YYC:7@<N:RW
MHZ_,XZ@#)2Y3 K=:,VGE.@N=A"IO V5HK;R9+.8&[H"0B4SO,@R>?GA:T;",
MX,%5_<H*:0/][?3C^]* A3PM1G]E--.HHCE31[(@4YWK8S6/DZ2]>G\J%7C.
M@,2A#8AW)<E!YXBV1WDW)-]-X>/7V<"H=U!;+&U;R[?0K EXKB\_R"='JG+X
MBHOS'?.PT,HYH[MZ,+EFQ57N,((MD*CR$/G<IE]Z@DCUD)-\9Q\2?@75NW *
M@A][.2>B)A*=;&I)>/<"E0JA,"5/1&1\FA"@)P=K"',+1"9>]NL%D<LM?I&E
MYA2PUZ^(HW"::R#P?]EZ7D8U#K:>YN/'RY=!EW?M3QP*:[1.G-O+SF_.1>OL
M[OJVLR*"",T\L->^L,T*IA;/\R/NY8O4 XU8L"'ZH-5VLO8CRJ0S1KY07Q>G
M5=0?S'JM>H"R%B)7-M:1_3K=2B=\7XBA$PS5$:XQM\%Y9W)40U%&QFG%*L!.
M]H2N=4/25H4T.1HJ<%Q[CFR"SMXU7B[U&4 7F =KJ)5*SVK&P%ULFQKH=G%@
M]X US%&+HO;*B_.08JBFF4.10[3[A6'TH+6-@S/TH"'9@H1>W9.I)1*$R*D
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
MG"GR3 SQF**4*<KL:8B'&\I;=#9X/!Q250,A(Y&CPK#E.=R <*^\RMBVFI^
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
MGY1^(K(W=#N)@A=(LU=0'U[)BI#IIZK1:*@[SNFA()(4=IS?@UBYH=#!,87
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
M:41J"^DPU!N*@I]':/;?@_TD]83U4-4Z>ZE;/NPD<4A([#G5S$R%]$HB=Z.
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
ML,/#(_=PP%&#0 <%=56ROHK-WYNK>%67]REJ_ N>W'&\[>^=<R^?)EA)=]2
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
M%^_ 6?+"&W+J7>?S0O[R"VR.5!9H/XGZ@C2\*.AS@GXG\+DWE^>G3N^HVSZ
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
MI1,AX8F[R(,.FXZ,O#1@O'B+#(19JBTBPID*%ZEA)F' WCA)A:;<)BS->TY
MOODMK&Z*2N6NO'"))#O$-&>1XQ(<J1X;TY(@"K+P<3#E"E*+(*+X5@-#2J*(
MN*\U*]:Z=[>0&*'4ALVP*'"P.<;^2&772D6&+ 1>%4S*$SOSQD6X;Z(8D DE
M &?^.PU-RDN(GD#XHIC\2^P 6%)_R>C&MPT:NE%)<[E9$1W^>XHLWML(-U%D
MEU![?!_V"YI#0K 6VA72W@0.4<$" 9OS 3)S+V/\8@]_BP+\UV5&4H..GLQ!
M+K[GO/FM==ER/IZ<_/J6D>>9BVN44X<)!T2NO@+V"QTC^%HDELJ)TETS?[!0
M&-^WHOOFI?7#^JVVCQ7HFSGEP*F%9+SAP6[MQKHK-4L9)Z_.X]B1-N(:=-FF
MC"C!4\-'AV[[N$U?&<1\"T)^,\$$&#]>^3;%8LF4V;#<7AG$V]HQBMC<T.T"
M/#?B9SMGWV6=7(ND2F.<-_Q,EF)9H)@-/U/#S_1(YFQT0S0#JZO]<^1\!L<6
MS5GGR!4""6'Y,\RS%<0,L(]74>H)40BXELS89Y$7CSQAA/J[!\-N.>^9Q8]I
M?H5U.]8>F^E#D%H8^/B\[DON82)+8$0,X^#TP)))<J:;A/)0<INDC>\:AA1#
M[)D&W\!U5U]3FY9"-T(G/;+4"QCZ-^(>!Z_I-;,%P?^85W/N_1D3Z[=F!-6_
MQ]V"2M9RKB<CFY,T\/#/-("I]VSV'C36+!-Q[,%_#=#1)SE+V_7SB-:S'YA=
M#H9KB^8%42<YQLO0S!RK1-(W+HV1VB/2%J2(Q-?"'CB3;1SZQD0:^9Y;U,W#
M2I:JEG,29N"R3V?V>W,B),/5DH\07\Q""WSG2LT"'^SBB$BA;_"=(6@CTV9.
M$Y!"D0K'Y76@.8YIMN>8)T:DCV5FHHHNQ<L,3Q6XHK;J1(6 \VG0\ETK-&0K
MJ91:T4/2/T]M1:;?K=$$,_]N\7%LC(^C8DS7]!<E:VB'B$<.'M=,<A5J9NFL
MF4LREF:Y5,BI<HG<*K)>M<A<.7>*+- ;E0"(+4#<+ Q-C;BP^/Q!B7V^M=ZA
MK)^5V\#Q@LL:J<2G,*%3K^B?YZ$-6 ]3%</NN  ]QU.])[M%++9,3_-?'#K5
M)[3AC)$G/8#WO2&3%R]A'./T;>$XDZX]SVB#LGX[62O9G_YKE/SUI]U^][B$
M,^ ;M]KL'^_". ,.=J^[*_/*NL][1_?$R#)H#3O=^G6JWZW^Z@D[U6X-C@<U
MZ]11J].Y%SZ=6P@F-E_7=>K!9%,^SU7?G'^Y5N&5.B"//^58V2YXV?<A,.M^
M=-O:KSI*<L7L;W,A?.N GX?$JN\KU\=D&XE52^RUA"X;0=UV%5XEJ!>%LO!
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
M*A--@_=HE1ZO%BMU88.IX"Y.I=(#::M)+ H<T_E<)<C)#&^,X:](JORG0@?
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
M8LOOB<18?WJR?B15B(W84KE!Y#B5$/TU6,CT(Q-!L4TP5W2J_7>S<+L\H[P
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
M)"?2&[4/'$82\#K'MR4R9RVDZV=/S"^=#F6CGQ80DQ0FA@LLUIWA(^DQ(MW
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
MKG]]ALC*VYM:]<WWGI](,+G)Y%5I1L(^WIV.K!5D=O"N7 DCN2$J4AUT:H+
M-SJR6CTI@"^KF#-+^#[PI[  ."6GKN5%,A706/DW1;31Z0TB_%32L<D@>H_P
MO/3LZP286WC[.Y@GK1ARK],\EZ8(1S5$6M=*L'VP;_NRJ9YDA=G>L'\'"+,B
M[+[F$BLD(@*UC:!.@?@-8?B +[D;?0\)=?"4)7Q# <(W0%UI7MZ 4*L;(JCK
M)5@5^PS*W=YR\J'0K^M#_R^^;[\ZKBN4Z%*R.0%;::K6@*K[NJSV=CJG3"C,
M'!/GSN7PUL2IH^]-D[L%OC>A'=>9.AM9WK.#;3V98KR]&X-;96,/6;0)$%G
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
M%/B3>.K"O#ZS7:O$38R'4[S_Z/7D^UDP'%M8%'IZ4SSJ;,MP;[U1N#WY\>C
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
M;/]R>7G_$>3]GS,'& *I'A1H.M0J\N&O/X"+4NP@$_P^LY_9 BFK6:-1<D[
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
M5"F.2B>@IY&42<?P%EQ5Q5XK3+5&JSHDIW/\2\&:%L(CRR(MY2$BGM(>C-]
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
M/,ZYSF%T.3K3T%>W(VV%!A D;Y'$KD1W<]1>8N4E#4PQE$7<?*"J(<&](&<
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
M'#P!YL6QR 5=;JI>;/I.HF<3!($,9#^"B>H'6F@W5+!.44!? K%3UD=<;Y4
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
MDG^".:Q("1ULFQ): :K:(B44V%8,,><]RJ*WD'Y"53$C4T;E8<$9*3?!&=#
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
MGQ4&]LS^#WW%YB/A!^_H2,99P,C! GT0>I1WF:H;NU1-8%X3P[8%:)#O5,$
M+;<+C=+=%)O?F1.VNN!D[_H83#8J,E<L[\MK*7Y@H=&G<>B]@X7UB;.2):/5
MPSP605<JF*:D@]D19 ZF)+\OJ%!2#VP6HO,9Q"[S#MHOK=[J&I*>7O2UF^2Q
M@T$BL(_A;#7GDOZ#G1^-LEEB;YGP95IZO-H^3=:ACXS5K%%V&\)XL!S+U/\Z
M9Z:T/KTJBR[[9RL\0W@0[H+RR3B^=MUD'WPYGCX3&KHGL'93IN6H1QMI(^ID
MT"^A-X..-6UWP<0B_KXM%/#WKJ\^R\BOSVHJK9I**SXKK?)=#"73Q5!Y=C'Z
MRY((O.&-NO72!4)42U![3E.*.VTJJU")S,<?[>>V\!FA#J.@##U/_9?<F_)_
M+3Y2#1#J&L[:P^-]OF?ZZ+(-L?*APA?E9JO'8#WC_V=6#C&5CR3ZOQ90"&W(
M/Q/WTV@D1RM#M(ZN^KL+MI]\!^)ZBT@:A1\]1 +%)\/RB:#(/[6%/V(T518N
MQ:UC:U>8Z\>TP@U-'Q&]72R,N:K*>],];B$9.(FS(,4/H(M3;C4]KSJ$9:\Q
MI;S<+7@ K?O-_:*7(?R(N_ZIM2K7<6B)-C7HSP'\P8PXD&60=S5V(*KH.A?Z
M@\E@5<NTHL^WR&;[V6"C747:'VSTW*ID/74790XH;BN]X$B4<J4]\ U<UXP
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
MQ(9_0@A*^99"Q0V!'A:#M<,&)S?T5O!V\& K@!6]8:6:X,+9V$ZT<KJ^<<@
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
M]4Y>7CXN0B[1229+-29,[HUT7*;<+MPL))\-/WKSVG!SE+43SM]!'_K$25#
MQ"@BO?U($V#_7"P[RQ: PA21.,S"YU.D6Z?\TB$[[$C%=W@^KCYHAW(F5^_^
M0<3WVSOBZM$#MZU,GM;#W]"S$)+G)40]$+78('-@XOXAX!_8PL0FOH!5_B3J
M!1$6[B+V5&P'O)1<QD?_<;')]VN%5@^/]VM#VU@ /IA\P6_ZV)-E.W$/RK?E
M:[=S;-HF=916+YAZA*29DR[1_R2X#HFGU:-'%<,9W V01UV4GXU?PZNP=W%N
M.1:31L;,V1^V9C.!_3PF8@1J$),ZFL8^^Q"L!<ZRQBGI2^]O',U@QUU'24;!
M0[<,GIQ+>R=*96PAOK)&^KOX;:M4YA,:>]?[(PIX5JE.H,N2SC=*@M!JJY?N
MV/D!75DD <6$N&%X$M3_9$VD2TJ?9S//]"1_7QYD]LZT5L\LO+,<)CG//ONS
M&<2N^^T6HE0Y':+^0#>5R<QWUF@J?!#+$\:A%\<D$]OS ^'?H>4%Q!/7>A,]
M\D8G>*-BV63K)>!(N!A3]H\%@29DEVH(ON#@ '"4)-O'ENIP%ID8"PGF$7@.
M'M HJ8ZCKDE\4E7S1!\<]J[/T3L?G(P>N,\A>7&?Z*['.:?F%^Z3ZT 4HJA;
MY\RJR'+P]XK)L67:Z!G)@3 %HKZ]73KR.H[ (EN&D9Z1)A"-*+I>I)626^>D
MOW8CP])7\;6,&,$#A(X'_MFK0QNBLXY5%!P24$6R-*\K!>0C- /+DP!7 *UN
M(K\UK>!%%*I92/$-UD86BU'#-G+9-_;7P@@$1OFNW&6>DL8$_@M2)_G[6]</
M'MW@GP3>&1.,.K&1Q2C.:5U$UQ$U,[M-&:@PM<%(V/X*Z0EH/ 2EOSHPU.<@
MFBFLIP6-5!(.SYZ-OD>C% N=0#BC'^'GY+1?"L80C>**2 8$BG*[JVRF-*GM
M].LBB"LTCJ1<9"I1*T+DB,4*A,:=KR,9),Z_W)CO= P-/H\[PO=FG_RA_>D&
MXCIHHI$'[5"X#S_;NSAS%[ZAT#GV6A[N3Q+$1JQB:OGISD^EYZ=+.7:Q\/EM
M1U0YU_E!S-(5=4TJ<'ZEA["?[@PA1M%4T3!RW-^*9LF?^PS!P^^ HLG>9/89
M;LLG[_(U-A,R>VU[TRRBP?1OK84=,&":_MP-,=+<)\]H&-LOA#=7W^5K]6:Q
MU9M\K;Y[:(XWT_2S2\_E2C9SOZZ7%7S\O#$]?<T+BIP0#5V@A>M3K^L3]2Q
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
M,*EEJ=53157MYE"ZJ+AEL\A9=H9@R:(BY^ULC8>8J8]5+-TVXRA8P8+!7<V
M71Y8S+III-9SL134Q@?[:8&%&PL@F/B=G. V.;EV!$;=PHN1Y:-HN$S&8L1P
MD;##*]QP-A:&))[!-J8KME.HGLD/0O#'F-<2)F$0PAI9?K@M]--Q^L;,7" >
M'K/ML,$]:SY$9,(U="#BE7]B";4W$@'F1/YFXEN1>R2MOF(-P1,""N5^)>&=
M($0\\?9W3E[L.5#MD;P+3^[<<LJY*1U]@SJ)_TZ]>#4+ZY7<##UB_75C36"Q
MGZS9N_7AHX^6=,# ^XH>KIMM).'F[BO>8[<D9M:O%B]+$:8>JIR_V<IXK'7-
M"3$[NJ09DCHT)^;(L"1K-)&&8UW^7P.AOM #!^9&:"XVV,;JK1_CDM:]7X?>
MSWF_/'ID1EGL=O#E\>X?PNW@Z=O@J?_R,'@4;H3'P<O=L_ R@!\_/@^^/GSN
MO]Q]%NX?'ON/MP_]K\+S"_S@][O'E^<L_MP0X67=B=1!IRCZ%1GW@^6/-9YA
MR=83B;'FS%&R5'^"PK-1T2U<9 !8 /S0"N@/O$1",JEF1YMJ=NEAT%^,H_1U
MEN(=?F!FTW._@WD*P'84LZ)ROJ/UN^W8\W >I\X?G*7QO&.O_AR2%_>)+?C!
MB?'MBIM/!36=E&T\P5A5MA_K^VGV0R\!8#?9.W(AHJ:6SX%5"\$[F8%3/8=-
M3/WV+ABZR):9P+A\"4DB5!"FX/! /$%=$G"YA+GU+_1,@&7_%7JV/[9727LD
MPQ]PFO!)S 5CJ/" !MT!_K^=VHXE"O_7@H>*U.OX?RX<'/T;WI9%5] ;7_\=
MG'%K- WQ;BT*89BHNMX'70.(,A7/@DBEBK+&6:FTU%X#:()[ C;%FCW'*UK[
M<!:(J2ICVZ#23C=K_( .UI)8A7>CE$;8/V@W-.F6O9?HO OO1#W/N70@FM':
MZ?(4NI<$TQ;>CW:>_6#>)#T+@>Z&RIT("P7Y]E@ 026O_=P6)NQ-"2$#!VKA
M4BE;BAO8N\)D*#\"XB RF-EDH)H$C.W8AA=#:(^Q.(MCEI&.]0:[1M_/!C*-
M@IA*)%YI&7*4G_IS#V<(QF'M$Y^CS:"+DDV-+ECFM 5;L,E9$': 1V-C]0+F
MA%C&\.0C8@[:F"*U>NGRE_R-*0?)<GD6/FQSB$Q48'-R&ZRF S_'0HC(>D,8
M.:<&G'JNQ/(<VWF%;WCNG-KT&7D%H<=%!!]+Y0UF>39#)]9VJ/VWJ3L*.W#
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
M8B0C-3 ]$@,#9[[H9+T<(]:>P+:G/ 1$PG$;K8OKNM*L595R:_68J61?I%K
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
MT><>WOQ&F1HX6@Q>:Y:0A,NKSWF-K3T=M+_H19D*&;MH+/YE^Y5$ ^#*KD0
M9QC7C/+REP_Z]8JHX;2^_F7@?ECWY7&N+#K=+P^W_R2=[M-C]ZG=O^L^D$N"
M]Q@]TN_"QP^][OW=3;M_>T,^WSVT'SIW[7O2Z\,'7V\?^KTD_MQPA5#@NX*+
M:]/FUCO.>0!\@)RE_]!-"W=48<:T.9Q9NFLQ&R=PR/GZ3Q*(%KP6&UG<$-1#
MR1NUM+@%'SUTI?;HO5!NY#DN6H'H,83INX0"I29L,B,=_LD\E:$QR9YA'QED
MQHX0%IK-I (Z$TQ$-)<W3//1=2X934B$-NR1%XI6CA=>..*<0?[;\ 8ON%B,
MJIS8Z# "S KO&1<A'4!P?<9-YGGX-2Z+&>!(YH5Y$0GML$&2FP9?/2@I>XB_
M!G/#9RK(6RCY*!NM#;0YL"*/Z/"AXZ'5A;NSQZ7!UL,K.]"W%Y1?Y]N,3*T#
M,\M^CJU?7->49KF\YD1O"^[%4Y+M<7"8/,S*B!Y4>U_^2Y],/[:#'WK! ;@3
MW>E>L+_X2'<JEN,M6W29[F![0SADSBS:':VZ1JB1PC'"Y'["96VEL7PK6UP)
MV%^U!IFQ&=X_A&XN9O5[_'RI3WA$ /P2#DAP\/'(.^91<V8P&<-[?Y7&TJZO
M6SZ+6UL8<R#\7(2MI4\]>A7\\=$P/3CBS*],FRV+/?11#"\L0"3P<G(,OI!_
MO3"'2F5N$HDT'?%F\74)OOJP^GFC52JK]<2ORB4U\?-U0ZG-4J-9W3C4D;H
MO4(<9X?=J-G"+TH77D99I>0<LP1/P7,=B>RM- //]7FE$Q80%PD!:S*1\#71
M$PV)?PKW9 <,8<=,5:DUBI)D=K[*],Z&PQEZRZDLU_V:V GV89X9+-4RMDK)
M(Y5$*IPMS//H.G"2].<*@7,$'"V91P,V=8H'3:EZ7A$^P<X\XKX("X[M2G8X
M889*2VDVZE+W')B9OCB.@5>A4O%D1$Y N.S,S4*W:DIY_[9:4EEL<U,$"3/\
M]M&QO;$YE95.5HK(:=G#;_>PLGS=?C9W.I14*[RU2H+S6BJ&G*$CXE2,1<B0
M/)\D06=+?;G"0 >C.36ELC]TI-;9PC]]5S<HAD))3;,*ERW%D0X&EP1$U"ZN
MFS6I20[-'S>47U[C33(88RP00S:G>_7C>K M??WGC@54JIA\J=34O4_I4J-L
MX:&N/\::";).XVN#AFW$WI6'J@T$3FO_:ME2]Z2]GISJ\YWO)D]-X[PK*GK$
MY63T"[$_CWQ[LB.I>7%=5QI)2812^^0((A<#4X-@OS>A@4X(1-E1@W?[%:6F
MK98\2@\;J7MV./=$XL6E*BK(Z6<?)-7XQ7^YMFK*20648P<\EI$ITGT#,$E%
ME!Y"Z\H3[8P?L26?'?>.;4@?]R,[?%26CU!?;:LE]5#.S@.I>0JB>1;>@\AW
M;(^RPP?[TBFUUC[PD<IG"R-QETSTOX^QU)NL@DJDQHADEPK0VG!FF#J#"PB^
MQ4P;W :63,6_*5ZFQ$JFZFY%RW,AR.N*H&1*%$ "!5%*R9*(9@_-JU7"6FDK
M0B<IA_,8V'P-AGMK]=W[D9+M\6@J)2QI$@\5X15^_/ NG&4+BT(JK$S0Q>)^
M5EQM7"2FD7X2Y;D*E"+<8Y7"CLKO[+U%HL%ZCF [/:"L)L[$ 3#\AV?@)V0-
M U;(R!SYE-H$"Y-XO-1),D>M&Q>3M#'%.$AR9Z/:6)9&#,D8$89=8L;T4_3'
M6&>4C58B8,#%L^71Q_,L!"W68@'^GH%$9+6[X<3*"@_,W*D#PZ6JZ+4VQ?98
MC+:IW$>:^E,G4K&G:R_JGC=XV?,-!9K%CB?7:$Y7E>L"?G;!2C9;5,=*S5B*
M,KD&6*1.5UBP^0O%JEOSQ!)G. %D<]/WHL\N53P3-:X2:S1$2ISARPPZ@L?@
M?WPJ2OKADSH<%RQ,Y*?L32!V7OPQXNK?\"O'%16E*);6P&3^'W1L#@$& ]WW
M*7P;*5F%2$K(8T^H<1$4NU]39>)O:>I+Y%G-OE[(:O9:VFKVS!74T7T="VY-
MQTFU$+"#W4H)^5IUM7#]O>-YY!T:HB EY^]Y19'/ )G=BM>S5Q1;8/PV ^&?
M)"Q"(/'"=G-&0+2,8TS/T.B:E D(+%?JL@*9B"6>S@3(N[,-T#">J7. L-\8
M%'=KSA[R8/E@[ ]9]A.KZ<#+&+&B<,Z+C=5*L7[(L\W$1IA;&"L($]:)B_Z"
M\*<'<Z&$DQ;@CV&^K$@(S G>H0?%S?@$@K)VWE+YR^BD#9T5\EN!L7@4.2+,
MZ"J!6$7C;[E,#5(E+JS'N#K'_8X5>% (;5B"@ZUB@#,C;\3JE";8HR:R$D@Z
MW34\7DB?5^D3-1&Y%,0R?=0VO7&,>(L]$@3$.<;+R8Y9E0X/*]J"P1/4&\?Y
M@-5!9E,LKH>'#*$-UDY_-'.94V\"OWQ&JKBF]UTA !R0JX *XLVF4XM5@#.%
MY!:B/T)CE/A#6-/)5-B[LQ-T]*+0$BLR:Z%$BE9]"A"4O>#LEL!NE'VL+_)"
ME&:OL5O#PK)EI=%H)5;D43B2/682+"IFPEIPG=STB+(@*V 9B17+;]5,:[!2
MS_FL&T,'FTJELF[=K(H7ZQKFC$:P%,24:7LSEQT%@8N'E!I!U0&40$$MJX4X
M6?Q\B*6(>:GH?'G@+GB%4(&IKQ"CI& ='I1:/;DH4XEPMJ^L87LW?'-.;+^E
MZ7$N2VY>7+.BTMN9/K?Y,P9.F'S@6+O#^I'N;(IOR+Z@%G/$KZNKA>IQ1Y8%
M?12<K5E-[47Y4#,R83*T='/"X']8:@'X_3!-OFWS>,A[)HLR$ZU>QLN_C$2+
M%"'3HZ8^]7V+UQK#YRST" 2"<1X1BT)L1FN:Z<P8L/RH95$B7W4;;!0VH.%0
M?@")5!J.*.D% )FNAY.,> FW%$)THL=A44=/E+(''<PVZ8);TF[<DL:I)/O$
MPM)JWE)M-5FF=;W]4&^M+].:Y0#8"@^ LKBK+.Y:S.*N17)-5+(VVGO"D]0,
MCSM@ H"6>>*&31M[>S('U<:V>_6D!GAU==5[$7L-Z8R!3G3'MGML^&(?G4)7
M)S]#\1*0N' S*&J;M<F BS%T:)4\.* 2-?5]W$1=./'=&*'U<!N918,T$8=U
MCY=S<;@Z0P>K>&S5WQZ:0>%9?V%%A=]YV *4/@N/Z=I9A)=2.CN2@P$QQ%\'
MYV1X]5J;BL(2X<B/UD^<IV-ICN64#(XU71]8Q]/NZ#$H57S+Z[K[V+8D9#>L
M(;%Z 4O"Z2RN/*@[$??%N) A=9F/8T%BBQ7D#SP-7N#@0(N(FRE#CHO,EOB6
M1,\8"03VLIN0V+=5J6-GEB03,FS6RNVR8"7+%Y'HNM/*'^/B0/R8?:=^W,<(
MV[F^[5H>\9*D7C5E_=K6ZTLCYM8,Y8\H'#N;H'?C/Z)#A9NT&?PZ;<QOXK!A
M 6S"2N?:K45M-ZK]!)OUU$K<:J5F8VN)VX08K6#>P*PT2X'<<JE629Y*UI*Z
M6K6DMC:7U$T]]12_VA*S%H1[E#'88]]WIQQL0S@</SH5(*RIS>X<U@:1'GA7
M3CD0%Z6!.8DKY0&UZ<C<D-:;E9Y;"11EP6W/G%(X8DZ%FT\BX'#_K&FM?C #
M+1(N6*^A@59KKD8H[U8BX'#!>:\JPDXF&+H3W$A&11AKDG% ^;5$G405>DX9
M/]E@7-L%Q@E(K5]<-RH%*4AP1##N-FA1?[6O\92+K7L("T2F2^1*D%-/ESB*
M[=(0SJ732W3(D56D^"Z.^'[]"<K%RL7*Q:XN=G-65QXW "+A_M.\/Y_"=W@-
MD'0+T$QQ"R#T@8IY)B=W,2#N[>9!!,UR^'7\XL#E5(NTKTZX^%FN;[3ISB=(
M1F,98.D;Z)WN=4)-*S7*ZQS_&3OF54MJ>:M[/^7GE2V]]U)/JE(J-[.^?(])
MY2F=TE*]5MU\'W3@4^,N+OO"W':$3OM^Q./U*;W3_DT3+W071HG72>DN/(ZS
M(B>71I%WH>_X>KS!R_DZJ /]S-ME+P<'J#N6"C@)_]*^]U_9EGSZCO-Z!A^2
ML+[C/J21^9,:E_^AKI/H/FJAVP:L4NUC3E[U8SML,MW$2"2]720U#HND1OE-
M(>D )P2)RC>(RN:!4:F>#BK/-Z8L,6CY311XS :&E?)J6)  _CK(S6%#RS?J
MZ5A**<WY^LVR4&.E1V(F%DK@DDH>$3<%9)$\73!OE]W4HTJLZKI8!]G**><(
M2MT;8S>:"4]+W4%1GUHX8Z9*S F:.L[NCX)TGQTWQOF)7%V[N*Y75]N3';VX
MN(QT/8@"3LL9&0XU];P/-45BG6,IYE-CPVP2:E4S[R&A&@614&\J9$?&.A7@
M5^?KDP'@4RQJ0'\.Q[K]3 FKE\K_EKZ9S!9?DJ.R[\+L>%FLMH$152AQ$P5L
M\^):*TJ#6NF'.8(9N!^[8"&W,^06Z9(YB$LF1\YK8B>YU9(NTOURS/@@;1^'
MS!YWJ:<)ARW%49,O&!,X7[VX;B6T@"O:)6)&+&R?R*[NG3?':)6<&$V[N&[D
MU7/]U/GLR+Z@-\>S63)4$Z,O4MS:-%GYLW*E57B>/M_#_O[W.:=F,V?TEFZI
M3Y'%6]JL@J60<&5^]&Z7\B"?"VMLB<#.Q!JU1-U^TIPA#^VY<-F6Z.1TUX9I
MM'&=:>/JZB%>=N,ML&_]U"XK<]6^^[FL&J".S_":_.URRPXI46NX)7W(1;,I
M0R[>7LA%KBI\/RG6*HX4.]]C\F:_>^55BJ 5(JM)5H7+KRJ<UCAPSE-K0R:B
M+ J7Z\EXWVG*&I-2FNPK378(3,HD339D4$II4EAIDJ=M+R63E$P[2*;F#C%P
MF223)B63C*0O5D#XZT^PJ+^2A).$DX0[B5])PAVNRG)RL^MT39VULA8V=2Y2
MZ]QJUM:YO=G HW_.J.W?8O?SI$Z1K4I"?]Q69;4_[F(LP@?;K3<N&WH=6>NO
M7W2Z:Y//=.#.='=.U!KS1U>5I9:RGQS=-9CGVG3IT'=<#^UO2V<]Y,D08\!@
M?:9!;6-KH]1'ZO;&.G9V7[;J8_D%=P^?ES?W1KS">]3GB 3>B6\QWFJ#U%;U
MXKI<*B=$QI I=8F'S_'NN.'T30_#V5AIZJ^Z.QP3M<IIPKOU6ORAL6.!_<R<
M^=BT'HC#/?NLD:_E>!3_$3;B=2(DUEI\.-FJ?@-/-LIYM*K7RDW9JO[X4\F[
M57U1>M(SCX#Z,:5&\EP_TLO@=]WBN&[;QC]F@+#1' [9[>$0)=CF?NZM6I*^
MJB7HJ\ZOMS??[F_)W5TXU]_;]]_X[-L/-^0?W]KW=Y__=??PA;0[G>ZWAWYO
M1YU6V]SO_>C5_5NMDE9O92WN7RF7&FI>Q>]KE:U=AU--JEFJ-C0YIQ.=4TO-
MIR^#5JIE;,N0'YV.,J<M(Z5L3GT@UWXZ/=G<PWV[84V[]\@^SZ6WTBS]\-T&
MEI>\ICLXS!!599H.#W+#Y9KDFN2:,JUI=\58%!%Y \<6UYRBE#R*D"S*ND4,
M*-]3W?]EX'ZX_D3AI&/#Q-F_X!C\"$,[1GYTB5\#Q^]Z-UX$)]P%%Y&HO.*K
MP8GJ.XR,K,,2T6V#_>M6M+5+TW(I#3$DP9'@C+2^0[K^F+KL'X$SXWB\>P+4
MNJ'&;)C5'CQ-Q72V>\A97&[?B6Y?DMJ]9?=4[,\$A;LM#24'+;'Y9QG?50CB
MK\E5OHLVB-VO"=]NR3Y NJ-F^K2Q?2_+]1DY+NFXU#!]<N]X8('@/6"@)<D3
M'5+S!_J[K]+@\-!M-.7S\OE"/)]3[CZ+6VV4&K7B28BDA+]=5IJE_6#Q N)S
M:F=6H,#V'#)]FUMJ"BZND0,MX[5M0T2X>\+228QHKV.SG7)!\GPEPTN&%PQ?
MV8?AA2^B[Z#'!SX7KIY$ #0NKFME"0 )@(.O2&0.2<Z2G)7SBK)5_MI/MBX\
MEXGBM(F-6_8I./>Z_%YDEXFZ%Q$E(D\)D6N:&FZ&YJ*@3S(V$YLX2&3NCTQ-
M(O-DD)D-F%O*5>]Z[H83!QP[FGMWN2U6?:UB^];6-['8T9V9A3KG@?&DA9T^
MQK?4 MT=X^K%=:-Q1DVV),.?!\-O*6>:EV^MALG#:DN5 )  **9O37*6Y*R<
M3_)[R=:-OK5:N0)V;*7Q^F7T\PO,*<P)/H-O32+R[1@[,8]:ZCIQM7(UM]KM
M$K(Y.-TD9$\*L@<*=JF5:[D$NQ2K&4VQG6ZJ#&B3CO4DC&]I7;$[QNL7U\W*
MWCX'&74A&3Y?AM_2@F%'IUL&F[1QAOV$)#B*"@X9["8YJQ .N;WD[A:'7//B
MNB9CW62LV]L&Y!'QN*L_KG4FMD^1(2N#X,X5LH<*D%'+N03(%"L(KFA..+$/
MG*:8>MZ#;< T<W_FVI[,,9?/R^=ECKD\*DLUOZ6M8THU'[7*[=GDTG!8.7@<
M-M$&4"^N5:6F-@MB!4@\2#QP/+2V-!/,+4Q6U60*N@3 V0* E<D+REME\=JH
ME3/QVDAL2&RLO5;(@(?\H@JE%U->/$C$'O[B0:U)R,J+!PG9'2&KOHI'HGYQ
MK2GEPG@D9'*^3*A[L[D K7QR ;**@$9.3DF98"KQD"\>#E,7,X-%VSR3U#8)
M#@F.O!V6^86926Q(;!0(&[LY++7RF>"AR-X/6;E (C8_AZ6F2L@6R6$I(7M*
MD'V=$"I-*Y:WXDU$4<K"!O+.(E%KYU,Q.*L(J* (T/:OM2@#920>\L7#7LE#
M.3@LM7.)FI'@D.!(Y;!,P$ -;!9MM7*DY'_)_Z?+_SLZ)>MGH@^*[.&04902
ML3DZ)<^E=%61(2NC*,\5LJ\20J4UBY77>:;5'6[HB+HN-4A?_TG"G23A5LKZ
M#O)Y^;RL[R /V](.V*L3PLYV0.OBNJ'4Z_)F0N*A8'C8JP1Y#C<3E?S"XR0X
M)#B*"(Z=0ZDK^<6A26Q(;&SU?AT1'.NN+5(84Q7MXKJN-!*<*J=2<UK"X13@
M<$0T['@E4)&U@20@B@J(O4J<;ZB77*E>7+>JE8(PO*Q+(-/IWFRD?^M5(OTK
MM8OKIJ(VBQ+I+_$@\<#P4"D?IEAJ5GRPTCU:I2KQ(?%QCOC8X$]+ X_&Q75%
M:39;$AX2'H5RJ>V)CWU<:DUTJ=5KJ^6W]TK2E7"0<'@M;;&K2TU6KY& *"8@
M7BEVI5K.*79%)M;+Q'KI5=]3)[Y*,>"JBAZW6KTH8>P2#Q(/ @][I77DY7&K
MLMHS54UV+Y+X.$M\[!S!5I41"A(;A76W[06./=QMU2KJBV9"MSL9P2;A<)*J
M8D=W6_5<6@-)0)P;(%XINJ5:SRFZ)<\ MP^^/K H_*]A_KC^!?X3O'8"!J)I
M7_K.]*H*.R!>=HD,?%6I!UQMV@8(AJM+_.18^ZTME6 YUDOC-- JI483%]V;
MPI:/S"%Y<4V?7CJCD1?NY#)1"T=%K2A4_.RX\!N;#&>N2^WAG-"?P[%N/U/B
MZCXE_.\EPB*,$-FFS=&ZF=2"L->_#%QD_C4[)&9:1>?QU/%,'/?*I1:\X ?]
M^&(:_CB0.)&G.*BNRHM']('G6#-__2,K-5+2;WS?G%"//- 7\N1,='L_%FBH
M2T2-_!>GB]++U RCVFJ.:+->*U<;Y<J@.6H.&WI9'X[* Z.F_J^&?<[%4V-W
ML0?/]'+@4OW[I3Z")5[IUHL^]U#X1"4-B)F [!IWVR\3+6?2M-+P*=L@$.>.
MRYCK"@0P=?%7,"6]*%,A8Q=UVE^V[U#CXKJ/HIXX(])!=0CVW"\?].NDW4]6
M ZV#":=&(F?>]6^_<LW8NB*=7]L/7VY[Y.Z!M!]NR,U=K_WEZ?;VZ^U#OT?^
MN.O_2MJ=3O?;0[^-'W0?@G_>/7QA#WR^>V@_=.[:]_AHY[[;^_9TNU8(1!9=
MC]MO: J;H_E1A71_3%U*7O _MD,,T].?74J904Y>3'],=.Z^T?$#,'W$/T'X
M$<<E(],&:P4F@4\.+<>;P3C&S,6OL9H"_@8#P4NKU$@+_>I%\1B'M-K --V'
M_E/WOL<XX/&IV[F]@6WOI=GWVI'G?+/8'$2G"P<5HML&>72=(87M6M9]:V?]
MVMS:]HA+_YR96+1G,"=/,PNDH%K1P0!F"U)K!OX)4L@?4W(;:/GVT%?8)QUG
M G.=D['N$?J#&>+44#BCX_=3'<U9<\H+ <$P(%M!S2 <%&+:0VN&:I\/-3;I
M"%Y!AS/4WJ0[ C.-NFP:B^\_AP 1W_-YT-&(#O$QFWH>OL<$=$4@-(SNTC3<
M)?(.YFU00!VLWP2:SX9CXB(1WA/="Y9-X1GQYQ3([.#)%.QT3C)_;"(-IX[K
ME\@GW8-/'3&0( BL7$$#B8+5SU[G#5US@$]3.*\0;JX@$1SV"GT(^\'M$GSK
M5P<-U9] :7<J-(JRE5YK:(5D0))3I*CN\UFFH!*39B&)0\K " ;L=X(L>GV$
M?@WYC+DU&A\]\L0V"7?G#BTX&^@BP$MP.R/DXK^$/3D1%"\62Q@S>E/']DPT
M'^#02ZB'IT;3&R.3X<Y.=!/TCVFS?QL ?[39S8 FPRA-%OK(#6A2(I'7Q7"?
MC,2(F BW(O7+R"! % XS<N'@_^*XWQ&K*YO(1E<_LB^>73:ASXL'/&_&,:Z5
MU0H'+IO7Q/1]RNRL'E+-8:JVZS[KMOD?AK9P$7TPC0VPB/E3GH< ?=?I]KKO
MTR+@M?GD-E<A%&Z-,W-CLFX2YX\EH;,?/[P@PRU)HALZI),!=;GY65$59BJ=
MRJ;T(VH4!;' T?8=0-)WA[X#*R=J4RR:X' V'&,BS__-@VWU@8RZYU&?2W>7
M D)GE.T.K-F?(5ST*0C]G^8$L&/-2>VOW 3XJ\)$"B>Y-5?6@1I'<BS3X*)@
M[0MAS[RQ\V('G!-[;+'E(+1\83;S7<9!4)SAJ^=4=U$MPQ/!YI-PWPD8-2L4
M'#)7A1'8TDR:P-O!3 'QYP+WX2OP\;A= VJ;LVX2_4>N,V&_]H;.E 9DP35[
M'N/^P'[(5R0"(82%);8E "W[ 6>7%$J=@5&''WBS@3>;<&LF_2PVFB9\;7]+
M8X(AQX+28H1F(M5$6K!CD6N@YW9A3#X# 5V8Q//,Y-\(H2Z$><_71Z. O#TP
MBV!V)N7O"RW7B.SF!+"7-DR'-:*+QYI?,@9B9A[,C.W=!*3_ '::*0UCF0%,
M>\&<.%*$_\P1\;CGD:+U:!LF5RV,_D Y#[\HI"'5AI4B%G$5@07%2?Q$GTW/
M9W;PXPP,C"%I+\ZRGTUW<HZF5G\_Z&[05TQ7#B@%AH1#D<_Y^HNK UOVQXYK
M^T#-^_M'!5D67=!3ROS0,'JX#5.^#1&7P@BV06$BUV?RE;.HZ8HYD9>Q"4<
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
M7FW&!^48M4C_#T0X,!%Y(*!A:I?@4D!CU+SFMB9,4(Y+B]0^FF%.9LQS"0_
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
M-KS1 $^GG,2N[7BECH-8B8X4R'9 T9:U$5LM#E>,[7I]:+Q*S[98R6%!:N&
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
MR":H7,]CZZ"!OD$G A?9M/:F'D<UI""L,54:BZ1E"':.8YV.!#0'O(8%-1;
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
MZ*1]-CK_-!IV,;V8H@PE",C6$[;D(KBLL1:LH"O,&.?]QK;,]7..@P&M!;I
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
MHPG5]HV:_7)7>/WA- ROIL<(;;V-])YEY)(62^N,*@M02.ZMU%S*YO.$=KK
M(R3WX1*D[U+'YS@>?.XJ!5\-)]/Q1==<]"3G[B/#Y6SZR19UC^L]8*LBR"W6
MTJ@B\AK!-2]1F\*13$A;ZD!<5AQXHR/HPD7B6?GV 9\%,+9/K\\_\G):N/&6
M6[(C"F8%RC%:E5<&>/11!%0JI];C5FY!V%7EXK8ZO9L8WUR2AU*-^'?,'P?#
MC\]Q,O@XVRYG?K;THC 7@ 7M097HR!.+ GCRSOB0;6I>1K\8R;Y"FUOI=M1<
MQCV84G=1S:-E*^#J*6JY#--^@I4M]/8@%;80^BY)45PQ,KF:=$D<5% :@@_T
M*@EZ+5)6+K+6;MMNR?! 0'*77%A'UCUPX,V([*<9)LSS.>TQ21:<!RZ0#-U
MQR29Y!9R0>Z0J1),ZR$C"V#LWE]IHZ.[4P"V$G O0V;N&MSO!I,_.I(;G^NH
MU ">*_+'%*W5%Q8!/?U ,K*04NNVE_OP'(-)T$S>/>0UK['-2_P^T+^\Y/TJ
MV'HR#N[#M1\#H9T6E]*CD0IZ*=.^!V-2P7'!#3#)Z=T(6A'&;""JB/5Z*B:;
M7TZW>WH\8#+LAQWK2+Z/UI#9;/ 77U)W7>+EV/'+0\YP-,%)#60U(=3[1B!H
M)N@,Y=:S'+,4S2>[WH-G]^9$.\W=;O%H)?8>;(M?PY?!^<7YU:7JOX;IQ7@P
M_?JVW!HD?RV="3^Q+F>#7@,R6ZVL4AM>>*Z';1+6E>12:XMS(Z#[)%&;,%;_
M^NG58'TSF@6%GYR/+H;3$YESC;PKR-$2V9&185[OVTTZ(6:1R,ANWQVT&,OC
MIT83*?=J>\QOG'@[O($5": H1B1,D$*70[(,')GKX$S409F0N&N=NGL0U#'Q
MH87<]Y(1>WLQG4S#,--&=WE*7C4RM<Z-K?"H]EFR==?78[Y,"5UBUG7DI=:@
M=&;@:T8W6.\Q"B$T:YU$V$&^S%LOBP\<3(RYFFF"W'Z4(%UMT17,6]W?JO:>
M+UM'IP_ER]:1Y('GRQA9ZE%QA.2ZF4=T,GH1+4AIM$N&"2RM4\.'G2];2[>K
MY<O6D?$N4R.KX/J>\V5KZ6W5',DF0M\E*40T: QMC,+:1#XW\=^YZ,%*(Z,,
M/FG?VOY\#/FR7KBPCJQWE"]C3-?+=UQM6N2@I"3OF-53,Y;L#2L%6>NR[,/.
MEZVEHQ7R9>L(N&'X83*>GLS#(1VA0[#)>&.!K)]ZX1)3$ (/@)(7KGE)RJ]T
M\-,'WU R?7>MX-O/?,Q'_%;R:YCK2I<83IZ<G5WB&>#DDJNK8%KA0)]@^NO'
MT>>?Y\^:Z7?^W;5^[\.RVX-\.^V,>A)MRTZK^[!Y@5:5DD (\FJ(SPF<"1Y8
M8-'*F)-%_BC5O>2H[E_;ZTBT#RV_^/W=B;3%\E 4H ^IWKOA()A4YVCY8!RA
MB.J^/,+:6J5G[N[8;2?]V^I<5W0M!SO-,?R?W_YUH@LJ&\A"U++F25FFQSM.
M*^'.:44'/9JF+R4]\QC4MZ[H^GC[?OVO-R<E9X8L:A Z25".UWY=,O]M#$:7
M3/9_N2_CN[;ZZ)G'H+YU1=>'9?3+T]].@B#[3J,@LUH64+Z6.-4Q'M98)W-P
M6I;[YL^NK3YZYC&H;UW1M9Q1-,?P]]]?GOCH4IT-"8@=!A4@:(O@58[6T!]T
MT+=4'SWS&-2WKN@:3AVZPO#LR?,39C"*Y QX2X>P*O3R1TO+<8:IA#9;VLA;
MJH^>>0SJ6U=T#4<&76-X\Z\3Y:71WCJ()8IZ#P)1"&4"QDPN@@QKIN^K1%A?
M?6^.PG195W1WU6>V5]_?7Y[((C76$441:ZT4(\,WT!8 QC)O$_TM8TTM3WKF
M4:AO3='=59_=6GWO?WE^(K45TGG:P'U-5-J@P0FI0!BLHSZL9*;IYDG// ;U
MK2NZN^IS[1+N7=OUK<HC[1CWC/Q1BY(3.,$A&AX!15 N2TYNSGVOY7;I]P6
M#J.HITU:?EMY+PT"]%G0\S2<A6'"]Z>(T]>57#7IT+B2Y[YGM"_A67E%S6MW
M)B_#8/R/<'9Q@UJ1RX1"J%JDGD$925:4=1D8&H9":BUB^_NE[P&T=87Z_!,G
M-QZS2.1/;Q2\WBS7?OKU;I9KEA&)-;(2G0>II0<5;81(T@%:7THFB.AEZ[VI
MO]7LOLIH6_;=*8H_#$T??.F2EC'0CLYE)'-!95WG;=>Z;N619Z%1M"Z8/JS2
MI4.AR:I54*NK:[=54 _C^KZKH-;0V^I54.L+?9>DR%X&5,:#0Q7)>#0U^T 6
M)-FD6B-RSF7K,IC'4075 Q?6D?6.JJ!$DIF<3@3)ZHWF6!""QP "D04N@\BZ
M=;_?85=!K:6C%:J@UA%PKTU8LP%I)UQG+B(7X'E"4$[32I6E\T[&J#W3P;G^
M:N-G&/;IC[<V8+>2;Z_ZOC$L[T30+Z)-#+3A9.2@"4 T+T _\UY*9C/VUW%W
M \AQ:GY322_=XON,Q<R[PJY'+@Z&W=3$>KW'&$_KL5G_ 7T*UM]K':?9]/GM
M8SA-)-$\OK, X V^:N9-3![0URO!ZU?!L @Z"!<XT4[V.-[P/F1]#+>Y>LJ5
M\W;SHJ&G7V>:>3^EP[;^^B(7\-NI#C.'3QIF8Z*SF"PX>D.5L^"T<A!1%&99
M%E+U%YWN>W6[CP@UX^LJ\W<.@!*''BKB(4I>&-B2R?P(AD,0DLZV%(-F2I!Q
MTOH&^,,*%1TJ;58,':VAOIV&CE; ]5V'CM;1V\JAHPV$OM,&.E8X]XP <1M
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
MW)_/3#OGLG(1 ]3()JA<&+F6UD-2:!@3SBIS-A6(/3PM'=[G9!D09BHRIDR
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
MB#PE4,Z06%314#";Z(,,);4N7CR(T.<.LA;ZZ^&*W)/HQ6"E]8$_DCXKG;4
MEY%7)];0Z6XEB,A]':I)UD/K9.A#Z'R!W-':ZZ$V8X>!BODFU>_.1K&@*XZ,
M!A<-K\4& 6*IY:MDN%HF4\;FHU+WI>VY(^M +?50K/$XG;=%)01[BUI$KT#S
MVM)<.R2OA'DHF3/%,7M>6H_9WINXYXZG0_7T$%!Z&%/>>%U*2@RDKUZ-)E?:
M,14A1.T=5Q8%GM"4/S"KX@%5"T AYL__]DM-*YC5@.(OXYO/. W+3YW-]Z@6
MZL!Y77!VRWI=NELJ10,6&A44+>,@K^)LT2^I,1;N??BQ[=46YL'B(_^8C-/-
M=%I?L]M2O'F-P8^]S5IYT//L,8'TX/G=:>G:$V VK= "-7<^MU_H;%YH</P\
MHJF-('I4/EN1=.#YO6!NANE_?YQ\_3=,>7GX?9B&7*-UTVD8?US<^;,_Q]??
M.I[;=S]VJ;.4;U7UPQJW2W0ZNH^@_L@CFQ8;T:6Z8:E__ "'SF+9^<''-#3Z
M]PE./_['#:9/.'YW<XT/5WD]^?QY,GX_GZ1_OKV9ID]AAJNXO K!9E8<:#+@
M:J\W<@:3JB.9"Z(WTB._9PMOZ7QT!!'#;=Y]]?M#^Z.AQ-NZSU4GNNL[X+J)
MN"3[-6<B,H8,2H1"9C<1GK2/J:00S?T>&2T@<4O )<'A0+&VSI)^<$*]JF[<
MHC%HZPO@QT\^[MQ_A,I6Q?ZU<.8GVJ^9E%;#L$N_Z@X2?OIV^S.K)B<+LK[3
M1JY7;;+V1_B\KCQLG)/0!XG']M?!:9E,/R]G&]#2NZ_'@SKG;%EE^ J+'E'R
MH)'.XZ+MJ\O)59IC7AQ9?Y$T9^_>_]6+2A]?ZZ(5NY>8>PACW5MW"+4^0W7N
M4J/IP9][,\ZU2NLF7+?WX^Y_=@,'[E%RVSAN=Y9HX[ ]_,!6%OEW!T&)R(T$
M4>K$GMI(RJ-DP)G3+O#:::J[L7TB.WJK]+?:SP<(H:MIO/IR_2/2KO\__^O_
M U!+ P04    "  4-$]8'XS#Y@I; @!3T@( %    &-G;G@M,C R,S$R,S%?
M9S$N:G!G[+MY/%3A_S=\9%\G^Q9#2&6+2 E#$I)$V6.2[%N2C&)&9*<)15$F
M29)ELJ^9[)4D6[8RBU+*<B89IV;Q'-_[?N[GC_O^XWZ>?Y[7\[Q^Q^NZ7LR<
MZUR?S_7Y7._/^WV<LS6]10%VGCQA=P+@VL$%7(!_@*U50,SR4N1%?\ ?@ ^N
MK3G "MC!M7UL]SNV#Q[N[9Z7AX>;AX^7C^\_C5]0 &[\?'P"P@*"0ML'_)N(
ML)#(]A_;%_EO0W?P<G/S"O'S\0O]WSZV7@/B CSJ/+^YN78#.\2YN,6YMOH
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
MK<L!;QRNFZ]H;\_MEN*"*F 0@7GRNP@.C G3LKV$?P&-Q%D4I(I;&62J8M_
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
M(VTJYO@%7?N?@HBP301'3FEVGK,3E@,"4^"1AVQ;7W1U3P<J =HRU%X7'V*
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
MX;C9AY+0UY=M[@UZWTZTN^@9("7J?+:\*',,3ROFJ(S-K<9M4)<C&>'TE03
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
MA D4$&7DG)H 7X-8$@JG#AZY1?(&*&<QL8W?I$]>'55JO_>@JZ8SN:!OG=[
ME[A'8-8L^46/5B2F:WHY>SD&CDC)W$:+9RFKD9 N5INYR^NN><:#U.UWW9/<
MXS'3FK$!=\HP$VB.C!DDEL*(@\1:V)H+)!7.EBLC6/NKE1T]D+3L2O:QT?;K
M3[RSZC*$[+P@]0,'[J:=YY_'@*I:7410QV4Y]S5(FD,N$]@7?SH_<(JTVK-X
M&0D(A7G2_SSR?]O_NK'H:_ITY4JJ9EKR36EK:#GWSC>7:9(T&H:\R6@ZLDN2
MGT;HPE#4R%:*S+C$)V:Q'(-R,&]\>!-Q3O#3S2M1%^6^?:6]6A8.WE*@+HW9
M#Y!%-Q'?XCBW-Q%5U6#*)J(XCBC-6PZ#QU4<#<??*84>(X!L#?@2II1<0+-
M.EZ"?'4VY9H=+:_=(<S+DW_OQPMSSZM?[WOC_LESN^O?C&;^>$;V,GR^X+51
M-&U!TI:E-%8#AU2Q>Q-.>2M.8OIXX2^O&+1ASA>3(T'?_W4[-_D\;EVSF-A'
MTV[C'@>OLL]!GS812A:ALP8Q/*OP00F%E7;F26?W,6UBZ*NR;C,>"T[UY?JJ
M"9.O.K84W]Y^Y?R:"+&M"4/A[S3#(/.Y5=AS\,VEP<S7N,&\W>?8Z$EH"$D3
M/S=W_U;9N*.]YK-S=Q.NJJ<$"U.>*'$_Z^R3F _\J<792H!$ MG;H3:K72W<
M.O2-04K=>; 5&THW'3%&RMBPF L%)[-F]Q1]>2^_?MUPZIBX$3;6U".R[K3P
M@O^V,_]EA?WO/%"]MASE#+J3-!@*B6/FN!CWQ..U$\U&]%_+.^OIR]DGHR83
MV??'U_%O3-C\L-_<!8D.3&&.C*J_8OL%HY\8N9!2\S'AS+3\JOH=FXB(4YDP
M)@J?Y'V2;.9)5@%P3SXTAJDRB_$:@[0XAA4YE+^'J_ A@_%W33UUCHC\TNAJ
M+OJ>NCOJE_&BV<$4IWD7CB+LGH(707^V,!;'Q"^%L,^#KPW$0*?9X]/-%.>:
M,M+D<K4'CGK71B<+*R(3]L5FV&J+9?.1VM@;IY$+*XFI VLCIZL3H?;%@[0\
MD_0=^;=[5?=]N*X6);(KZM!$+[66R)%S:0/XK31_;O*6;I9(+V$'H@AWF55,
M^0)2',O;FAY26Q8U1VONGUZNJ(T1O5-I:,YYZ7]V>)?P> UG.T=]$Y'.I./9
M2N](OTMTV /$66$6EYN-TP3(YD#@)D(1BV3VQ&E5-3*RD[\W,3AUTIGX,R.X
MS]<KFY()+3LK;AU4EOI^X/H5!+IN$?2&I,YG'0!H\1B5/)NV0Z9/7A+.E;GR
M;>1LX%DNW!*<*&Z2M 6+9A_'#;8>K)AH-IO5$5G16]%=D9NA''W94KTH=2W/
M\)Z%?ZRS@#0&CO<AD$Y8((M<S<CF2&-H^B7(!-QNK!OS=0JZ4]G\Q).3%AIT
M!Z6?!N5_Q%DGD[#5^][:@+YF6U^F1[:ACUE("V2U2@SKO3ZK8JD_[:K2:?-R
MHEM%;!.1F<*;RQM /K!H_Q 3%(%HDV.8132'T-B#X$&_685'>LWV-S:>HRKU
MDR3&=6ZWWK3+^;UN*#<0*E)^Y<ZAY4PGZ\.H5!(CS(S7:DYBG7UO 5V+BOJ-
MT>K [/@]HOGF<T\\;6()EK?".PU>\-4]]<X&JE5N.SY0X#63$'.?(U":(%'^
MU[QV.A;*LZ7QD"[8,:M7U]$BM6*J9T*(_,-GLE+T9N?:@I^O4$% V\/.K*D%
M3#F!@4%_V0Y#$$S^GEVV!,_0N0K+>?L8W^LX&BK\Y_%W4THFU4B/HYN<^"^Y
M2TT^EQTF&:!I?09?M!<O:_+Z0PEN9[8F/:WNM))BJ VBA.B=P8MFXGDQGJ:?
M2U-?^4Y4O$36 K1Y@S@<DM=$1X"?B6G'QS7J/K@724^PT"KRR<&J?:NMKAM]
M1X_=O_0F$2W&:_@<;07KN7WC)-;)/X/<.N(D$C27V1@8@41RF5(S/[Y+KS3;
MTK^4C>4*V2J6-66J%-_<O[&'V$T"C<76QB<@<;EB<M"A@J_8 Q.>D:ZT)L$8
MAN6I,<_?0A'H4AT2^"<;:JA;(]+F67<W$1G1#"UNJAL&RNS"S%P D*3:XJ5^
MI@$DVL1^&%9,PZ=R3()\[],PBKDOY,K5]N:DYF6K^+\8]<+G'+PJ_5[M]8GG
MAH\1Z/J]H#DD=2M-%<9V)4ZHKQ+BR\\35L6=BCZH$N([V"H,*,$TPG(<P_HP
M-Q_P'E1Q!>,Z5%0K4F<'UCZ&W(MY=L1'\[1]8E@OA6FZ8_O6PZJM,$Q$S6$O
M,*C+F25A2I!($T/V7%SGC 7X;*Y%Z328?;7(3M-)-,S)J25V8Y'%S5"=3NI
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
M[M8=<JYYQ7%E*I=-/^_[V+MM"%/:/5>U1\"%>OZT<#\LA9 <&0++EEN%-;9
MLD^8=0*R(+#$2G.@]Q&2+ZLFG:HW'7IU7+>V J-[]J-%3;!.J;F=FXW&EPH&
M'+JCG4FT.!_R",MN](CP+GS"(>C()J*-PI6"7T6N&?[_0!(MXU!JUEU+:]I\
MBG?E];WCP=CK3/-C+B-71_>G.@7\"6?=A_\L!)85:83*GFZ2%.XS[,$WW%MT
MNO)D1YW91T9O, <J[M;^Y;.3NI:W/(<5LC!,RPMWF>)A%4$:*UR$/<7PV$1$
MAK1@W-_7C*J=SUGMR.&.9X=O=W'YY.*<;FNL!9. 13MU%5$YF-QAY9A(2)+
MV_B%X\$L+V!JS9+:D-O"<CO=FB%<*3$L>I::8&!@H-ZF]#W'G75?"2%1H860
M&ON%JE3@R"!96MQHXFP]]TEUH$K8B8_FZ^$&<<LX/3#60_,'K;Q#?5QFIJ;Z
MTWF$0[<]I36J]<6K" L2JPTFNC=(4R.T%]2E=;8SUK".Z1)C8+"KV6]'P.NZ
M=*5X][O!QRVDTMOG=)O2GCP)M<Z\)_Q], [V#3B@\O-:0&TB$C"B5EO"2MLA
MU>$;ZW=;PCNH"A;VU^_[:HI,;X.#13Y9;==_7.^0-O\W B44$L&S^:#)O\[K
MT"BD L;-O7E7_KUA!+[05HXW4Y>5=;;WQ;)@ VDM7UV9I(I_(O@30=0;AF=A
MG JJ!B2\L2[U(56V$KU# ^BTAAKPQ:S(MY2XD.NM J@@3#[L$&V\[6JB>1]I
M4_/,O (5<8,XK;%/WOM?G)N=2- W?>ZI]HET8+8%8,GR^KS!D@V@Y4!Z$\W!
M;&6L3&[[1G'"W9]+)DE->-F;AR)S9@Y:=!W6GW^BU=^[E^_ C@7,R:'#6Q?E
MSRPZRRZ,.!BJ,ZH#6.O&=[2O'-F[:*T6W+%%Q"(:H\#!PH\ '[2G0(UMTBQS
M$[&\AT'MP5F,OZR1'Z=D)UD9A>5 KKL$WB<:F;Z<<?/*J+EMV#FG/D$9/2W<
M1:C:1'"48!P5Z.,^:3X7-!<X2:"OXK&"I9?='^:Q-A'MF!T<QZL:GPX.9N^)
M.XW9;Q1=4\F'F%-M_5P;J>=?4),RG64L5J8;\R5B?WJ/.B&XMWCHL"!6@>T%
MD'E]Y>U)4^=Z)DARS=X,T[_M5IIC6KY__#'TE7**]U219U:ZPT/B+:]K#L91
MNU;L=3_=)[9HOT3"[AA#8O@9<&21;7Z>K\-^.8,U3*5C(X47]2P,YDCQZ_:O
MU?8(!@?>R/K8MM7J7.8!L@ \'9?Y&0I15@IA9B?!$,9$N^*-R)<^X[Z^A3Z-
M)NGN;I-MT>([S]AL>17Y&2'H=^:PRG&V,ZX3$ !N;2*0O;1-1&I.=JK&4(#Q
M/]T0260'(%-3)M-WNNY.:$^P$"%$(G17U!&9V ]SQ7)KM_]/?S]A;;"$?Q.%
M%,#:3VPB_IF2K-^\1%IQ\X ;! 3N4YYB;CM*JMEASH\M*J^1BE;$'AUK/CS>
MJYAY+.:/SC/*-G+WZ*Z=^K;\*EILWJX4,O $YJ 9IZF)M50ETLW5R7Z33<2V
M*=\S"]0I>2NU4>-)S;J49P47CS]GZA:%OI>BO;^D?QN!<AXZC-H%#0(,:R=0
MB[KT[/7B!GJI)Y_CP)!\W5S =IMJQ^RT.'-5N6^+Z8<^J9<%G_ANJ[/I]@C:
MX]O8/7# 7H-O;6 ARKQ/\C$0Y!Q@0IES/8WI/YP4?7GIEF>D2M6'O3^EE6>?
MD:FR.C7KNM([$(P).'-X!R3+F"9$-^\O!L^=:AW5?SER:ZXV=LYY]'5+8^:9
MH[%9]R>+GGW8H;_TJ4<]W=&COBYJ1;BF,5(C\?P>]3O:UT/4!+8^B#(_!TN
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
MG1[ZK-=NJTNS"*S-!.E"P&>"?,4-\.;=;.RH/.MM!\VKJ2]#9DS$LNRK&7V
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
M$.1A+Y@5LB9]9C$C;])YQI2$<J?I[Q0 ?DN8[#2H29CLF;P6$<D]?OTJEAY
MN+4 ]>XZW;\174W0<K()JG*7')F5)@/JGR>? @O0=>I1J 1@YUJJ7R'[IP.)
M-2E\D#[B@Y&F>HEK$#317K*HU!9YH5FLT>K%RPL<1[5EQIVC:=951G$F[O4O
MDB?J%J.%FIR&M612DQ_NI8S8<6$8L*$8FOH2!M#Y>3T'%_8<P=+\@:RSK#\"
ML:=G]#P>>\P8*8-KK^#N\'/'7'=R89N\;J=CO'_RT6,7LDS;K6NVVF?,WE[?
MZCVN72\8W3SU77!Q))7FT#H>B][*WO;8K=M',$!%AGTL$K:6:N57*A=L.E@:
MD$MU33>'1E+)@+MKS5[X>P%(VS#CV:P@S9@P6_??,Y1)Z*HQM/9FSU8)/NK=
MR2A@5_;4U;1K(CTF]>:@#$*OH;A;2NXW7EA?X/+@+;.UXM3KC769!$DRX,8X
M5);@$([JB9) 1+D_':_=,JWX'#M0I_B)%/2H,TW]O:>:XR:ML8H_Q1'5%.W=
MR.-([)Z$<F+.WUOKNU+^]8S&C )<D6(Y..-1@CLF'.?1IBNTT%)&,U'[)6JW
M+@8V"]H1!'7$3F5] R3M'^!E ^B6+:>,QB<F/%]8C:VK%;"3S([8 _*W;O;(
M!$::9(RVH4B_Q&RRW89R%D\/QV)MGNRD,[_]!FR$FYL)32 =3EQP58A(F,L0
M[8ZS!,00A=^[.:.35D"G KSW^  40W]*;4",5F,DW"9^E3^(7:09?]XZLN_
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
M/C:,YQK-9U<5\YT\57BM83%2>[J -X8.MHH2TUMOV 0TM2OXZWYY8D?WA]]
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
MHHQH+UWCNW6LV*MX?FH$"_X&VOWDE@CJLEX8(OI-/'8BX:+=IDF\FTMT4+8
M@Z5VZ/D[=>:<I\H:K(=*V_O(=/OYG'MW ;?0?!SM,W;VQP1.V_MI'AL1HEK@
MH)B@XX-Q,V_&$%>[OD(K1>QK=QX08^N5 &445W@%A'DY1,+]985%<F!@%G%+
MT&/%>YX(: -<.OL'R[HU:_5_JA$IC8IN5GVV4D&ST7F6["CV(2:9]E90I,#R
M,HE]Z-^^7-FG*V\[';D??GCRB'UK/#;N"]8KN=JPM\C15FDP=7QY=[+D-+^W
ME97 B?#@GE_ 50UQSFH.=FN!TU>,^I*V<Y^U'-)6!-LZ4MBH/2KQ[)(Z&1!B
M1 ;0)4:"-N5IB<=@#M12E!5S9(-<%:%684C)P"2C6ZR^[]/>Q=F;[DVUOX<T
MY >\E.JNF56,6 E5'9RTP%#QM\04_DN;$O\/CXU?_?5?Z9=SZWG/'$JG#0NW
MS4M46WY)L*-_-EBQO&$L\#_/*H:90JF%!^/_!@ZKR^>$!957IAN6S#MCFHL^
M/DV-?OE;;5\E$8]S.\;_ESLC[H"6ZX#,[C[,,20F8B&$.2!,;U,S,D^.FFB[
M4!U8=P@T?R&>/SMOL>@)-0M??92OL QQ>YCN%EFFJ5#C>J@[EE/._QO1_ 5J
MLI(,3QGKQY71PTTDX?0)<XVODTT2\T],#ANP0[LM*S+5KFKLF097-,?I#;TB
M8,240_A3>#+,<2FFCN<'&M'-H'3.VC7]V\!MVNMR:0!?T'XZ*&9J/ ?] 6=/
M"G\,6S(C!/]Q'\"D*4JVJB<:*&8UUFP.2@54.HY"DS>BB#^@)UV8/!LN0_XH
MR/A.AVRLC7)AZ;$Y3/;_/(V*]_\6'A9SD9)2T7!GOYT7Z)"$+LY]D6QX[P),
MHV"N2LVA)FT&HTW@HL522,=;/=2K>+RB,Q?> V)R&S$YP9OV+8(,\(M3%<PZ
M!]I9B HZ/4 !"6P]&Q2,J7_ #AT^=#%6B!%L(4VBYX,-UL?$NZ+OOIDZ:2KR
ME#[B#? Z*1MLE<9U=H'0C\%S7ZWDW.KU/%AQ8:K*FH&F*T./XG:M'F(96&L&
M5?7.IG;]P[_@7)9!%UQRF"$*WNY,*05;WRVMK+/OM_.<-U/Q/DP(<3NS4!Z4
M%F#SC+1(1<EUFR;#K0*%/X4?ICSDVN&F.!QA[104X<DJW]2=[IV(HBN/O^#O
M9)HD9IGX2HR:V";^-)S9039&("/E%AP[CO/':_1233\:_DIDN<2;V.FAECNU
MR]4!>\<)Y%#C=49<KEGXHFK>+APP_EM;6%H0AN9B1*!Y"-&X6G3'%-:66*6B
MCTYYY$4&7"3!I68)=Y<)7V<?]=*'!>T2?PN>O(#_0"QGPGC$KZ-[JM$97=:9
M79.R(0B](]YRPX@TVJK6R;,^MT,0R^M?=VBCA:(I-K%I)9_G#QG0:6+>W. P
MP.M3!0*C5^6Z[7&.W"^=\#V<QGEFL*#LZ-,C[72+';\0-\U_O#3I0[8*__'/
M]WA,S3T(PFH4%Y [#CR9 /[O\\V4ZI]J_RTUBTCH)*)N,0+]23^C'<9X\!2!
M4>T*" Q=X,PL",$.71+Q-0@O\PIM8X$N@&J#"#>'<U >H;Y7571+U$D9W@R$
M6?<FI@9^(:^3X.+3'Z?>OQ'?/':_0*]M8R O<%%?]X=W10;37.YBBI_<Q/\6
M^'X-J/4L(:8- ZY.W"56D$:@=U)ZP"RU6[G#W3,9YN/[A<)NI[+I"3*!XK#H
M,\G@+'K\B=8DA!:U)SQW?WA_3^+E[K*ENWL>K['H^#-3IC:J>[RI_V_W#WB%
M*U1% J/1?M)*BTG/JC?GPKQ,8V:,*FW,03DH7L5>;^7 (?'T! ^<+(0D@E;X
M#'>I&PU\#]Y$I>_/4[\?NGSZ!KAXO\U>A.,DXQ_< DTQ[F"<:$ZW8=0!9P1&
M;1SWR2!N5_;1HNV?JUZD:NX4@00%X ']%N)ESIQA.YB-Q#J-$T'=*?%<FI,Y
MF.(,X+DIL1(7=O4E6N\.W2V=#GL1WV"G'OC,!M83MYR\B N[*.[K1,LSF/[
M)&6;X)Y!.D^'O"^V;JN!I<48I&'$'HWD82)S2G"NVZ>:Z]\]KL;8.-.*VPDK
M,9I>OI-^Y8:@8ZBJ-XFN'BU+8DFD68 X3Y5CE]QBGHZ&PZ5GRB!#>^MW*3A,
MNH1//D35,E.K?CF$]F'=\)]@O$VPGK)/V.3%04[%D?NEB4\!'$[_W4#A@6_2
M^7<SYE?.^[/7_*,=7*JCDPZI.;8V1"TX5$TIP.)^^NB<'<YJY8 E0*,K\X'%
M%]UG=SH,J^=EWE\Q#Z!75)S[H9/WH6<"-T<&7'A'_*#&YP9#/_+ B4PAF4-Y
MV/U ->NU^0'4ZFB)P= OJB96H<ZW=:[4049#,M=>QCR:.6S>:SAG +)IO0MK
M%T \EXI=8E'1QN [P<SR'N<@CS#\A1VN:HHXCU5;BTY__\.^(F];,L#IB2;_
ML&,[3)X/H31HX 9K!X&6D\F ZIS=9R@@ -??I<:I)H9K0B5&S3I%P9MA*U(L
MKCSC=9$,BLN9_.+;K(IC%0RTII$+U\[=H;?@>TR;1YH'U\/:_I8G:L-@8!0T
M'E..RCY<457N#.)&A,VNVDT(MB5,4BL7.#/P-5?)=-._2M8V-7;;R)D1P281
MPU285Q:\L0AB&6PY'UR-A6-R>H)>V[B>^(&YY*+&"$+Y^5>N#<OU!(>:SPHK
MKWV(""XY>832SN"#=O]]@[U=$/0WE@3]V)#?!<$*>BD52MO3V)KX%>:T96*+
MJS:OBQE="M8Q5Y2H7(W6DV4=9/-^IL'*X45Y2@PC@G!Y@Q2G;4A9@G^+H_X^
M ^R1 <XVB6&4ZUE[X(3K>W+>+E4[Q:Q._C%D=3G+B5*17AG(\UDP,:M-4'K6
M4)<A,EB;<&K,)@EPJO_DN$:_]QN&=H-W!Q+^ED/*'U8[%U#7YZ[< Z-1L:C
M*?<$<1P&^EN'C/L?/4'R?<_Y*,W1)Z+"&8TTNQK2B5<A#8%H8 [ <&NNW5.\
M*HYUKE.-"3W1U/[%.;U:[[K-C;Y#Q)"8<H.+H+_X+UUQ796I#,C?^EEV4"09
MP*,FY@;DK95B#,CO%!#%:*;Z064FH/R0^Y,J,B3A.O7:Y^,6>HUO/ #&IBJA
M/TQJ;E.&K0V$-D2\M4#4%1'XZO$ZE)[4KG&&CJ&/4)I5 <!.ZW&8G$+C[Z"0
MBH@^#9&%-'L=N%7?!M EO)JQ:%<,775 HALC V@5"+XXT"KWI<1(A N"WBZ@
M$S68?W6.,Q\J.8G='F$VE!%.,>YCNJ_-^Y2.$V%&N@BAQRGCY0G2HR1&R'F<
M1P'.L&-67%A5X<&(.R?W]?/ICFUK"Q_2G9Y;3:<_UQ5N6)J-PBH2/X->)C)N
M95\AYD*!E\QJ+NG[2EURX[P;WY-3ZNS?'U]O;C&9K.WE(MIV^B7).Y3W1@R
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
MO34=\;Y1QR$MT+@F3\?^+8-_*NVS;$#P6-PUF%QI^GR%6T<\"PP-9*YZ7=V
M7ZX14/!C!V19WIN7><RH8?*@_"KNH_.!I8 8P9XJV#C&ZJGF%<LA?=U>PSNH
MP!ZKYB>I,/VOJU]V/]=_AMW H4K&T_,BNMM3]71%NIH$MV<;!+=$9P-ZZ8NT
MMKA,U\I%O"M"4L+O,Q5<,OCW+C@>6X!,/SS\3-3\Y5#A'[OC\B),K42U0P'V
M@FG!I9VW/*Q+.KQ+;!H&/.=X_2#I@/()K%_[UP:A!?GE>)7!#R>?YQWU]^WD
MC_MT567W<T9,M,: _]U(81ND2HS&,$8U,U<3:D*J?)I&MFMHENB,4I(Q*<F[
MQ8PV!ZOW2^H!$?\6G+/_79PNZ@6_@<=%XQ47#L8.O_C>L!@[,G-H 7[AC4!+
MG0$\ M!'453C[\2(%H<U1$$L-"8=V5K QZW:((8N7SO:^T!2)W\'$+)MEEZ0
MDJG:<:&)EP/1A[Z(,P#HW'K^!S2UF84H1@!W6U\9:Q;RMVA_/K=6+[Z>MO>P
M[[UAA0S2A$8AM?L.#]\7_E7&2<7#DWK\&6"RF8?L/?JZ]A=6E9%).S5Q_I<V
MJ1Y><Q01%&=(M8G\[[+/-_L QWQS#?A+'QZ\+H>_75B[0)3F0U&>ZUHWHQ+_
M_P1?__=,B*3#^=-*6T?7YJMDX/B7B]+Q5N-;@JT"/C4?(^ZIJ#*@O#TRW@7[
M_;L\PAZ/F55S1;T5 ?!\B9+<0PY:L1^ZG193;JXIG&Q%A,I/]^G\-;8(*#U@
MO7];\5:9^+L%O!:2NK:$&_*7_K"@01F!V50XWE&H<H#O<^H"WJYLA9'L_=]B
M!HKG&6!,.O9^R &^Z0$#%JUH/0,5T46U6C)[,X05>P8HAV^&8<%3C/]4KH<0
MKNCDJ\G47%ZI2T C"G4:Q".[O]4-KJE[4BN+_0VB.\=.-_]F"'MW89"WLZE<
MM.5C[PUNM(Q.-YJI0G(&8L  N1^S&/SEYUH]+#ZO/6=-0=K"?/I1F<5T*\>C
M6)87=_(7 $HMW^GJA</49#%-0O/W_WC3Z^BH/O[G4_![A67YJX!.\_\EW/L_
M, $ .*@ WO_K]4A$%J[76X?]1!=O!*8T??M6K*GSM:@@50E[3\;L2R0=8!W"
M,FJ9KFU5]D0_RJ5!P#0_=NMS(Y='0_36%;#4_>5K2[*QTX$X-;MFR=.<,\#"
MKS, (UFY6+$=,@G5BNZROIGZD&9\VT\H[<WLI$=$;1>MH.]/9899L152?.P\
MQP$$:!YD.@&[;3U#S!Q*^3%FXA3PR'XQ3IZ;6?)+1.J58<[0*S.31Q5ZW ,R
M:O)WZF+4DXJ*7TK&=A]G^,6X92U7!$[*?56[6O2QO/CHAGFJ%=B9R_R)!X4K
M;5?41=3"I,^[LD$W!U8X9,U/$H--9K(2]^S9P\A/7PPWFO# &RMF(Y'NROZT
MZF\_]_S>JKVH56/R+OA?SA4Q"+R^Y)01W(YQ$FY!\$T+NC5194OIQ?\U;K\[
MVMO2"][(>+F(?IH5.HX2AMM#J*0=@X(+NK15LW[-CAX&@-/CB:QOX61619SM
MRI8ZR;(=;]&6'A),W4+:-'\\+>+:<V77K3#%5/-MA\=14>5I['GNZ9.,!C.]
M:01[.-W"CX=<G'4VN/'!PIM4=F-]\<71=%.#R69=IH3:9<R 6BEC&NMG26>S
M38S6IL;ALDG3H9[C=GRGYXP8;IYIW6Z,7>&&A&L*WTA)XW+#;H/S6+Y\!2CQ
M- )TQ=\-P]X.)#HP1DX%2A3EM]F.F'OW39E+M;VASDE<4=ZH2O9('=BR,"!H
M=:%YBWWQW_84^AR\=BT>,!H$4QN\1;08H:(0UR6:;SO_^N>R)\5#E\KW=T'C
M+-T9\]X*0\<BFZ"?3?888+NJ6\24$"G'9+0TF;M.2U6=__FJZ@FB';A<#8_O
M!WTBNYV&I.JV"[3V/&DR/0/TK=U-MAX\*0QF7B[<V>Z$&V *##!O&C;D4PBL
M[/6(26LX<G9F @\)K412.3 YF)N_EAR0ZP@:_AU8=@9@:+]8M9J%*MF=::!*
M?B'ZXI?AF(HA-INCA#G*6!MN?@"Z76*>\E_DRAN1K*@MV?]L9V"P*GRA 4'5
M. VF@0V9&R$&;H!"BW\7D86]Q_L]_@(K+T*.DDW0UE?. V0Z^3X>TCI/%\0/
MO.HMMH?)A_6?+"V.!!<NCS[NO,7-::1PR[3U!9&&065B0WCK EZX9;X2T18+
M6=CIT/>6:S+LL$WMTM#&.BR9L>+LC.DF[\F&MO(W!9P!VMR(0BN;+_%O>VO_
M@&C6ZE,63<%N!+ZM!P_:LR]G5#H$#QFCK'([YG@\&,-_83+E^F H.L^TN\J"
M?78(L>7EZ.AXN42/AMBLL71=&# #S\[SDGRO*!/?K*"D8<ZTDF;]>FPX7DP7
M9-HS6U0C6.%(WL(CL.AW8"=X>%J:BNM76+57YZ'+J[8E@<@N4\\LPY:7W5=C
M,[],^9>:+,1O/L0?+?AU$ILE5JUOHAIK1_(<*[E5.QZDZAF6'BJ=;DAH/[@W
MY1YP4_X?QK59 T["_X;JU+#!H*EW+]WAISV=K>U2+Z*Z3U3$'[779Z17I7XH
M?X*NO^79I1$Q>6$A6 _2!*?'-DH2)-][$&=JVJ\>ED*3<-N%?[Z9*#^/GD]\
M0O^E:KN@>])HJ5)8N>CWZ:Z<OY]Z[H=.@C%SIB1O6$68$<.CQ6I7M<'>D]T:
M$:^W0S%6B82=JT$BQ C"[1W2*]) %&?<RJ@\VYO:@V<P>XKU038!NI#!1X5?
M*JW)GH-XYU.LO^^^DX+,OJ">Y<05+$8=1165.+*I4)(\LM;UW=XO"\5I'/+G
M'_%J-07LG4B[^_"Q=&)LE(V[QZ*K;V?[&8$$1I^71R=6(@>$V284\H9*I;K[
MN&DKLY](8JRJYYNJ)Z$_VBEH:^4SP(?HMI7VM!&['9T+)AY+&+ W!>BWRC[>
M?/5\:VT'W1RIA$1:7R-.YYI=2K,JJQWQ<;S^0BZUDXO-S5A4K#3X-E55L%:V
M]3J*&B3DTG 5UJT<M61H,QC2$%^(B6@6^WP^23^1:[Y[ONRA_XC>13>BEOP&
MKYYR]HI4K_E?W-_3']R4B^IBA^ ?DA_]&XT=PWKVE)5P4L]/2DS[L.XI&-WF
M;9DG,O-S[]VP6DOSCT&<N;$+C2[FTHV6P95 ^RNY8H%=9P!1.6\$7L]%JPU:
MJ;@IO)!/N;G*QC63KEL\I=$?^*T0LG2:;AQW4S$T=#$R+C!F[#S^X_7.UTT1
MP(]1\O!?GW[5G&!F2^R=4NUR-EODV;1-\M"=>6>8;W"_%1!%@!)OSG=(;@'#
M,E6(%G+'+L)6-:,+FFI;=1^Z_AY>&87=W8&^G=AJYK>-%L'%P#C%)!T6TY)/
M#XY$^4S")[,'E=@E.VK\-D<M]B)J*2Y=*RNH33?2(R=H14U' 9D)]S-]^OYH
M*05==-^=1B6X]]O[5WG;"[&EX'K9GGMB^WS*_.GRJ<)7BR\8/_]T?_4^,@&U
MD 6L '[C00#)C'GD5=8@76>Z ^N+LP!U)9/#J=G/XTCRC8G#C//596M#0JP5
M1V7SU_!)WRV?D&<L\I>O9I9P+ 4_LR$J$[.WT 6<*2P-OP!7$R$ DQ6M+2W"
M<[/3<SATN#1$YD+ZV5X;7K/FKHDA*$ =D^$36BO@6?K,E/TSP!:),$UAM6_S
MQ=M%O*TP)Z@T-=IR+[^?X$B'O+I/ YX3")[:G2<*(5L06[S&.SA4Y)N*:PEO
MU2\]1@6^DA9O/QU3O;"6"MNX!WP6Q$1\GA/$1K3)#5(;5D#]_3XPVU8*&G*?
MZ;EU4J:$O@?8LKY!,H.UJL!C*",$]H5O,0KI=?UI4UPO;S6IZVA,*3/FT<UO
M9J2>A$<!R">G:6< 9S<>V."< "0B$Q2U[L9 CQ(Z@C1JWEAS:6 @A/8N+%;:
MAPY*:0OO7QG>'J<,BVUP?TCGS#:[E:IPM33GM11__LT5^5T$F27B,(@K,XV]
M&TEOREAI5CA-#%=*^W)KD#\#5V#@*TU9L^YUAE!H!TCWX6U6&&40G7\FR3<[
M2V/9D9'?2S[3W>9(.A%P!GB9S,#RAWJD\K^6)IMD!,%/\T%<,'2Z/IP9&EQA
MG*H^;LZ;':K6'#.;_?0,<".0YPH_:POE-ZJZCKB%U7W8RJ=67C'BXY>R,F13
M+:"E!GC=OL?\-/+*YAG@>D_+E /5JOD_Z>*.&(ET5Z++!6)0'T?_UB'=XN.2
M>Q&72)^T\'< LR[,CQQX^H,B /N#XO8+DFX>YZ^*>VB/&0#KI#Y*-:06TLV_
M+['H"GIW@:S\G7'(7&SOG?_T(0;/2(8Y(9C>C*E<T^2NN:?>^$=3I/:T!NX4
M63F-8%P',MM/R]V]\45NVCM=JOW2.1N--3%XJD0!CH#3T8?]E!8=U/MYVBKH
M_N&5NV]-:N#$0UZN.2'@[DB%%*F)>N!;(V+S/HD+R#7@3(C'5I][CMG_KW:V
MHPGM&0"XJ:)[$[S[FR^:;)^T>[HY_[?H4+666):O03#!^D3',]Q7((DIAU ;
M?N+31I/+J LH_-U/)V:?M5]K%'5S8^[F$C%\9'F9ZAV ]S) "?#]3LR%/_\[
MMO!G>(A#=R&H*6@PK3PJAD^Y=O)EMMF7H)07?,O/=[LOVA-G>_/W!R& ='((
M\0?I(65R'J^_$_FPU=RE.:^P5;Q+!TA-A,FD&G]LB$C[Q# 3,R#KD5G((#8"
M7O@%K+Z*XH;=[2:I$ZGT'1N5,?1M:0.NTZEG *,E'L+1AWN?TTZS;RVR(A_@
MW<)M3D/!=C049M.P:*Q]![UA,R%W&#CGJ/ FK[?\-ZF4]3/?0F-$/1?EXV_W
M8[\P2VX(J/M9[--VYC. %RWRO4(3J00HEUYQE$U?8D;&(;!>0#:EX9_WWR'O
M!/ARPD[<X3Q(9]_ 4M,\G^U>WT#^%70$]&(NT:30TC'M*+4^LWKW-%-;KDNF
M(S:#(^L-;&]YX1?'*Y!EC"PLFLQP&DJ^;(._O=(&9=N7KQUO?,@%@7MQ7@R6
M;@$9M!!5>169'_]^96;AZ1YT1*'%D:3/ &^@6H2];BZ8B\MK_G;?$6'F7@:N
MQ=!)A@=G@$I:G -ZLHH8[M.A7 K/@,AV&3:9J<Z_+BG7R=)YU$RJ1L_LZO'V
M^K\5#C=[G^>D;UR]5=/@5N1F3-D02#BV)?1AV#L8)[VP02!&PH?=FYG/%</(
M.@Y7GZV+1-S\07UD0MNUNO?)O=?LL?P!]68V"6ZZH3]-!A$/"C6<_0N9^SJ2
MI![G467-\$7.[X]L(["M2\WOB--X'<S\%BU^^P@3W[%UW=IQXIV,"F^%>;]L
MN3^TV%-4^:IZZR5FQF5@%RH$S'<&L)W_F(UQBVID+/%OT&L0IW 3)$)^JFT%
M Y0Z$KZKVEF^V\C8I9FAL5G%>#IX" J+UPE&1C466$F\KODF5HGJU#NR:",T
MOES&[A7@QXQX>FHBDBJ=)IN-#\,LA":.G,S1CE/&R6< 4Q>?8"&2GM6KON<U
MZ4,C@58:*I5OFG^$M/(=8%#5P*T^?,0"8RN$::.9BYB-F3X#L&F\^+-J+O@3
M>6GBKL^MOW$OC>^6T;N]>2?UP5[ I TD2.0E,.^U@:=@RD1IK(65:(N]BW-[
MC<(&YP'HE43[3F> ]QF@HCMD$'DEUU:P7U]+*N#-Y%'W36I53]@+QE&"59!L
M^,()QY@XI<14Q74[_6>&;1^2/TU19GEZ0<=J?$68Y55M;_/E[H@U@_3\XD*5
MV"=J4U[YNY[-5A2%?:)UQQG@8N.-_,FU$JR+F5#=V,&D6I=]7V]O]QUU'6G5
M>*^$&9/5HP\4[G:2/&5PW/I2 FO00ZP)N\I^]%':NZ=F^_>,U&EEF,8;TRBT
MLWB _U$WD@#M,+Y5&7^M%]16BA(_^MN+FY)ZB#B,>COQBZPQO@,2/L_JP2+'
MD7LEF9FRK<_^SNX+I)YP49Q.#(E?OX!X.Y04#_H'85T9-O6AY8E16QSFZ=4U
M&=8KJR!.?":U0/NS5GUH?;OF%JKJ[@PB(_=<%:I*3E:T^ ZX2,8=B+T8YKQJ
M#L.TA;37'J%[&=\HE@3./L<??G3$-#%,//AEJ>%\L2L/^)8J,;BG!VQ>!]7"
MY%W&U%*'2M5I*.4J=3XI@CH5IRQ/;R ;N$]36/^L#>S1+OL?3[AI[N_JN&W4
MZFNP'D6D_S]MX1'@MB6\X%;C^(DXU\;3YW#))$1K+A*1@KKHL>_FM$!^Z'P&
MH$<>/B6< 5JF6Y?G4&%N\/+D7:L/;PB,P167R#3[R"RW31<?5='*C=5'G] W
MM,1=AI)CF*!*,YU%0=S$+[NN;F66KD_QPB'GNUH]?AB5HD0I%6MUXY#9N8ZG
M+9:X[9'W4<=68&2Y?'W4<'A#Q75G#E1#'Y[=:2D;V2,-9!>O"^9R1'8BM1:#
M_JEM>TP,.P/0U&QY^"W4K72 A/&= XT>*SL0>L$V1)O2,GGCH!3%!N)<.T%L
M_M-5D@5_^,/KI^7?-3;$]1BNX,4_,@(GKR>N4:=_B)$Y9D[JUHN@EB=!H*OP
MF(/R_FFEUI4Z%].Q=NRJIGX&5[*MW=AHDB.I5%7V.*FE#B<5!([N(22XEX25
MB-16CCS15L]$,2?P+GW[F>TH@8"[\/R!<&O)R7RW3>!X44#]GD: "?IMOHJ]
M99X)UGL&8-]JU%KX&AT=?&=Y8ZN99Y1?V*<RJC5& (%]&&._(TJ=5'M.!(L4
MA:";^(EN8(3?'(!PY[)%V+R][PU)9_?OFRG!K4K\]8FJ$SC[K>Z5[L@@"('_
ML)NXEM?MQP.?,B]XWSO%<7_7Y97&\5^JW_=)/1;K8R>*_WQSQL7>[G;9,?,2
M?I3/*C7-X=<#FJ6RL>FQ+^4=1P(3[REMB/*?#?BWSR;4O C<3TVKXBM[\AP_
MCMZM5T2K(+1IN"'43B?RP8+_TDF5]2!86'=BO^@;HUEYW/+P[NQ"?4VR[>O8
M$&,#=1H!DQ7V#C2-?_>APFDV,YP1?9/+9VINU<3 GMTXYO'?OQLILS=.,$T:
ML,2)6,K4>1C!$S'X0ITF!C0\4N[ZD;GQV'&>)6QWGG()P'^::]WQASJ++$F,
MQIP!HODNCH!N$NVLQM-3?GVZI>R R.Z:WQ*[F#=C?/I/[?6E[=/OD'=D]S,
M=2,D\+D.X=+"VA:_AUOPNXLD6@ ]93>O )D%4Z5,P6E -+25\35G %?GA$7X
M:\?RT"7%G&'/LK=Q%J?I@(.^Z,B[-]\6%0R+9#_8U>:_;/A,1EOX.U534!'I
MG!E;'\EMW=CBHR/2RIFDV4C/^,?^D9/*_' O[R,CR7YI_UI&/ ,Q@?2 \F>^
M*B+2I(TKR,33PA)\HAA>*?*U[R9?N<T7Z5;Q%8?UBQ.UL(%S%57$R_!8S89
M>-E8;\ WW_[K-Q\'NGA;Z=,9X!=*LN"%.T#-;0&RF4?P.OPQ@>BB"(VZELA%
M?^F;]X]X/BM0XY+YZ'Z<K>OTQRGIT83J'Z<_P>=$=(/2<_XC[C-/[>2'F#3H
MK^$#CO7PO9'Y<:EK$:!8L.@1;@">HMHWGIJ:ZIU3557UCA+Y)*#_*,2(Y2H
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
MR5AC""Y=X4+*6,35\Q3(<]TI<-FQ<W+;^V=.:?6Y@/K4]J]R1&P0)@^; %;
M-_?H$=%P=N]8B25V]Q$V.(C0).UVW5$JV!<W5__+G\?5QNI9VW"*=E,VR^)\
MC]"@I9WJY;27LT%6IB/OYPP2HZ *P^I<C7V'::>E(%I8+XC]?!=T0F]\:*A]
MX#U ]YO6#?G7(S+K-TZ-_54^X^7R>^#;06_.G^L8U+]SB1A, I+OH!!&C2"C
M4A12$U$O_)XP5?!B[D>..S7WIWVD.M&$)$!$=U)$DG",6X+8O@&;#I-MP=KT
M71N!EL-G%I$M/%>OOI.Z2+>*4S.A(:HGBT_'$W08^Y$Z]&R90@U66<@>^M45
M09])UZ!,JP[E>!X;/NH/HB1G5<,.;?D':;F;ZX-3^9WYFS,E/]RP:=V(*<@A
M84(OOG1M=Y6/8<]HJY']I?3T[="4I&=? 3TQ5$OX[R&[BUZ;P"L4VDE_D)*<
M&^/:&<!ES/5>['(<"$*B 8=0[_>L=7O@D0N9V<73/U,6FJZ(W04I=*2)-[QZ
M/I,T-KT'JMIG;$>$U5.W-SP\5)NQ[JW-/-2X$$E9C\= W?HSQ8@D$!;,W)Q$
M+/2W5*=.P6_R?718U]QX?0;X*&SKMZ.A;>V5C[N$,N\I5TMZ)_JDN%!-3\5W
M.:,J">9;'F,T+_XJ*Q&V:30=@**E7%N;NQ3B$VPJ.%BXT?^Y=SIT[/G\&$I"
MY>@<4X=F)-LF@5<61W<;?T;E/>%EVPVV%6[,.:E9*W],\/@\HP>^OF&2LG@.
M/!*_12L>7NN7=/-@[N&),AJ:N!6R\)Y17R^K^;U^#!8GZ#UH..6G%4JV(2I[
M+$R'$Q3#;7Q'.'=7<U(KWU#>>OTY7'U[8RR(BSC-4$7G;].E6,2[Z!S]=M+B
MHKNJM#KP7_2#C,/+NK"M[=MF_ E/ZE46I=2NWU\7ZVKT(RFM=YL[(ZDXS ??
MU$RN?'4,0=73KC=_ZX9XD7]T4( >;F%J1I1*]\OL)HQF4\T,BHZS.S0E :[;
MQ74%BEG>,UG-T]3I+[R*V4?WE#U[P=<@>\'G.6>C8 .!_^0 WN>N. .T))\!
MN'H)R/A*Z%6B]9%YS>A6;CH')('Y:;'YP[88JA$!^VEYW#Q^$,&,6IE"GP$N
M=A/USZEBC2!&"3X/%'AQ>)A:^SGE<'F8TE6ZDT7-OVEK/I$]Q2TFZ8I:3!;M
M-KGXO*5+U6C'%W'J<+,EF9@[+Z'T09>(YE!V(M&9ZYU,>QZB<G!G\%C[^,+1
M[+F@?9=^0E<'":5<2&OA8R4Q?"\XG/X84^/"_9JA]_L1@+$_?7UC'W6QEJWF
M(IZ5R[16"5MV;:P$_O$)]"K4HDM4J%[G:]VB!Y\-3[=L4F@C_W9W5>K.\AF
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
MES]<EY,IID^40^8W; ^!7 7P%AE'B9UT2_3AS?0NIM)37Z;[E_*2Y%?%B<=
M5N.2)P=63^)V7;>.PUCTK<)?_G]]3 3SA,VB\$;H*"@=W"D7;[])*OJKFT6\
M;XZVKFJJ,OL^YD9/)2/-X</DPO0^)D<I*9&&]8!'N(VSFW-9IG5IS4M30K=G
M2O1NDF]@S>O&^4=?H6*=,S9)[L96/':OYL5SLI*-%J=G<WURC*9WS:TJ$:NS
MK+L[F]_. )<M3C/A#CL5_M#.M.@%)$O?!RZ[,D^471W\L<1CNHZ,ESS\S.Y4
M/LC\HL'!<AY<A$<\_>>A%-'26 <R]C!Q3S=[N$>6_#42K\.>.A%K"BI81SC>
MQ9+3GXID1>TROO@?W\%63H;@P%>)*B-;L-MCV)I+MOS"YW[;SE^<X -+M=CZ
M:V/+JFR>)+,NB?9HB@94#VLF%QB6R--YN#1'&S\D<&/9/X!N$+D-B?&X63MU
ML-;0YM0R9=TZ,OHO0W$'QDA+O.-"H@9,&C:$8J&HG0%:'\(4UA'7R>H+)09[
MNF5:$1K#6R/>YB[I2RGTP?/RE#VO-)LP#CKJ5<4MH]./I&<#+S'(&_*K^)]?
ME6HI;68Q.ODS5[<2%W[TW6%LX+CY.O75O @$-$KA)PL3=5ZRA\M]=L'$32_&
M/QUR^2/.W_P 8[*603)9J3,9WA'$B#_"SP%M90=E'6??:FOJMP^%'91#&_.7
MW *A]>^-EPHD \!?L6B:"IAR 9WRN/2+W54G'+=*E?WPT=%+CM.4G9Z&&M;M
MJA4H7@<^/6U&%,8J@5^CIA2<OUZ[_39>K#WMI%P.DC.C_,^YLM]"L43WDO"V
M],K2F[RUIB#6@H=X8=SA9SG$];5ZXU]TGU(G\&&UT1,OE7Q JW"N"8)K"@%V
MU,Z6R8:'=X.9S$S_F@M6E7R8BOGZ]/$/(RZCVUHM5&D2$"]K.Y?]\@4]P<$;
M6)[2:MWX-,(/D;H_GA3_9M.QT*19%3WUX&P_MPG,N4._ANVNA(3+<,R(@\/
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
MAHXRAJN2/LI_C9PQB=[[=0(PM+?^''@_\OS/4H"?;-25A(^"#MJ@G@Z(DHT
M*N21UDID<;UT]\1(;ME8%Y7@8VL41U )@_+;"P^R.6.+0,$FS=6; @<F4+]D
MZ/V]-)S"=C/9B387O 5FK5I7L!HGG<?BD>'N8A8[L.4^KJJDBVLA7) O<B$3
M6W0_./N P( F>O(@QEI$;SO4=R0P.R>5S*INUH2\3DZ8LYM]" XU"%W!*Q!?
MDL3(*C!/&GM".))MJ^IMYIV&A@<+OGXZ!'U%AV5-O"$##.!M.Q!J%H2[8,6K
MDXHO%U;5N$W657"F' S+'2(.&O9%EO<4&(K,NTK[HPDWN[' *7>R\DIYA7[V
MD=U("HH9,03&WU^($):-=_<D>A/>T+A;9I*'JH-$&[^])YZ^]V@H)-&!: P5
MA*&6%+:7Z(^^1;"&I9^'WUUZ2_F-F6D070V]A3^S]XXO\,$B,=Z!D9I.K2C<
ME=U6%M"556:Q6 NSEU)2O&+O+W+NH<8E'3L;03!.A6-E%%&4KJTZJS[475Y1
MZQ&B?@*8V=!!7B+)=:BE>):MF*2R7*HVR<OU7$C<6"#B7I->+QH <>!_Q4CK
M1K8TGI<USZ.Q3%C:Y&CV*]& 6]>OO1-]"I0^%P>#G%$_-59"Q+2!+N#7.C#G
M7;+.X!$?4X,A"7;<62@WX$-LW+W"(U7!I%XU\7JC2&#%Q-8) &_=8X7I1$9
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
M%,RY70;A0$M4F8Z-YI5>S?%*T-2_A>,<*S/ Q^N:-";;11>FQP1WL_S-*MX
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
MCWH#EUL$7YR&W6^#T,FY7R-O4Z,FV*C&XGF$;X9T(<!'%Y2;-%_EC(X8J$L
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
ML,%,?[\O^M]>MAZTA6:,Y+R5+[E4/;!UIP>V%Z56UUJ8HO;K-2?GWSS@G)]
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
M__:NGU6^D^I\>KA6B&DRQW^0;X$F\9OW7]7D&EQ(8B9G OD#9+T4+" )_Z6
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
M!7RPTXFO,OM2\\OE<GFC/^_R!]7J]$&61. @%5-'S60G$[S7DY'R]5#>I8R
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
M'_K84#R[Y_'U)9E3*!^_2TW"Q<<<6NTJ'MJKE8M &U6K4^#D/^ T3\+4;8Y
M/C7?BN+<$< RI\!@BTX;ER\#4KUZ#NZ>@WO]]MF&#-LJW;ZO%&+?8;%?>4?J
M..,=Q*P4S#(>\S2.U'_7\ [83S2,O"1><THCAE_IIZYQ)+ZS>L:VT_,4,$#O
M;7?+C@\HBCQ!]LF]^_PM78 +N>P09,S*C6"DLO8FZ+KL^T1TMTQW5/,MO7+)
MJ-:= D\&[R=":T61#!61MSW-SFT]"610-DAY%@"^--)$6J>\!]ITMXD8HAC@
M6$W:(.'>F,+*Q9WS.'V$AJ8VZ$P<V2F5:87YR(6(!+?84.R"95>V'A59*>U[
MUI6]V44V.J%XXWV;:/M^/K'-K=4YT(JE@#Q3 FW> BA28#%X"1,=8-VZ)FVK
MJU4&,*=(C<,I\K%G-@_=M;QQVEW*U,/QV]W7URXY.1V ^0PCE4%D:<+)==B:
M=99$CNFD+ .+OSQL9$<)3NPJV$V_FQG^.[4XY&S%TJ%TZV_W7ZN]D<XZ*?S"
MU>SWR#^E'Q-=$'_W=98U;#F[>YEF9G>OIQ<"RKX"2\(*AF^C1-CFJHI#*>]
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
M09&1<[?<W)-=>%H#?/RR+=L^;QQO^W041LQ@V )B3#^T9C.@Q;2(]'.80)]
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
M^",3*8S2;[]N1V*[<A.>A!T[*/HP^7!^Q&TQJS=/S#2KSOEDVE\LJ/KG%3B
M+8Y@,!E*O,U(9L>9'.2\!W&_OM)>!<QUP42,#++UFKM,#@[7L_41A[_I90P&
MS7PO55=,31+M6+)552?H31/(*05\[.=PO_4I_>TB $Q[S,<[Z_=:S&G,3O/S
MS>,J]%VI+P*(R:ZDJTW1LM//]WK[JBNG'-M]9?]KE>4/(+68<P0O!8%6J00V
MYRKAC+OL1,)5-F\7.$T5);$+/4VM*G0&WD\JK=5TX5RZ!*'IS0.$T\%KIQVJ
MSFKKKPGN>0T' F& 86ZGJ0=_)XQF"YV>.Y<FZ!O;'<QR")XG%L:\W'>\.I[G
M(H3?[%Z[G/.R!R@T>_[C%$PLT)T((PE'ZCO1^>-9!V]3Y<_WVA7,G1]2KWH6
M&WPV-#77T"<]PKHH0)I/2/'HD2NN,7P3^>(\0,/_" 7? +.IVZ!!-#'#V'K"
M/:/]S&N<3S A$R'TH=K)HG$C5#7+A,XGMA1!(R:\?H#@"VPZ_^HS0NZXS7Q/
M<=?&#J:-X^\@$(-(;+O/=2SY-:P>UF-\@KRP@F7R <AN.%^HX!1*EXF5!K;.
MQY)Z-U\F6FNNCMK'AHW.9?#-G- BRL"_)"3]LLH>(P1B <,1#TD[-;/M*GF8
M0>+U!)CF%ZJ6^ Q\NN>8P+-)QE?AF-B3^_EN(BLOVO,7<#XH[ 8::,L,%,WO
M?JM)Y-I"UQ>#N-,)2)F@'.T$IE/EL1.>T@Q6V>X"&TG5,;XTY53QG?9J0_]$
MT JPBK=?'L!]88 J<O7G7'7L;_T5/%-TV:T*3\-1E0H.C?V<O=WS1>%5T_AI
M(X4+;HJ!0GH3HF\T=&YJSV/,,W#CS:J\8 290XD#S'9Z)*X'QL\R(S_8NE4+
MNE/.G= M!S(T#X./N,USP89WGU_<HY/5?2BBX@7PJEFMAS$SR<RS )RS!TM;
MOD"KCB-:<\0 PUZ":&C_'_5'I+5-*@^Y+0T5-V<^KD$<;WH0.5V4N',^'3D%
MHGTC=I"*9\G?9II%XL\ ^G1SAB5(H8GMK0<G@J^W!- %V[\H->*=A^N?*%]Z
M6S 87G.S\>:>#&_U<Y24+%73JPSGV-:]+%LZB26AV+U]'',7<O>L"^!((74*
M0OG1ZJ];'OO862[8YZW^'F>9W_1MBSM7_]E4J5W?.^-'I3C/'+RIN@LU(T8I
M79DK#^1"7F%7?@;1%:F^,P^,^<^._60:FWQHSY?+6\YISCVH[B !>Y/:]/Y3
MW+S'&B$'6R=9 D+P(J<?(SGV8Q!43NW',0++Q*UD7;_QEH YE%CDMXF[[EUW
MXF*>4Y<N3HJ:7!24NVF9+'[\D)7,H1<2S$L6$#2HUOBZ0*4?.\1R!D:IA(=P
MVJ7!'9&.E)Z,XN_' S \-/X8W9/7:EISJ2B]9?OFXU]F3PS(S+2+1W^%[/EV
M]$&V2BY-:A4DZYWO:/!>O"3K%+L03DZC1U9WU 3E["%72Z%5@+B2CCJ79!?3
MT=XRSYCY(J*;9="MTE/W_7A_"*= ?O&3G5=NT^OFG%?[0#?<J<YN9)THBHQ
MTIKB_6CK'= $ [V7N@<I0>[I/5OV[][M+C-Y=J/":V;WQM7$>>B)XS=__MP^
MF_"O]E?[J_V?T22H\$8"2]R<80\2%S;2^1R=?Q5&E_@O[+UW4)-1^"8:I$F3
M#E*C%%%I*DT1B8HT$2,B78B**$6,J$"0D"!(%Q 44!2"@"+-2)<:0E41$9"6
M4)*@TB51"9_D2]B/W]X[.WOG[NS]9W?OSJPSGX&9G(]SWO<Y[WF>T]X*2'-X
M1SWNR)<9K+CZS80HY2TC=\+/#Q9P[<KGE&8^^3S^0[^48.Q%W>]3BCS1?1SG
M)?/SP!^>Z@KK]TS'6XONQL:1%GWU=[MZL#U#*#=%OM8KFS"/^6*6%[S:#91_
MSK;CUI/\'='L0$"X#!,SU]6FP"2R>U,J0E?%IQ:<YV^G5-V@1'U6S.C5F"Q_
M41VWOPA^<'(O_T+9?WL3\1/<83P9A;^.3B#!#2#YA8^>WL9JZ$6DF <JC(*2
MS,?VR7_GK8[>*?69=)3(2Q0/>Y<9O&@G'ET=P[<6*O_;;8O_EZKO <2*[&>1
MU'2V -#,3.@X]R9R1K6![9;T-^^0A7CKDK];CIO"&Q%R!NUWPGF:&W%K(V"]
M80>"2F6'#FVEC+YO-.5(=[SC.K)B'/E\7/S\Q6[?THOC446^V ^9W.=?K"^I
M:I7MU+T*DW3[;R[G%WF5NS5%:C4^[%<-_'U2]:;+%;)[6H%,!=]J[8;ROSOL
M/Y"GTC%+;$-N89L@*,HD+E^?12:9XG>V7+@;Y=#%4\W(GNG<J]V0WO](3T;$
MZT;_/EN,G*U :LO*+E@4\G\YXOZGH+H#-TQ0-(%'S\! 9U:LW= N4B.3ESUV
M;F*R\<*3>*>ZY-_"Q\J+A.,JT[J'.YW<7GPOS*9\G A:_'+CFD$\OXBSK =%
MCO%#I_6)RW1^XJ]YXF<D@+?M'MC8E:\*<8.L7L )TE3S0.,F[)1L)P$X!$E.
M4:XM;U=.(N&O!!Q40F[",A%ZF[#$6?H 5V KZ^ZW3=AWY'"3[A]9'GR0=8>7
MJ). 8/J%\.3PG1N6!OA! >8<3_PMHB,=B/'1P'\UQC/]$#P[!.,P )'C$X>@
MOQJ*^"?[]U<R"$$NX2_VXB:L4(0^ "I=Q,?!F;ST%,+?$Q9'( ZGF\XL^J\K
M(@FD64+5_GJ&Q/1&\DYQCQ:2#B+H7+@B8CX& [U=R U.MP4118PYKA1R!Y[V
M:1;<"U5=FZ'#Y8=$I) S5/58GF9Z N*OK"&H"/V:@3C[_V(3MW#.0>@G7YPV
M-@+X1T?';I#(K3LZJ%W*A93^B&"\D<7Q<K5/*C&8U8OC \*'U_D?E"95)B0_
MT/@^4QL[M'_U[,T/\V2@G\Y#*"(E;*5US#.=DMEWW&X'Z$=$UJPBI8(HMG%W
M559EE]9+@R^_GN@+C;RC,Y6\\VMS(UM4!-2%#"A!'ZLC +I$4-YK=@R4[V4G
MU46=1 JD>*O0SV:\P?V&2Y(QZY;GC[=*TVIC+U].'8@R?CK9E4Y!4,3:/7.Z
MD=%M9L#EHK,:+2R=!R;Z!J,V-P0R&:-V3QY3!7M-@%+(%F<P37V=TXK<PDW8
M=:+,<0H^Z2]>)D!QW=./LOQB3U]SP FK+U>RI2JYP_MC1TF&B N(L/(.??P5
MA @FG"=Z'(^&H$ )V(CBM3)SUSO4CR2;[#,M-4<MK"L'C\J'U=C*F;UKKIJ\
M0-W[X>RQZ8SB5"6G[^<NTODLJGHP:XQH2QRP!+U &@AADF8_XZO=.M#QEGI
M'>LZ9W=HL%4[#I8V\'FP8F=TCF?JU%IWZZOD(Y>KKN;T1WTZ;RHN,HN_3@)T
M-V'M \DS=1!^WB7T2L;EFP"ZK+P;O+'7&#C#NJ[P;3.Z[GG_,/'&6YWZEHN:
MW#%Q;*-I_.\9=!>>&8CHGD*R4P$2)-&^DF3V& %+W7#Y"H/0L1<_W?6].,>I
M7@]_5_5@QP?O"3[DZTCNW<J"!9H@.C9A\82:WI5N)N7[@@^"J=.M63)_;ZJ
M:BZR*VB^VE9/,Y?L<>*#D&V/V8MHW!O>!+Z^9/D?1Q!4(,PVK*@Q)HRGM%#6
M)0O9KJ:I=Z+*%V6O?ZRJ:4#F1GRGC)]H%_W<[>*1\( WB&=ZI OANG(-XWF[
M>5.$:IUN5!Q.B.4R7ON.]6JE[5DY=6'=4?9T-N6!N?=*%[NZ6E/>Q?["D\O-
M^T-^CX%J_,RQV?[U&-(U26IY)TIRS?MZ!XH?I]7+0";QU(=6* 'ZP10'D=%%
MNUYW.D>5990ON[+KQ;XKYG#@<#B;P'VV";N1#FCY#9!1$[$,FSC65FJIG:$#
MDK;,HDX?\;9TIV]U2F/GZYNRW5<*]??O][(V;S[TYN%[6\K9O?R+6U>*#/$Z
MT!PSS&-VQ? :(=',1YI9GC6B@WQ@N3L-M^O/>L7MB=V_'V!K5^KE/LQH_&SI
M)..9M^:6.UEN;)]!DC\^!EY#Z$$EFH\E$L[E. !>-+B@FF_7 7?/:<< [LM(
MM8ITB=3F%LFZXAS]^.U:>SE1LEOS$-A0IBYONW4Y* @TXW*F-9DYRR_#7P)I
ME\URJ[VIF&#:4^%-6':RVDXAWBZCZ18CGH0^<R#!& 5HK,?4M<)/U-2UC%HX
M$0?*O:G4_?:1^P.-3J;K\CU3NI)F+%A]LO!^^[9HRV?_U^DE*')<(P'[>\G]
MSHR&Y4T8^FV &TYUA%1CX4)'RDWT"A45>P=/%EJG3BF;\26;5PG[QLAG/ D"
M [EM+4=IZ)1[.<MS3!5:^$.>$=;VZ]]YPQ9[.@J69[D71 C0ZAJ_&=;IEGLY
M>&B[7$OCUSV[V-SEM3T07(= >$]?OQ8.Z"F"<@F=31:ZZ"N6^MW[*5T'DF<H
M&PL[^>^GKMP?5W5%@BK3D.Y<7PFF2U*L& /W-V'!C: (PQ')?C)FB/4NE.1;
M:*KX,FQUX]*SUTU"IQ(%,W<RX!IB810A1UC4"$<":N(ETG44U7?6+87D=Z1%
M8A8>C]H)BBN!ULQFAN5SB;>%&MZ-^5,OL^W>7NG*R/M$R\I0->AQLQ!.0]!(
M!!AO)VZ"(KG,QS)B(X!52 DF6^J0ZNJ^WG5TMO[J&\-9$7?==Z59F=R0N6=_
MYST[F^]7.8NN;S!W>-N3*2A0;JF#P'1!IB :X(DF4/Q6UA!3J$.*!FQXORT7
MJ<[]?$*#_/"Q>,4A/ITK&V[0%X2->5U;BP3^F[#QW('9UH3$F4["3IS2TNAC
M4'WT[H?OYFFE99,73V7X9R]M/_11_W.AT?833W^F:GTJ>/)(L@AW!$]VM-!A
M(MG]7_&7CZ(F@AAC#T$T RVY";OI_QMCA!S2J8HZ@NK+7@QX:[+7L=CID[C?
M+P5M ]A)3@["8>QG.J@2P+$'--G]P!&6&#L+>,5(J42Q'[>R-!;P*OCZBLS1
MI=/)8]A[?JF53;/+;#'19D&80J-9W._.]*%%&!#+VZ$$ 2L:T\ 3&82T=R_K
M>G=ZO'*Y.V:X6Y'-DV->*TR0\(O$5-=,EA1G>';>T5"/.77R]B%=?I[$&VX:
MN.\_CL/I6@C.DE]7Y!L"K9?R35C9S8>G0MZ8_/2K<7OT([DWD 4KSFC]$1*K
MZ9:$)_\@B8 NLS. ]K78V8$=$WW'B#&6>@NYV<U5]N[!>VI;JV7JS?'%%ZFO
MD> :L09/2]Z$R;28L7QY(OLXYIB2CH:0_N!@9JS5T![_IU(-YE'%88HBO2=K
MJ*>+PW2381N^3L.U7!228#]2<;FIKBGN96/]^T2+VSWM\3;.CSZ=V!5+%FI!
ML(6YZ2U;:Y<;@$0%5H!9N9+:$%N["5-9H@S$!<\^BPFXY[+R/:<T\$>[Z*Z
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
M8QV(:(CN@_:;,)&+/"76SY<E_0Q)Y:7]9?5?6]\2[H1*9#UQC_II_[ ZR4/
M?\<:5ZHP&G$43Z,GDH(EI3'\M)Q.PGCV;*>Z!DNHDA5(6>30>*206H"MHL5Q
MK\]RZ,D,8#Y]V!"DEV%=TS?YCT*D4X2W3J@+*X":8P9U6YH["J="CKAE5.:#
ML>UR=1JX&R[^6+MU^=6?=':S>LA /80YQTW8I55@7__ RAJ- .P7!F6]&#FQ
M:T0IP+;]-\:30[?MBF*->WM\M,C\/#KTDL_G"FNUKZ.=^O*/!S[,A*>*&X)&
M[A#;KM)")B&11,N%"^)4+W[8U@^%/'FL#V_P7>Q(=W;>3^1NM9,1*?E\H9QV
MOKL$:N?L "@7RQ-YR7I.Y@ER8\#@EV! "G*T#8XII[N6ER^PTPL6QSQ=YPW\
M&K_MJ96\-NC=N?>NU6Z!^RH&:F_P9#Z>"&X"_PX.RKX=8)_;.I#OBY<-F-[-
MC/I5_L9]TG]Z'W-MI:U.K7\N_]')OE)^M=[5X@]/;17&:W[^NI2U-K#\C&.,
M6)ZBM5[&.LU^!%&S:"4@!BF%/<G*Z\_TK*\I^RA^ &TGE=70D#P-_=MY FV@
M@B%?#_XR77H<_H3 M,5/V/)$Y3EZD 7/0$)@AF+(3N FUN6)D4FU9@_/5A8%
MFN+,F&O+N3*I-FQ,][)3H,JG?VZ$@]&GK6RC*W;0OQ-J$T!9.$]T">(OY1!P
MDC$S[#7HTQ"X?IJU";O/VS?3]P8S1@\K"1>M,.K3[=<[[]5G(>2?':"5*1+\
M7?:4-N;3LK@?M[XPVE*>&]>BN97B@EO9IHO!L[>F>HJQYLSTCDK)]DJ3,6C
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
MTAD!RF\@%;"ZK=QBTG4DH+/>*PD%-)%EA8"$+DD)]P#3OC+/KL]:3<.U2TN
MX>IEE;.J7F]PIV_"<IDHX&C-+#Z-)XLG[UJME80MRI 5TW@: 3[*+''V6RO]
M6.O0" T%U;CPZF13>%?UH?R=L>LERPZ^=$<C]B' O@2S8Z?O5QK@5_ Z+9LF
MX.54TJY!3:.:,J(/X*\2@;WXY;RM=7])CCOO"T&:>I&95^R,#RKVO-N/?S4@
M*IQ-B3SE^NRZRZX'+L'TK*+IBF) N ,/'/9E2P(?63D,MPY)T0"$U.X<>E;Q
ME0UO!W+X 9\ES\>3*G>'_G+UTE=$?O7IXGX4I/:,:I\L.@#,\K8W%@<2:A"@
M*I%SE?>!(,X(0B50TE+#&1ZUD9?K*5]65RA8-E4.^T;:Q.M-EBWSD;FA&@*4
M<>[T4<_A[;C";31Y]O>HO:'>#8:IVVTO70?T'/*&WWB7GQGM)EFIO1\6I<,Y
MAB=WHJK3N_&4CE6V&;#*M&64M",@1%^=#,P]A5=I.;(C17[EQ8&/1S]\OHZN
MX?W<=U7HC$W'GFTGQYT36"F\'<[<QSA^[,FOE;S]N+X9^%W#>)SF2 YRD&<6
MA!?_6<6<^E-_>N#F^H[' T+MJ-O=+879[N/B8_>W1E50B0Z7QI/#(=@2!H&$
M3E-%UJ*/=B;U7/+&H+;#4]]OE3Z'IRY*?:K4?"1YLFML:VUO0CDT%>KB5@S!
M_JDR>VU"$O:827G3]ZZY"S&'^N;#CA('TRMA4=8<S-8Z(,D/#>@@R1FL 7;,
MUM'.(D>!V^,$4<R5)6?.N4=QB1&#.A,%,C+;C']WI=GQ)1TF/L690^7Z257I
M9%)LFQQ0#A&Y&(0\-L241.,>[9K>-82%T^??VL8N$R]YT+Q=YS_KKY3XYUT\
MI?9E2*F^7-/,!(H$-OG>#CP)N\9FTAWC:E"0J5=M\2+[CD$:-;TM@EB$H"4@
M)-K@P'7>]G6FRLFO%HJO/2>""&*UU)7 45TM$?R=T!N5(7J=\-8 ,;7NFHS[
M7_F.JT,=6^#OUAPW#B+-3&="= ;O*ZIZ+OGFV]KY5>4^C\&UH,OH-_/K]ZU4
M(I]F/=4-]KOTX<O#'2YI.P[PH &';(_='<0:Z$+4""^3F88]D%?Q- [&C_4V
MBV9OO!0)EU ZX7^Y[5NH;GF0?\DC7?D&V\P;^_22^4S^>6QMFAP,-1SGYXFN
M0HT3!%289J?1P$E0A2Z!1 W6[OQXP-JD<H!0XG4)?UNWD:[VJ92(@X+WT9;3
M)"D2+8\@@]L'I+@%([MY6@"G8AKH=&N*&C/+.>\>4/TOT\R9<) P?*=1]?%Q
M^&5>#]0X5]+$,+L)F&6@)PS/,PDIN)U8/^8])9/5.(+,W?E@$T,M0=^0&TQ'
M8\5;*Z&W6';V-FX4Z5CU 78LM]'"B'EGUB>)8X U!Y ,?!)!KFYE6_ ]20'
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
MBNM'U9*6?U0 8EVD'19*)?-N=WR"FLZ^]"NKW?Z?]WJ= 2:V]GKI*1WWIBG
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
M82>7\">4K""_JQX%L/D64TGFEO47XZHYNBWUSH;U1>8E$S?#J[SO:UZ[<*1
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
M]$$4I3$3=HRWK1DM!NZ#LF2G&(%@%E, /89,H>!H?*L]N#WH1&)Q<OGF@87
MWO:.SK:8B(C]$BL'AW=?G+8]V"(;%8_XQGU.BR-H68LCFN "V6KG011%""'!
M<@1SJ3W(/1C=-X8"6F%&==%W6SX4[.]-37GULE(N,$NO9Z)6( '.DIMG.+ [
MX>3BXLU47)"WTI0$QH=.2/F!.5S)VM6<0C/]CD[X,6TW;",.B]TY\6KSO7BJ
MG^^(_^[]ZW  @00U4)G8'=PO4,!H<7UC$5RB[UA3<?X^&#.GJM__-B+&L/76
MHX^;'NWN/Q..R6H]";_S% WOO31(@.-07#9!8F2R;V/@U3CB/[R['005PR9Z
MXP C*@PJ]7M"Z9#.9;I^C^'(G\FD>Q+U$M:%5Z]/)FO>ECEW,RV-X(@CWX4"
MY[Z+@4<$UI4HT,4FEH5H3L.*PN\IV:^R]:-*CNX+C'\.:-O_?'CE 9_ZT[-/
MAPLTXBTVA@A[^^5 !TI!!Q$I@C%_>Z5W?U#E-B1@">U+.IMV17(BJ(B!4HN8
M.E1VQ$5^W\/L,"X#%'G"+J6"^WE5UNR>W_B$)H<P(,4*+.U7 FBM$>>7:#<Z
M%A-O2BC?'5V4D\A_2"LTSR]FB[![<"&$5)Q8ZR2<$<2^M]X0G9.-EVC02"&Z
MR_%'=Z30=DNN#I\OY/M9'VZ<P*?0>7]DI\^#URN)#$%V.DP>1X03 B\*,2)
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
M^$;@_3M0@=<3=R\4.$T 3^0S4N=P*,3.T,]<S*2JV=+SMC<VS'=>TC/D152
M0>CNKS0_]]B0///NMF::^WL9 N;[9])B!L..?8=7;8;;\R?G#@X*@WXM-9PQ
MAS];^6KSV_I@?]GCT+MW\^.*5X6T)0\OY56.':!]4#^5P)?&O,#299<2R$TX
MP!&I@CD&FM#Y![$&;UAQ%(=[ "Y-NVUG5W/;G"1<[^6-O&,TJ5/7FN0NW$SG
M/WPAK^WW[![?VVH13^.5X[3^]K*;_VVO#3CE@$8Q(S/8%1+P#VX1X4+7')3_
MXXUF(:I"TWYY6ZN7GWC\;GU>_-+)5]\EEVW4<E6=VGP.7N!L<H:@;;8IVY!P
MT@(_A43SHS2H_/Z.4D%?6G+)=[QI7**5?+%EZ<? BMH#_Y/OE1(^\Y]X+.91
M/6G@3C?X];(VM>K1\G-I47O-YS7NJ,S?N^G(Q#](H8;Q.]_.7V&4^VQ#M%DO
M%HRQ"I,0K"+7&B4P*!X9J^8:)QD3ROU['Q,B4H^.(?^Y9P3?TVI&Z2>=SOY!
M7=.!N=J0[=KG.IR;QK:8^?N(;F,_/F%W<D<H+,[$[X4=Y\SBFO'#6LAUDD+(
MO*+VO*GKA[,UB,[9^@W7)Y\W71 [\#?-/#;:(&@8@2D!GN4^:(W1Y_[R;B"\
M&E_S_0W+Z!U&8=7&[?#1QB##R8+)_$=/3_5*GG_1Y;O7/GY<HE:"\X9+KO#)
MT)T<PZ^$9D)\+Q\5GPZ7,PS?WQ8,4T;O$/+H:9E)W,F,_C/RD<%HE_WT\O'-
M-?=K P>ZJ'U?/V8IN'T\=_%Y_,.($YK\\_$("C(;#H0C>,WRTKE??9=#PBEA
M#[T*I#_:&!8YLJC;ICP14#T24T]4J;SYT5;2>\DZQ\YWRO(D- RCS*O!84G3
M$;0 %',/=AHGT!L)&%/7:D([8$K _'#PE>*98:?V=16S<TU=G>U=ZA6U%[]Y
MY>:>TBN0(9!KH8 W:D&-LQ=1,8 U08>-W5IIP5)U],\ \W<B%/=^.J2\?_;H
M3O?+2?L?R 86N'Z>,*0WLE1]@*T96W865IP;O:6[XO1'MR%BG&-+YX--:14W
M8XR:+BQ\^'#<5CG9:UW''VEU)WV8Z_@]YM;UX 9G3P< '^/HS+@O>;[#:J%O
M;)Q+G%CT*<:)AOYT4#7S <>8!GQ_2+0>[EK\9N/AOM]+V+ZZ"XFKJ.&<W2#.
MB2F7@=4 ^0=&4<)?C7=82A'959'JYQ!'[$Y?4?/-T/SQ*N'DN>N\$[@.0O/*
M P#'N]4$#VQ,QDGU6R!!PI!3V!;J#E8$K1&'=&J:>=@ME&5I,SLS_RK;L_WE
MH VZTM7V_?O?.>!A5&*O)D\*N07<)&?!AVX8+5K@!U!22PLA-^:>J/2U.@7/
M'U#/-N1S<@FE"4(N5L@/-#[@^MELEH 5%_^E086C+;2L6]N[WAGB)2Z$QL@R
M7N9=.M/][J.6>CU$[UCZB57AA?UJUE\>0\1N\LXJ<41O+B)'@(>1 RA)3!1H
M@+$LQ^^\:-&1;:Y##=>=>&?@Y6Z4OWEW8/IOZK=LIPIMS]'O\=]>FC=R$4]B
M%F^OC.L](] TDD@#RCPR@B#86M YU_@'+H (T:C";(:$R!;X^1DM+32J>@BJ
M!:M]L3=SNX^A<''D-F1(-(<[UV7<M\C^TNWOL*N"=2X[L"/5QW@;$A:F>4-
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
MD>GS4%/BG'P3R%EE=7.:.FQIWAE.J7*%*D^H#BA!(-IIG$1:&",Y_C1I>?A
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
MY%!TA+;WV\*Y]Z/O+?MLEMXA@HM#N,(]S JN"!_/<V&Z]Z  +8%>!*#5C?&
MG#WLGJZ2F)_4/!Q<[V:\-NG0Q8+E-59@@Z.JC5CSA^J/-/^8Q2M!9@W33FQ<
M-C1=-[ #B6HH1N7&ZRU8BZ]&%8IQ*P LK>U"LWQO$CA&J^>VL=Q!V42N, H)
M2JZR^)B:=,C#$"6M8O>&M(<BNDB1S/"&H1<^LIM?"4&BE[*,"\Z\M,;I7/"?
M?QU3.T!.(K0NWT91"LS0+63HM\3*DK 8G<Q51&;]MHX,?4Y,B322>=C9/C;M
MP%9-4MV\6W]L-2U1]^J8@1Z!1VFU@5'GY%H9X+HTL:J!4 ?=>Q^!"*JCD6/3
MQ)JEB]\5_5=733R>V#Y*F&O@E'S-[U5Q6UIHK".K8/I^$E+0.XB4.FB(1$K>
MO_ UY44\/X@8-Z%'4._Z2G0 U5C5^7F14)6X/5?'6PBRQ<?:$DAO[MU]LZG@
M;YB6OJN,#\<5W,_VY*4S.,-G<D]Q&G%0#[*P@E.80S0'AR$=M  01P4+_;_A
M7\SZ-NE?;C/+J68^7-2%9=I+EJC+:&.!6AEH"+'8'K(H!'8?$QL$$HF7D4E>
M^9]*G@-NGYR:0^3J[Q:=>5OH7OSMQX2D%*;AT+G!+T7.DG(F9% 'H#-L%FN>
MEU1B)(!!JM/NKC*T24$5*@EC$UI9GO^!\UTC)/JZ4F*;Z>Y;S@+N: ($_[6Y
M"^1F35#6Z PGT1(5S^2C(M_A^$!3IUTKQ%T=>TIMI;GZ$\_9![*F#I]>6?"@
MTXZ_CMRD;'<+.;0Y>V)S"W8DY.<^Y"R"5@M*#W!%$$P+KE#^,PQZ"JL :@*:
M5&HTK0HG$.Q8 :0,N)?3<TY@Y^6EOGSIGU;T7JM1&FF.T)*\LYL?O3;/]N%.
MX1I&0#D:+]7L,!/)RIFRTL48,:-[6$S-NTA,@-BS55_$:^_H)T]SUDF[[WW'
MCIC3L^U)C/O6XI>_$BDUD+2 ,F8L-VC^6K##A&U<14SPY\C:[1AGIM?0<X"O
MAZN,M\T!;&_5U6255)X?BE1/'33V_I9ZM$QN[UR^,X9]#+!F6X$PR+AW=,J!
M.IQBRSU/ORNXIG19C-"54;8D;_K&Q9>#Z@^<<M4?Z">;Q6KHZ214]WY56(-6
MZK79E!<>E+/C"DU7!OW)=MK!U2\XH9E\9'"O:<D%U[PL0;7[=ORWC2!O546?
M%Y((Z2R#3J7O1,99+1ZKD'E ^MJ:I;]? *TVL3"@Y[VNI45(T WO74<WU!OG
M^I6/[?,\^>E8J6W,AR1$#)9,8)SCL4#5$4&I*#2@)4LL:5Y9:>,GH!(M3?3Z
M!R9-=(!C!2U)[_Z>VSYVXIVD6O)Q7@6O::[XW!8L#QG3SAW0@_2 @UNG!S36
M(DN)Q?DXKJ )^T#,<D]4X_G 3H5V1@?IW_'R'+A%SZ;MCDWQ.SLRERY#MKL;
M3WL*?\M%8/NW8!!P34<W^D!V)0W-...D!* 76QJ?/:\/?1:HX/8 <==89%#M
MYZ4QM&/.F%U;"_Y:LOWE1Q4WY'MJMW>>@3YK7#']B@BUF37MN[_E1.0AJX.G
M27D&][1/7]6[EW[(DO_]2LAO!]9%3BE6"3N%:AR!'-P@Y-U_]+=;L!30[ZGW
M2I31[$<ENV^J2)'%]4'%C<R)S5?WRK8+U@[A 2,::VJ9A>64/FM];8=B=*Y_
M_;M;Z9F737-G2E 7ZRG\BSEOE1/V 5E_6"U07YY#")+$1W,PF?^3U 0-$R_.
M>?8M[@1ELKHISE7^1T//S?-^+W[7DO]Q<35Z>M!Z)2$8-_5;F2&+(;A+H#*G
M[*P;]Q,S\_V,?[")]\-P#4\E,#LC_K368JYZ[+63.2TRMY_"O_,W6+I34 (
M+73?8E_A#KFQ0*^.6\_QZN_6FSJ.W?2\GW"@2ST[7KB=[[YCL/><]X+W0'20
MN8-TI<I^OPL?5HY#=LM:>345R&>RNQ'BG7MC'"A@U+0",</2_U;/J<\WQVJ,
M325DS&[E_56U"=G>D)Q=I^"Y)RE"_7T9WU<GD@UK!1AF'\-UG6GBA<L)K$4S
M=;B[TL##E%9F>/]&6I1YY-MOY<^^(%2MG_\8G5<O8,X[L*K<@I:RK!7.O[#5
MO>N>!4GLF4X=+IG,L%E%"'/G4$);L&"X/"8$,,;8A9:!KD XTVG-S-TM[=!>
MG5GEHPLD^0L[$E6FYC)TLR4;=&2<%#B/(NEV+,C-3.SJ1,:<73Q?$Q#*G'WW
MTY82?_+76CK[$]ZIX[9:ZP[^\;":(QOJ<?RGC7[_ 95W5L>$.$++M0=SI8$I
M6O^W+3?0M.V<6.;/^2=17:/.T1<D"'Q/*@>:83?(C//(V496$T, E+R!!+2@
M_5'%PC/^I& T<:6!MU)SEKMT8JM\2,$/=O4HU9T?OO;9*U_.>3VSYO*U#T"V
MX/8WE=S=/*9(7.@(L.^_$EV$;;BN(S3@4*4- WUBZB9"[#M6/O'L!,;S5MNI
MLT7SWF>S!V9(ZXZ?5%OOE>D8/A)])2\WC**4$[9W7&<;X;H(+!0?=]^L0RA-
M&=ZE(N)SY0/EDH/%H\AY\UB]APA:ZGL_*V8A!T)J"1C(KHKG *H1 Z 1(?G-
M%NRU6#,L1@Z4<&>-<)X2*;4(QHD\)AZ/-0BV$@>R^6OBJ([1-'C2S:$]-\=G
M'_K+U759(L.5QKR=%%K766DB;=J8$JP.--47MV !.+R*&A-'1R+NH,*(J2K2
MS8R!@6VAK[I"H4G)*]X?^/7U_&%Z?_G%Z^9#JL?%/W=<?B3?R1+\@P*,U'E!
MB$5,08&*_K=^*$!_;%6 *X:>^A4J@.8T;_P>]B)]$$,MOAT>!O]$5 >%"L:-
M7<Y^>#MUNX'N-?[Q'T<DN!/HEFE09H.*!)5D&*TL\<^=EH![[S^Y>QBIN&H
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
MTR)?UJXH'X+P#&_'0_-7753J)8T] ^.7]Q1#:JX%*:X[FLFQB8!C>*%)B9K
M43H[;P/)K#(/,KQ60.=VV=FI1:>;=?!@A4>],EPMCRQ81+1\E7<.FC(^_J8\
MR6+M77 ^D 0SJBG<DU:92*XO=DLT40FP'PH>J[K68WLOJ/]J'%,,"6AK[JR4
M'+A?P&G]<:;J0]G]5B7MK]0D6OY-HA1:M<CB@H04J]GS(;-ZW_EE@KNFF?9W
MDI]VW'S\A3ZW5E<5T@:52^7#YA4Q"W\Z3W5+ L,^-D'Y$,  O$50X)DDLIJ1
M**6/(:%DTVBR[LRG2DY[X]$S4^ORK>22T#,]70C[7\)NAI_L=K/96?J&T*\B
M;>Z_ =Q"BL#88(4C!&-2>?X<+:X<&SD8B%)#?_<1HJY3.IW<XM)0+ >/@0HE
MJL\_T>EA)JW$_?M+5>#\9ZMP?Q9$I.;+4!E4F4< ;B<K"]W/SQ90$(,DY;X;
MZ*N#UNCB/K6'@35C60L6X2W:+%C;N)ZMKO^W^PLZW1I\N'3$@72%F'3;N?P&
M\/XK[(NS[=*ZZG"(:G!,NJ$ PC!^%.<,:YVI;:;"A2]IC%+8OG_.*JD?T_RM
M;F7<,%)]OTFHG<9J7C! \&[("R&YYSSH14Z&PK3T-_J*!:=RW4?A<43]+RWS
MM'U%0Y$I+7FA9KJ60;\K$5CD(7$ODH$'PHPG76#V/1\F,4R?-)"_Q :?^,T"
M!15$^5:=FCZR]YT_05W[CSL)WP@>M_HX36 &1025CI98%)QNFETFPUL%V3RW
MY/D<HN<DV4+DTC-C1S,Y6F8Z;)Y@'032COYP7D%7MUI%NAP;OD3<F>)%L^UG
MLRL&>]U9X-GEC?<5V63#N#,<K34\!K&U+DF[_(GG3H(I:]JH/#@_JHA]\55
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
MH**6#+(893P428"$E65TN<NIF4)G$RU<$7)E +[IALPGI(-ORJY&TU_RB@.
MADY@\>%E@K', 3!.9''XI!L%_2J^M:'@VIFT7"W5CZQ)LEE7J7]J_MT%]X@X
M#1F*<QA'E.N  0$)DA%DB<APGHE<Q%8YL6P%F!H]*?G!3@&PKX$=(UF/A1D_
M#8GPP&QU%EQ%8;7@X+?VOX-$4[FBYXG*K+L?E=A<P7E.<\[MN)&>WI$T60.[
MS!@?Y9OV0.R6?&_,N_;""<LT(A)AF HJ%-\E*22Q=NI+6,Q"PDG$K!*96_0]
M-:KKQ*QC&K=Z]!+'N-5&L!D-,\8;"..!R>[+V]>@\V>:@3"" 9X=@WD&]@:B
MJ67GO\Z" XB>.,^FYU'IS@&2YTSGTH0;R?UI28O%0O!=AI]UYR/%PTCBE'#(
M61I"1'4^,IDP&*(PQ@('(8VL..UT5U.CL$Y24(JO8FE[+'4&4C-B\@/4P#RT
MQ:@GY0#.9I>Q\$0G9SH:E3TN*_R<+ R>\%)C]M>59B2R:!(RS4,D<L80@3QE
M$42$A)!HOU5!\CP,,L:S,''+[7.DMZDQQ&'=TDY>J\1>9DB;L88W_ 8F#G?H
MKBW*>AR288JO/NOK)8NL'E?[0C'5$P]YOP53&[K-PT;7;>6JJ[(J_M'X[$4\
MBG+$*.0\E1!)I(R/@',8Q"GB2<SBE&16E:&L19@:Y?3$!'TYO=V9G1J*J^_1
M/ #\PG=KUMC[O'"[ -_PEW"G!)C*Q=P%@"PNZRZU-(*GT[?5G.4TBU@LH>")
MSHW ":0ZKQF+>1I$D=J)":NX4,O^IT9\ZE5-!O1R4H";,=R , Y,;VX>3M]6
M+^3?M,/N);R;5._3]6W:07.59U.O&<<@QNI>E.^77U6CJ_+I4Y=M1M?F6,]S
M3-*4!@',1!!")#B%)(\(C/(XR@B."+)+Q'BNLZF152TKV H[ UMQ02WOI9H/
M]FB;D9<O# =FJFOALP]F-,#%5RCCN:[&#60T4/H@C-'D&?M,\%^JOWTJV<?R
M=EVVB3WJ2L35_8KO;K -\\*;M#4UOFCRJWTJ"R849N#VRV>PDQTTPILGB3="
M\SQA# 'DT%=B!AB"W[S>^]NBY)1:WJB#T1+-VZC;3SMO]9R;-=+D2]552)H,
M#MI!8*.,H-8:6BW7KX1<E6*;5U7HY$"BN%O.212&61#ED,0RAR@4(<0B"2 G
ME,H\YVDLN(VMXB[*U)BI%0L438;B.O4*V^H#5EN%U+Y!:P0J^_S15PR<F=DS
MSG ,S&]MCN@?M!H_=CEPM@/Q\6 @^OF\9Z#5QY_)=#VFG@RJ*P09U=RZ'K#G
MQIB'%MV8]M5F72S53O/UZH$634U5G5N^X&V_MR59KAL_A7 >2!PG.&<09UA
MA),0TD3]$^5YP((HB0DRJHCNTOG4V+0SF,&C-E/L6-(*=#->' K*@9FP$QOT
MY)Z!/<E!3W1_G.>"ER>6L^IZ5%YS >4YDSFUX5BY69\<?"I7LJCF08AR$=((
M$I))14V9^BF-&>0RER%!5*0\L@F\Z[5MQ3PC1-G5HH$'4MX5EG>%?<#,:,41
MAH%9HT&@$<MC/>9#77U58NZU/&X-YD.5#JHO'_F*VW345DM)6/67HKKOLJ(<
MY&F+(L8$R0D4&2,091%2V[,X@#+(2)ZF&*>)U5&R2:=3,QVV?KRM-V(=C;5-
M6,7%XVI=V :1&(&?T(B&(A40<YQ E&0!I$BHO;'"G@9!&%&,YX]-:OF*E-7+
M#,%S 0:T/H2B4)T/$E"RT$ZY V">B8B$- E@%.HT;6FB%J: 21C*((YXFJ0X
MS%O,WR[Y2R+>=3\<WJJ' 9$V6]%\8S?P4M>)"[XI>;?9P(;-!VD#D:<5TJC+
M49=.&Q">KZE6SSI6(]?N+3?L[YM"K16-C:UOB57#>];VP20)TB@E'&,8"!1!
M%.,<8L0CF'+!*,YD1HE5#("C'%-;DIMH&K+38]8>C6I-](\[56;;'+9J[K$+
M<\_KV)D1W @C,C#G-8-QTQ^,G1+[AP/#$N&54/JJ5^XHQ;A5RZ^#ZJ!V^97-
M75L.HDX._DK?A[>>-C>Z0'I]+]D6H]A%=*W7FX?FLV<%,9,$$\'2!%(:2H@X
M"6"NMCTPDT+$2!^D(L=R$#[$FQH%_T44=_>5X/#FJQK=N]I7MY,<_$D[C!3+
M[36P,MEW)83KNIO-G7%7K^?GDBPKTZ)Q PV_&5V_W* .?8G?JP-1JP9KW4"K
M'*BUF^V/VU[@:V_XQZF;ZG, O)>"\"+<"Y6"\ GLZ5(07GMQJ<$J%NI/=S^+
MI>*OQ<V2W_"'8EFLJ[*.PFE#V0EC7(@(08ZR'"*4(DAX'L @CWD8"18&.#6O
MO&K2Y=2(OA5Z!NX:L6?U^1?9D]PEH;@9_N=9>1A4AV;:1E[0"@R4Q.!F)#AM
M:J?ZAG6LBJD&[ZNO(G-6&)VOBFK4THBU4&TTVZ^ :O6D'7%S4<S;LD%/;[^S
M>S7NXE?U+LR3E-%<QAE$24*T[2XA9D*Q=A+P@+,4R12;T/2I#J9'RHV,H!,2
M:"G-Z.(DB.>YU@<T@S.K%2K&<_V2ZF>\2]6CC>&H?MC9BR<;'&6"7U*GF\X7
MO^>X;6]*)"NSZD'PC^5KHI,G].LDU[O$.4LR%I(TA4&,E.45! G,XUR97Y20
M!/,,"6XTI>VZG=Q$;^M_-V)K]^I&\.=EP!W2]QJ.@^&^V#NZ0W.%%V#MMZ]6
M./G:EIIU.NYVTPJ(@VVDW=..1+7=H>JBA&*YKBW79G.J[)KW2L^E-FETVL\V
M ]X\PVF*TIQ"(G&=E85!FD<<AC+' G,4*K//BK7L99@DA;6G27TE+-G*83 ,
MJ6M8B(?FL6-G=66IU^HF6?"0:3>O@,X7M3E(,"[/N4-T0'I7-.7(@.?W<F^_
M:RG$/$]H'@8R@HG::D$D$V6J"9K 3&UQXX3%>2+M2,^HV\GQG,E!F6ADMW07
M,QP'0[[SCNXX!V:S[8D9.3PQ:Z7V2&U6*/EB,[-.QR4P*R ..,ON:4?OFEW:
MF#I,6M-C*>Y5RZJ+7:S.KZ+Z*&_)]SE.$ ]HHOB*8<57H220QE$,0\$B@O*
MDDQ8>=78]3\UXNIG5UK5"0!87P&P4++/P%)4^FZP(M\MW6<L!\>,Q :$?& V
MZZ/=I%O8DQWL11O6964T[+=G8+=WE'$#SY>#C&7OXSK&N$%SX!#CV(SE/6;M
M1J,V.J__^&Y.0R9IH-W#0XXAB@C7Q453&!.AZ$SQ71@CHYO*7J-38ZHOWXKJ
M'Z)4G_$9>*<V.<RT3G0?J0MWBH[Z#VT$6:AN?HEU1-<SA]G=UYM9WOVVF^%[
MS8US5W5$@>UMU+&_N1D8;Q\>%ZLG(7K>"5U9]YSE<1 (&&<DA"C(<TA$&L.(
MQB&5F6!"6E5^.MG3U*9B)^B>1Y!C;8'3\*(TY2P*,60!HKI 'X9Y3AAD>8)8
M$B',TVS^591T-2K _1Z'/J+N[_7K<E#>03:SN+P -S!).KZ4U@;412P\F4JG
M^QG5*+JH[G/SY_(#UV9$?[]46\C:G62M-I5_%/Q.[3)O=$7PHBK$^DVQ9FK;
MLBG[_KV93%A,$>14* ,)<^TC@$*8IPP%F*2<2ZOJZ]<(,S4V[R4%[RGCFD3=
M87#,.&@LR >FJ>-HU\=:K29@IPK8Z>(YB99/5+UG<7<0Y862O+N#=CH'_!5M
MNJ;P^BK6E>[P>?DZ3',2!V$$:9 (J PR#"G19FY..&%9DD1):)>AZT1/4^/$
MUV1]/P/ZW[KVYE>R:.K9Z6FZ4\(ZX]8IG,T8T MZ ]/;3L9QBO]=Q,1;OJM3
M_8R<SNJ"NH?9JBX]X%A6HDEI];K=9W=AM'4PF [WJ7TP=E0U#VC$61)@B".6
M013',<0HD#!&.1*,(R$"JV-WR_ZGQB]OU7BO'@H&[A6]"R!7I0Z J -9M1J6
MQ&([&&9T,R#$ Y-0ESZQ$QUTLL^ZLC>[B+2>B>6QHH0;=+[*25CV/FXM"3=H
M#@I).#9CQW;KLIK_0KX7#YN'[E JP5G,8^U=+G1,$,F5;8013)(42TQ('D1&
M27$.6IX:0[7"61XX'0)VGFNN@F%@%C%&P)@>3FI[;N*KAWJ37OVVF_"'[8TR
ME4^JT4W2TU^X-MC[L]![(U;5WIYJ=_19U/=LKU?K:MW;MD1")+I<)DW"!"*A
M-C"8\ 2F4D0XS(B4L57F#,O^IS:5]X2NMS"MV*"6VS7RVFPLS&R- 1$>F"4N
M@#M2/+05:MX#GLUZ?Z&(9BMH3H<LVS5C']KVIHV0O%6/SI49P4.$..1Y$$"4
MA$@GIA"0$K5=H@(+3HSN\Y\W/#5FZF0#6CCS"+8]K,X3S#4(#'T2;*2\5:#:
M,4V= M3V&AHM,.V8^/V M*-_MZ][HAAYLR#EAV)=/<L#8ECLY&0#4YM?K:!
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
MV@L_<@3</*W6F_)_U0*T1X??Y,OG_D^^>.%?5\O-8S7/D>1Z+ 3D(DXA0BB
M1<!SF&11&N<<A6EJ9%9>)\[4*%\^"LB,HJ]<#CUB'@]DSW3<* )K38Y\E+/:
MK4!5([.^5C/P7QROP>W2H;O!#:".Z/9*848E63? O:561Z/:$>IA<\2N']<\
MY#$E*<MA2KC<A+.$0D*H@$F$\SR(48*85N+=\#13(\!]:\^%$A,\MW(:]BT_
M#:D>V5T/E&<2.VI_>G<))/.VWX,8N.K<?7J2<9MO#RIZU#][^&K+Y_],4V[5
MMF;7$O[3:JT:PO>Z<>\ZOG_CFUMQC_^:9XSQ) ECB%)*(2(40QQF,12AB%G
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
M:4K.<;=>+>6/M*Y15ZE [T=5L:[ZO.Q?4RYI^;S@O?9'&29%@,(0\B*7EG^
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
MPG&,HKQN#JOSKNX-.K5W[+]OEP]X7>*E>E9+N1LW3!/KXW7AQ6:)@N<74@/
MZZS5WP&_G-!SP'O67=Z8[MUO>[/]8+AQ'OD3"NP>U5-_LPP7IG2]Y>QON#EG
M>-^&HF8\2F+!8XC3)( HD \=05$(><9HD)$\1LBHFMGI::;V&';B&4;ZGH90
M;\M^/3"^3<5&0-!). /OG<?F#F+@*O[V]"3CQM@.*GH41SM\M5,/>'/L*#^X
MXTN\J-_P2U55D<NOTN;C7^HT7NZ:$T8$9[ER6N00Q4D$25P0&&)$>)AD:18;
MU<F]0I:I,4=[G+[!?X'G3NKZU*ILY58>;26X$R>UUFI=Y8QVO08_S^G<KHSZ
M\.Y@93IMP,<+*^/*M6R"J5\7LI8D4W 5FT"FZ1(V&M*,8ZOU9OZU7)9/VZ<V
M%SR@#"4LQ2I]-H*H8 @6D:3-..811@(76: 5&GTT\M3XKQ7.<-]R#-@P:5T%
M@V<*TD9 FT[.:CM$#O*F'C'(W_:D<#S>*(_X636Z!_;\!;8]PL]T(?_&-W.6
MQ3&)\@RBB B(>$)A46 .PY0&(LPRFE*MDW^=R:;VD':RSNKFJ9M9_1KDG< 6
M;>8&D<915$0T#:$@N40ZX3DD"4$PH"DA,:.Q"-!\L]K@Q<A([Z8<#>D30*L"
MS5(.AWCKV7NN4/3,IGL [W8 ?MP#^&W@FVK1F/TR),Y:LP],-7)S]LM*'[=G
MU[C'CK/_SLN'QPUG-R]\C1_XMZUZ#]R*I@7\[793J;8RY?+AAE2;-:;J@ H7
M<9 3F ME6:$H@$5.8DA0&B>D8"$B1IU"3068&K=W\D/<* !H4\1'/3C-CU 1
MT M>J&"OJE8+K/9Z:6::6J^7'COY7 7/C-6)#EK902.\"EELQ <]^6?@@ZKH
M*:_^HU/%83B++8J.2,YX^E&)SQ:<MV1H/8Y%^,O[U;(>X^_EYO']MMK(#>QZ
M7_"_CH*5V]JUZ@/P@3?_G1/& JX"]R(64W6"'\$BD79OC%/*(\H)#;3B^&P%
MF!I!?N""KU4SH[5R4VYYPXRM+H#QYU55ZM;XL%Z4"[ZY$:#VS(*=]$")#SKY
M#QJ3M%';G1+@ETZ-\PV9W8!O$!WB>1%&B@#QLQAF(1Y7(#D8QF$S[GBA&E=H
M?1".<<TX5U<%_: J2? EV]4B?X^K1]50:"Z*/,(Q#V 6!QPB0@4LTK2 +,EI
MC!.*X\3(^-:9=&KO$R478)VT0&Z,.I.[-J[!+^42L-5BH0*GU!_K3S4ISF@Q
M]"QKUQ![?X_L2Y J8[F5N":LQIZ>@7H%E-Q>2I->1,E]M=+S4_ZL J8701BH
M:7KY7DN&DL/,4Q&E@2"JW S.E6,%PYR'2/6E*<( $9''U(B!Y*!39!A#OE#0
M:/*!H<*^G_<A7<T?XYYRKAY3->2XCV%/B:/'K/\WZ^;L38K9K5"C?5JL_JQV
MIS5)2N0#QADL, HAPED("\YB&$1YRGG*"\0CP][L9R>;VF.W3XE<B>8=4XNK
M<U)C#K3>P^H*/L\/\17(V?1DOPB)NY;LYZ<:NR/[1:5/-&2_?(]E[&C3F+?[
M+J.8$?D5R2$E>0Q1QB-%&J$D#?EZ+A#) VI$&H?#3XTF;G[\^'C_PS!2]! P
MO8??'@;/CWO;)=S'TWU:9U>1H(>#CQL!>E*QH\C/TU>95T>MJTS?/SU\73Z7
MJJNI<?O6LP-,[G%4@H+[\DD5E?GZ[>YSKXNK?A'5\W@-/ZO.H/+]R Z@!/YP
MWM+U(B16U5?/CSI:(=:+BO5KLEZ^V-*";U/G;\4'OBY?L&H0^'DI.:,^6ZX^
M+WNO_D_E$B]IB1=WRLU1KI:[%*W]5SS* H[R",,LB53.!^$0$Y;!-$LSA$(<
MBD(KT<J3?%-CG$X]9>SN%00]#57[B .;>*<EZ-2<&2?.^EI]S9W(SUM3WYL7
MU\OII5&VYW5PM6-R+-VXFRP_T![MRSQ-8_<N^;1:\_*AS3&BK_=KO*QP73GM
M-UPNOZRJ-L?W'O\UCSA-":8!C(,T@HBI$%K,$<Q37A1A&G"6&E4(,IA[:N^
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
M?W:_4;=*_7-T(_6RD,YZE?J1SG;K)/BZ;@S>%G-L#^/>\247Y6:>!B'.@XC
M0@4@(X+D3BJ4+W)!F4 ISA%7)9Y-C/_!^::V%^C$!653M[3?1/ 7TLC\ZPS<
M*U%,=P;#P.MN%)S!Z7W?T"+9JP"[._AMQ75X[JL)C+.]Q?!L(V\UM%0_WGGH
MW69;K)I438K3QQ?5L4N.4F?F%X7J9)IP6"0B4\4/Y$]%%,*0"1%E*<^"N#"K
M37URGJF9ZGLQ02TG4():U3TX!ZRFB7P]7+YM5AND+"I$#^+@K"#TZ5E&KO\\
MJ.IQN>?ARZT=SI1S5GV2XM4QPZWETS9JYVS..(U(41#(1)/^E,(BPC$,5%44
MCC."L5%5E(LS3HTB.H&!6L(FSKW;7X&=T,8^YPNH:SN>W6'IF3^N@]'&WZP'
MC3NG\X7YQO8\ZZE_POVL>:.E_:&: *O-5E>W_F99;]O6_%$:.;MVPKN*9"GE
M89A'"505&" *8RHM%))#N0O"8<Y2$L:!D5UB-O_4R&@GOG*)',C=V?.VM1%-
M%T;3KO$'MV][QP72YO:/'5ZN["+#V<>UE^R@.;*C+(>YMB?JZ5.J^M-JG^7X
M^U*.W>-=50NR>O?:L>^=\A1\5^=:39&4@H8!BVD(TR1'$&4TD;NV+($LS)(X
MC=,H#LS\.5[%G1R9]MI^-D?MY.A(?M;\I>IEHH*MTOK A*EKJS9=0CO=0:T\
MJ+6_MD^KE^^.)H%/YALQHD]FYVO9GR'/VI6>V2WP%?U@?>+NO'NL%V%_4J]9
MG\"?[TSK=5:+#+K_6/'UPW]NN11P^5U*>%Q^K9=Q?">?QD<INU9XX[7#3X@\
M:BU J\8,*$5.%0><@7ZV/.C4,0PNO7I9#/+31EJ>D?+8KELF1ZEN#B =3(F[
M9OSQ4N<<H'"08N=B//->71_:[^VG4@[\M/FX7J_6[U?KM2H9LEI^6N"'.:$9
MH22.82Q2!E$N8IA'JL\W$BF)24)%JA54KS?=U$SL3F(@1<9+6N(%V&^L:_G!
M7@'PAU)!DP4UX1]^!;D'U;?WUB6>1AW#]&&R:B&F,?QH/<7T5>TW&3.X:Z(Q
MI,KG?,?7Y8K-TSBE&0L"*-(L@XAFH=P;\PBB(HJ#1# A C%?\@?YU6/W$XH7
MW:N@]= 6S4-[I,BXL:$3"_WL?0TTSP@FMJK_AP9QUM%/H,'AGRA(\WCQ_EDB
M,7N2_Y\5;GF\)*/'5)X0P:J\SW-KRM^M5P]K_/15WO\HORE!N]5->8)14B!8
M)#R6;R_!8)&R%"8A2BFBA">Y5NM<K=FF9GSOY06MP*"66-4V#&P.'2["K7'@
MXQ)$SPP_/GY&E8/<X3A:&:$!/)T5$M*#Y4)5H0N#C%EB2$^?-_6&-&^RCE4O
ME^K-L-RL2[+MSI\_/CTO5J]\_15OZ&.Y?#CX.Y??H>5FCD2NZ@I0F NNPCDB
M#'' 54Q'E/ 4%468&#DL[469&EFW8BE?)&^DYX#VQ#:.:K==(CV;?QS@?9^F
M-$J OI2U*U>:YJTBH-/DX*(9Z"U7>RFO_@7\ME9U5*0]Y#2 _DJ@W<76VPHR
M=MC]E8"=B,B_=D0[HMV59SA1"V9?Q&>>Y*Q(HR*&&+,"(A)D,%>UQ(LPY&E.
M!:<BGS_7QO:/#5YO]*A5;W*3I_FM"/X>['?\H5PNU5-+\$*_HJ,A[E$N"$,4
MP220X*,XSB!. KG7P+R@(<NH8$&+^\<E^[FH=P+XP_QC4X;.)^!ZKR;W$'I^
M#9TLS'5S4."L5Z;+W:O%#"A'KQ'-24=]99@!\?;U8'BWQ3''-ZQR4&_%K7R6
MFZJ]=ZM%25_O^5^;=U*1_YYGM(A#2E,8A@A#E*( 8BJI*,R"G"9!&(5"R\NH
M-]W4;.=&8&6+[44VV)9?AE?C7,,I:)X)I\7KMH\7^*.1%RB!02VQR='&90P-
MSC:<8CG2X<:I[Z"KZLC:> R>:EP>9;QC#6V-#LXU].^RM+=5J9\;^H]M695J
M>&G15R5KY[I?XV75I.;6/V+:7%)MYBBC/ X1AVD8!Q"%B,$B1A02RJ.0A3C)
M1&QRJF$IQ]1HN58#X+T>,[#92PRH%-FP6*OM FD:COYA]VU)UHC?]!$_4 +T
MM)B!GAY *>+0LKP.25>FIJ44X]J>UT%U9(Q>.9P=<7Y=O=1>P<_+'ZHN-EZS
MN_6*;>GF[UBY##>OTAY>;_'B>Z_-GQ %#A.6PS1*Y.Z9(0*+ E/(N1 TBR/Y
M9<],2--"AJD19J>"\O-W2H!6"]"I 5H]KNK!:+-@>B3J>1D\$ZB7%3"FSRLP
M=$2=-A*,2IM70/26,J\9RD'5!:RR/N0GTJ;=O*ISY<W-L@ZC>%9"S>6^GL2<
MJP@&)J1M26.((X%@R@/!D)#;>TJMZR\,SSTU>GQ30@ WF7N=^+/:<[.9U66G
M=SI<49CAPL+HT:$GN#W3H%.DKZO=H(>9CRH.%V;^>?4<]" 9K.R@.80=O7T4
MHNF9NBMA]1UON.J4LJ3EHFQ,4?Q7<Z9=S>-4$EF21#!CDMP0S3$DJ=Q,$U+P
MF"8I"C&VB#4VDT+KX1L_7%A59VN:FQCNE W70(_,/$ Z#I_M!.]7O5.R@T/A
M9_4?&OEW/GYWQ&:'GR-N,YQ\5'JS ^8MPUF.8FG#-4&O*I[UH('X/$5YD$1%
M"IE@#"*444@*4<"")B0EJ!"8$PLZ.S??1(GK/:X>P7,KLZ$1=@Y938OK&J!&
M,J]:$6O7[H&0#HVH"S"XLIC.33.N>71!V2-;Z-+U%D[:]]MJ(UEG78<!8;JI
MOI282-K9O+[?KM=RMOY92A#G.<D2 C,:4XBX"*6Y$\>0<OE[4@@4AUIQD,8S
M3VU/U\D.=L*#G?0ST,IOX(<T6@4-MZXO;#TSS!"L':I6!XCF(!OX?7V!/9(+
MV"7H9@YB&^ &?<5& X[G-K;1\\"#;#6 ?5V NR[V3I6*G_-4?F]B$L,H"R3I
MYSF"I&[ER02)$,I31HEI*8"#&:9&[KML]49*(,6LNTV89_@? CG,VT[@\<S/
MQLA8Y>J?U/ZJ]/S#$4?/R#^IT*DD_-,7FO?:OE^SF_7ZAJWJY,7ZRZ?98_OX
MSJD]G9UL!H_D&4B&G\?KT?#\,)XH 03TP#%JGWT> ZNVV2>&&ZU=]GE5^FVR
M!ZZR.W/Y#9=+%0)]NSQQ@-USF>5QP1BC,(Y4KY0T4)%8,8<TB (ADI 2:G.@
MK#?[1,]CZ@;/OSQ(%7X%\EO-RNIY5>&%<NL\[]PZSWNW#K=SH&FND-Y)CD/
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
MLO5OZ&:+%XO7.URROTFZ_L$7G,H)VWH/>P>(9BE^DS&GQFY*=KGQ:;?;K1)
M:0%>JG^MM^MX^0HZ=;J:&/KE_(T 'Z8SGUA[IC%+F!T[J&P!M.H?8#31:)T%
M;-3O]QRPNM^Z@O=:4=X'WOSW\[(KV+@K3LNKN9!662Y0*/?Q40@1%006/,&0
M9;PH2!9$(6=F[BBM>:?G6GK_J)IK@'()6%>VM-P5HS;WB^M@K^L@=X7G:*6G
M:SG!+YW$ORI4=\5@]Z6I7926L$+)76%JC3G'+E.M#\.)HM4&-_^,%)8O<G]\
M+Q_4+H;Y;3(#PH*PD!'(N: 0,9I"$H<8Q@6.BBB-240,V<RKO--CP1,I+$J'
M7?[*T^CY*Y>67(]$?_XR3B904C-_Y6#9&[6GF[^BN4"3R%^Y).L_4?Z*)NQN
M\U=T)W5:2:DI:5XN'^J*>/,8)42D(E/]% J( AY!^>;!,$AB$A"2Y@DW.N34
MFG5R>_^N+A!5/_"]W$Z**;U!G*7R11[0'&:4Q1"E10ASE',8)T$J(I1F+,4F
MGD?WB(_@1QP5<;T7JW,<?9^DG"MF-0.X[4BASH)KL;T7M3J-DM_:5F_FG$*)
MJ],P:%:Z.G.S9:UU_%J'_MVO6O=:YY1K(S-J&5K'VSQD5)V<4)@P'D(D,(*Y
M--?A_Z;N79<;QY%UT5=!Q%ZQ3T^$L((7D 3W_N6Z]:ISJLMUJMPSL:)_*'"U
M>5J6/"3E+N^G/P O$B5+%$"!-#MBIKK*)H',#T0"2&1^Z?DHB1$+HS1B P(X
M;628:4RF#J5Z:M0 N:CWB^4&T/:NG6CYZ^7<TG99C1!7QT".A("Q1!%$82@@
MCM($IDF22#_DB&$KWD/G0S,E._X,QL-L21D+Y9%7EAW "MA&/+"7?!=?6*T[
MK?@.:?,'@.:*/M^FZVEI] > \HI.?T@;@RC'*KJ8)O[X5G[/BC^_;589>ZG_
MW-]R!00+/Q01I EC$)&0:2;& ,:!\!&.B/0"HQQ<NV[G9L\.!=<S2XMNQ5AE
M"GB_V1H/QM$O%0\0O*T1!+7 X(_FOR8WB-> :\4 -@+(DY%^G?I<_],9J9<E
M,A=XO$Q;FY*ZRU+#([8NV[>'WKF6:M"S79#>IVR=E>)+]BQXW=%2(/5]1(&
M/*&1OF_%D! :0^DQ7[(@C*FPVI)>['%N=GLO<!-,:WNS>@EATUM5A[B-?J-Z
M!-D"U.+"2M[%$),]X(+5$#!GEZN7^IOX8M50_=>7JJ8O#BX/MZ_^?K/FNP+P
MOQ=";E=?,BF6"(<IDB)56T3&(9*)!S$*$8Q)(F0D8X9%:%D=[E*?<S,[K<B+
MBDNSK%R .[$7H!8<:,FMB\-=A-_PV.L6U+%/N]?C.:0TG"E"[BK#7>QQZL)P
MIA"<J MG_*J+P-@J-\Y=3.S)YN9F92[$:=8YK YB8$]CVV]G1H)U]$.J.:*3
MA+OV N8HTO5T'V\8Y-JK=']\:_^K QQE__=&Y/?_SU:P!['^OEV)NYSP;'U_
MD^<Z@%,;-"7$XV9=D3'K@ )SPO>!3<]HNE0:@$:%!=!*@$8+T%%#QP!I11K.
M\9H_S9[T?>A06/A\)AB2B3Q PX?&D9/H2BA[749#VY[.@72E]@?NI&O;&DBM
M*Z5@Y8YCX([\_$Y*H7-$URQ;9=7G6T>Q[P-WU4/UL5/?CM<T!&WQ\F7$$S])
M.8.Z. E$--'<O"*$44!P$(2>I D?<'_M6,R97G%KRK%<E%5V *!B+6165M0B
MN:BS.#<2/+?* -)J8TD(['C$S0ZB;S& $U$2MYIUDA" 5@X<:J=L\"X;9)>W
MH)]MTO]W2H*=ENH<+'+M8W;(<CS..+BB278LW;0\R^- ^XJH>:1NAJ9>U#U\
M%\]BO55BR.V:M]?;_I)SSM*$<I@&(H4(QS'$U/-T&682<M\+./8'+ ?]O<[5
MNK>3OI%:$X)HN4$KN&T&1"_R9F;9 9!3Y2 ,!6] UH ))L["_GL[FSANWT3Q
MUX'W1F\-BEZI,I!U['Z>T6UUS?I/490WY<<UOY6W:_'?@N1+Y$?8PU) YG,!
M$4\03&620IHRG@@1>H@97418]#E'%Z'.U69=L8$FG=0!R$)-$[5SW*P%T 0@
M5A$71B-@X 5QC^L$/D(-Z8'$0(L,;DJ@A-:Q+4IL\-^C0&H5P>(:VLG"5UQ
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
M;KZUA"F@([39U#1$L-]VN0=O9%O6AYOCR @[;'K(V51#S1:'\?W.QK#Y20R
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
M?CK'Y/48'+@D'30WL&1RU?&M[!9TOUU?53I^&6)"F8@E%"+4ZQR/(&:Q#TG
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
M2_6K)9F;P=G)"!YKN5_TY4M65<RH4I\MSBA7C9#!87 JW$>V5SLUH-(#:D7
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
M<\-^YV;S6GG!AJZR>S*@/I,IX&;V;@081[9P+3/F#LE&Y@5H9'489V<'CJL
M/,->IXW,LX/B5<B>Y>M#<Q]HV2%2:2E6/FUR302D2W#_I;D8U;_K_%#-&;24
M"?%0(-36+"":A#="D$22P500GX<R0A$.[9(>[(68FY7:20GD)@>LSG5>*4%M
M<Q@&C(>9W1H;Y9&-F!:_0TQUBK>JKAF_'X4FX_Q+WR@,2%@8#J.S3(4!(DR<
MHC <I->Y"5>T-=!YO,X%V]RO=;S%'?GY3JR%S-0^L&%$++Z+8KO2^\5/2O-O
M>;;1[*K9AE?,4T56;5&6O@(NIB&!E*0<HB12]I+A!$8^]R5.$&=<MBRH=Q:>
M9P>R&4WK0\;4NPELZ'>A5[PJV92H_X&\4D6[9$OR$SRUTJM__2G6VJ?]I-4#
M3Y5^MIYK%T-LZ.^>:L0F\I)WU*F(/5J%%J!5">Q4JOF]*J5 K57URDXOAVYT
MARB[<KZ[$&E:E[U#$%\Y^EVV;7\]<+-5:\-&G=_SQ\]\&1%)6<!BZ"&/0$03
M!DF2A&H,F93<CT.*C<[6KUJ>W;ZT%@YHZ<#G#^:W H=X7;X2&(S"R.;*% "K
MRX"3R@ZZ"3AL:;)K@),*=.\ 3C\P;#MU\ZCI./]/Y;JYE9_7I1J?3*?S5]Q#
M2^2G0<AI G$L$X@\26 :T0#BU$,RCE BB545WO[N9C=!.]+JK4ZVDU=M@K3
M=ON:"UB;[5C<(3CVY#X";R]J0SWF;G]AAHFCG<.%SB;=$Y@I?KS:&[XU])K_
MQX-8K734'UF_+ ,B T1T:I/4P3U>ZD'B"0J#6 0"<1JHPY;=17^W^;D9C.:"
MNQ(1-#+:7O8?P'=Y;;\.E)%M@!4> Z[\3ZE]Q:7_07,37_N?4N7UQ?_)IP9>
M_6_6]SINME-?=1F$<9!X'H(1YA%$(F4PC0F%28QBZ4<)39!O=;'_NH^Y3=FO
MFS5DM;^^6SIA 4AM)2MNKJ+R=/Q'$'F+)/4J.I;_0$F\\!'6O@[]*54_5'\)
M%MHW\B0T+8=8O:AVSGF?15$UZKUJP3)^X,0XIL@+14 $#-6(0H01@3@,/"CC
MD"."@T0$H4VMC6O'<8KZ&*?'\7HLS;9E5R(TLAW6TD$MGE$U9?OHB//*NXI]
M.-'#M)$-YU5\%;?0\^@P4_UN6V1K410W[-_;K':W5'_-Q8Z;)TS3T(\Q9"+B
M$%&*81I@!D44"ISZL<"!%3?/Q1[G9L9;@4%'X@5H91[(X7,9=S/CX!3-D4W%
MM4!:&P]C<!R9DLO]36I8C-4_-C/F+UI2"56+*'M9_OCUPS)BOMKSA=KK(S%$
MRLQ ROP(IL)CV*<R2H21+[;;Z-Q,QX]L?4^>-KD 'S:K%<EMR6VZ>/7;@Z$H
MC#SE=P L&@1<<-*<4+7G9-8^7D_@]E_[R7O0W#0T-"<4V-'-G/K=0/\K8]O'
M;57/[8-XR@7+*K>,^OM*5%-ZS;ON&GVM?BN_Y9LGD9<OFCJL5$]\5-/^26\T
M_"4GQ(LB)"#A(H4H322D*/&AET9JSG(>8VE4QV,D^>8V]W?7VOHH1O:Z MY1
M%O!M53^-9\73IB K6[>OXR$V]!._W<"-[5CN#%-7-7W'W2A7':6[ZBU 53Q/
M'< _-(.H![Q5=P$JA:NW=BH[=$^/,Q2N_-F.I9O6 3X.M*\\YB-U8Y^I_ET=
M*9M\T ]"LX9DZUH47<G&,&^]KXWY&>B=K.! 6/#!N"301=SZ+:I+R$8VC0/1
MLLIW-X%B4/9[;\.3Y<*;J-?-C#=ZWE4E]RK27)>,TT4W[\A/47PC+SKB<NGQ
ME,5$!%#?UVO/O0=QPE,8IK'GDS3F.+(BN[?H>VXFHQ$49'4MW5*+>FVI]_/
MF^W&1H)S9'-RM@Q\!6PE-&BD'K,>_$6H1JL.?[[G-ZX5?Q&2RY7C+S?A-$"[
M%> PEK#)E#D1ORN#D"""?2BHE.H@ZT>0"!%#'Q.6I(D?Q<AHP^-6K-G9.LXS
MFZALS332WI+5L=E.0K-M!]?,:$X_9"/;TY[P[)VI/0K/;M1ZFP#M@4B/&Z)M
M*]0<@K0' FD8ICVT]0&GS^U*^!Z-?$T$Q3=/ZCS\:47NC0^>IU^?FU'58@(M
M)_0/6,,:D2T.G6?@,CAO7H_4V$?-?I# 'UI>1Q1K%] 8=MH\T^9T!\U^I0[.
MF!<>'4@WS!X$WVI/E3[#YEM6;G/-\;;FWT7EZGJ_*73Y67W*X3'#"8E"&"9"
MQQ?X&%(1IU RS^.AY#)A5FG%%GW/S3JTHNM=UH'PE?NX$1]4\H,_*@TLHPYL
MQL5L(S42VF-?2SH$VI[MUAXR5RRU%CU/RRYK#\DK5M@!30PS;N])\:#_KYWN
MSV2E@["J+C.F>U&_J/KL_J#SY!(',2.<21AP37"5A"&D&'.8"!(CA!'B.%W6
MYZ<?)<E+,Z-WE4PV$_-8LO'FJ!:RFHY,_T7LQ06D!%3<9^N*E5K-8$UL;F<'
MKQM"+B61#"4P#D@ D52#B3&)88IC2;#T>)K29@@_KODL!["5ZXV&3ZB?O\'
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
M"T_83<1WY1JO:8E7[]?*I:+QM/]1ULLX0@4)XQB2%(5RP<PP)")(888"@?*
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
MR<,<HBR3FT_*4T@+')&8%RPA6BE ;O8TMVD_E+7)6]%+NP"-O :Q4*, CY.
M4]@\,\%4B!F$C+E";J(X,6L$S4+#=% 9C0<;;6"Z(# =/8XBO[1><%-;^16N
M2[K?DR2A" J613! I("(1S',,Y[!(DUI$(1IEIH5'QKM;6Y,JG8K7?X?RXK*
M=U93/AX+/:O+&<*^[S@O5%)N9)VDCO)%5#Q543[NZT5K*%]4^U8%Y<LO6=AK
MO;.V9+#.O0H_E5N\*O^[69[4^5G-54Q$X]C]G:\V3VKMZK(WR?4SYDE0X!2B
MB&3R/Q&&11B$$#,DBE0$(2=:!U<NA)D;5QU+WYQ6_RM^?/KW-X!W$AM8,?<.
ME(9I."'\GHEL'U6B[)Z]N^;Q<'Q4EP>M/DT _4"C/JW<E.-C8(A..$X3V:K>
MQ\O,IG4$\*C9>V\?TUG&CM X,IY=M6EG7_^RV;"_RM6JJ=LDK<E*'7Z\X>W_
M+IF0WZM@ J)<J 3G,8<$A0&,6$%X(H(DYD8^P*.]S6W-ZH7M*Z_U\H*?>HFO
M!\)88*UG/SM#T/.R<P]XQN:S%BB.S.?QOB8UG[74/C6?]5ZRC!@ZA" US2MO
MH(I_DSQ5?N?M5O7#IJX_E&O^?LL?ZV4:("X"EL(DCH@TF5,*\P0'$,<%3?(T
MQ2AG1L%$A@+,C7*&P7;MO#G2H-_N_Z24^!G\J?0 C2*&3C;& Z5'3C[A]\Q7
M'I W#W2RA,]5#)1I]].&1UF"<Q8Y9=N.;4;X/JW+/K7"1W'X8V/Q+3DO1),N
M%M.,0Q2C#.9Q)J"(DY $# 7R/V;YX&]W.C?J.XC7[GH6X)!*I#NF;__!-%^\
M!OYZ[.8:5>\;_U- ?]^1_^1T"[8;\"NNMZJ8,-^V_BQ5I:+;U+YB 0@7FXK+
M3:880]LBB;P^?,Y2R&MT.7$">7T0SM/'&[QK7;]"A90W&?Q*LE/[ST_RH^J2
M6#VLUSN\&OZC.H1]^_BTVCQS+G^DROLB#&.2"9'!!/-$;AS3#)(TQ]*ZRY.,
M"4PQ-7*K=B#3W+BN3P9'!V(K5S.Y^#SA];,Z$U5!/JH8>*WN=I0.ZD9G(P#O
M- /R";C%/T"-5[AZ-BZB<?<PZW+FI(/G_RRUR8XQE!@H?1:@'])6I:,GVCND
M7JL%Z/1R6I[#%<CN:G?<+='4A3U<07BAZH>SINU8_9J=>Y*!\(NT 6KE4=RD
M+FI^:Y.W'LI427OAH_B"?WS:5,T_;%NIE=?4E\TGK)(1+#.J<JV2$&:%2JD=
M8@$+2?F09%C^@A+,,K3<JJ@@/?Z?5'JCE6*O@]\[?MIF'JAXNSN5UIOHTH7V
MQ2W ]J NP'M]#5,>3?N9Z*T?LQU\SRO-S2.(Q7G.V $(C=/'  9PP&&AC'YE
M24@LY%K4H@&&<*@OK 7$W1+U(N/H:#&;5O9)E[T7&9;3!?)EA+!T1Q."JX@
MOB_>]5F2LDKZMZ;EJFQO[)0^!Z'J91 +Q')!(2&Y*N^1$XB+,(1<,,%1$H0B
M$T9>:A9"S&T+U,AGZ'YF@[W>,N,;4<^KQ5[\83U I0$X5J&_C!MHX6$[<@^8
MKGS<;$28UO7M#I#./.+N:<N.!__X_8NZ,-Q5SZ_*U>IW3KM" EWU$<S")!4D
MA[&@.40BCV'!8P8I29,\IR2@ =,K:*37H<E<G*:442\M4.*:5GK11%F/V]PA
MYYG%_O@='*$&#K(Z+.)B!HLC/KK1V:3,HZ?X*<=HOF7&)G6U7?XFOXB/XE?\
MGYNJCT5_LU'%$I8%#<(\(@(22AA$A.>0A$$!19XGN?R8,"%:-5M&>YF;7;0O
M:?1G*Y\F8XPC.4X4SO#QS _ZT&B3@9;J8QP@&QC,?_G;8>Z/MSW)E-=2KY_I
M>@_?FZEG7VFQRUW:))DX9+HBB(6(R V2_$^FYGP"BSP-88Q%D..(X# UVBKI
M=CPW&NBE+74=KXV1UC,>?.#GF2:&*7'V0@\R%#>" Z?IPVS1<I[CYD:W+Y3-
M1@^,ZWEK--^_JRZ);E*<#WN7N PAGF0!AS13]]QA7D!<B!AF%&5$)"P5V(BJ
M; 69&W79IJ'Z8.O,:#V">A0XQ;AXID2?0V);@<8:3[?5:,S%>(G*--9@7:E2
M8]^>I?W7!6JJ:_!#OL^!U]FKY\,C7>J-!U6-\N-3<R7^<;>MM_(C+==?/V]6
MJW=MJ4KE:H0%93GD8:C\)G$ \Q#E,,L2(;(B"T5BE#;'CYAS(^A&!5.STL\
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
M7B<E,4,H3KG+]'6K?"7OUZS\7K(=7IGG*3E[=V[\HO)N#(0T2DMR#LPX4[C
MQ#,EG,#A/OO(5>5MLXZ<-SAEMI&KZIQD&;G^W'U'5-)::=.^RA].TL(>E0U:
MLVZ_5S?7+4N$"Q3P!,$\BG.(D@+!0J6]9C@(,E:PF*3$YIC*4IZYL<(^$X>T
M"!_+NF[S$@Z275OG,;EWX,Q.M"88CJE.M=3FJ]6EC379_\,^ N4H=ZT:JUZG
M17M=[/YDZTYX'9]NV4KS(B=<=T)W[93KWF;O<!S];;/>]-7.VZUD'SL6<4(S
MD0M(24(APAF'A* "DB(0.,-QFL3(V-_S:G=SX]+65:.K-_Y3%\/WLX5WYG6
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
M;D>VG^&K=D;?JUVY8M*^[)RH CGD(J49C.. 0811#/-<%)"BC(2,(Q9AK0.
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
MQ(\)Y50K]>/B3$O;7GI!X5;00R^J;M_22ZBJ,;\5K";FZEY&\,< IKF:F([
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
M.(%BP2-Q-$@C2/P80Q00SA/N)B[6JABH*\#2MMF=_&#3.C[[5C^@;_7#.B5
M*>M^__+8ZO&K9I"@[CJI'2ZF1'_B#78/?.=Q/NF>T\L/I (KT*E@,>+/$#Q;
M(7ZZT\\;TV<(SDD0G^DX9GSXL7AJ8MH_Y))=VV8XFTWQ PNE9=.W/K'_OMAL
M!'_+3CAK%(4\]AT*?4<<15#B>A#SQ(%>Z"4DB)TD3I$.)1K(L#16_/+N#>A[
MYZV  ,1)5J#72Y96W6D&]JHUR=2]<N!/J1[H]-.,O3%9137"G'AM)N;,^99%
MFTQO -82GYI(,"NEW@#1,:O>,I1A35A%JU?ZBK/\<]Z8N?N3I^_@)(VB"/I!
M3"%R(A\FKD\A"6CJT# ('5?IXL>..$NC6QG8)0Z1. =N<UN@62_VMJ51(\[Y
M )^80YNKFR^#D_[A18#4;770CKC3[7D%=A5.&TK](HR:#=_]NFD+M&J6#PCU
M+9:GM8*\K;*UMPDS;SE;*\"=E+FU,ZHA"S=W_->Z92 4N3&)!+/&Q!7G>^3!
MQ(D%[Z:8^E'D)4FDY?H;G7%I7-H*K-F*9!Q719:TB=;4-]Q=9:/Y>H\HHV.+
MK$;GFY>/5-4_H1SE!ZV5J:NZ3J),\$5 ?1?BA$40^0F"2> &D$>>FT2^0YQ(
M*[/D\E1+XY%=7;&FZ%*5-:+>7!2NTNK0:@>MB7GD7 &V:I8.K>/P3%?TK'J)
M'JWC"BL4&#M^PHPS9*W,']EF<RXP)G6B($[%$2^@@0-1F@CZ0#&"Q(MX@+T@
M<'VE:$"%N9;&&KVH>D1Q#4PUIK $T<14T4LY?5"1 AZ6N.':3+.2@X+*Q^R@
M\HAIQBJN^/=BPSX\/);=9575%;9R"(ZBQ(NAZU$9!.0'D" 'P<BG/N)8G&"\
M0"]QZ<IL.M_^>1*4=L*"H;3C9;&T<59C#DO83<P<IJ 99*6.PF$M(_7R3#-G
MHXZJ?)J).OZ(:<_#E)=EDU8T*'&Z3HB+7(P=Z*)0G$-B&L X"5,8,\*H3\/
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
M0P"SA8QA^CCVB9=C9=V C_QN-H?QQ715%Q5_="VP?7=[6<QGX>@59/P[);-
M@TE!R408^FA$IEQZ":A$!,\^9RZ#=[MN%0Z!T3/(&Z839)_PZDLW#5BI]]-O
M:&N+I%:"^VTVG=ULII'TA@5 %XVB@262,X_'<XC$&B:TRM*"V]7MZ[!<Z^/T
M#-1-LD]D51-_ U Z7WZ!^3H#*Y9NW'\9(> 1+0GG@1%IK42'#P1QY2XW@@G,
M[NHA=M#9MY.B@=I/]GH.UE-! X"Z.\QO\N[CZ14R=7W:SZ;79G?U]]#XPN+M
M=Q0BJFX\]?,?[U&R"Y1&+!G[61>C=D_D<<>-/,N2J10(Q(C>@=&XK8)BQ"HA
M,N?@=S<R//P:J1=V!FJ5V:]E;$/Y#;B&MRQ>[^-7,(62!3;<6AVU)%HIB>>#
MCR1 *8LV7EB=5)!Z5^'@X1A^0,I G3K[Q]]Q0F_ AOX&R[68")R+FFM7FDJA
M<\K*XRLIT#DU$@E72C&S:U+5(8BY1\! ;3W[Q,GA F[ LKSU\RD:QL4'F'?/
M]5[YQ3C>BD7GP++&"%K(<OF(_N9JS*<7PK#$0E3 *J-E)T$#=07M$SWU%-"
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
M")FJ(.,@838 @O<H[NG%.$Q6&"X%@+?C9F]Y<LY!BE(2SJ"TYTE K!.,"&]
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
M8CO #CW\R)$FYPFJJEN7UUTKR469<#6?S_"X0L6LAK#=(<DR9KP,G0]%)(1
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
MJN? MB(78T$DZ0CK=%VFP#N%AR_S0!73S"O;0V?5?<D[^L%(:4S6K=)U*_N
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
M\R.>$CL[VX)U'**UQ"0'9<R5([Z$J, ,\TRC(^-[/*J?3>^P28G^P=JS!EM
MZ]7EI9__6-N+Y6IF/+V :9DN<\<7!:Z95XSDC+^400C$LX#,Q:BI-%&8^LC<
MD[9A\PB]H; /S;2 N+5"L!4!R-JVF1R;B3OI0C(N$3#EK;:EF7C)%0GHHLI0
M*B-I[;J? TD=-ISOWRKVI[?VPHN_P_CB"X9V9]]@[B]6P=81@<:NSQT9<NQ-
M::7@8W/0\"W(O+?4&$N)UZ49NLT2%>XSB=E*!XQ2G53EC?H8+?5LU89T?[NZ
M##"_3EMM(CX9KA0O8;YDW2M[3YRU0!@+F07 >-KWUPSV&80.&VI4P<_C1JHO
MA;5GHC[!14DS^6GZ*\PNYO[KEW%\/^WJI8\L,=GKP\?6FCR?^DH&['KEC_"U
MM,V87MP!4"236$F#.4 77C-& @^2L"0\UQ"--+5[6#]&2ST#=EW5M2AE76]1
M@/.IG]Q47G4'^&QZT?4661WIKW[<J<-/SN;@-S>-RF""DQZE5/JW@U'$*Q-)
M%)XR;96S4/N2L3]NAC6%59#XN"D<5/7MV<N;Z=!G\3^OQNM/7 \RDCN^=J1E
MW)?.2N9PV]#L6R JI9R/PA(I+9Z0RAKBN V$.5..9!.E-Y4W^RYZ:IK%F[N1
M]PD5U$VPN YJBM@1K/>#FZZPI(0^]VNK0--@3)G$[%%&6D843XC$@Q5)0E!
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
M.(N+_J3G8#00]' .[C@@YMXL%Q]J?NCG!7T@74_?WYSZD#93Y>Z8C)+[B")
M44@.A7 D?C+XP!8KE4!>M&D]\. @0J>=@'!:+(^NR [0^I08WV&JH\HV0>?O
MWZC7I)D7;U_^?'-\WY;[ WPG"*L<BY$AF,0B'5N'X!/]5EC&O)9!DR@:(WHT
M9J8=3'A2U/<!B(9C,YMEGUZ'^>H?X>**7.BPOEI=#VV\GH01%OFVX6->5]UN
M_CR'R[O_RG(1WE6)K.:+#S^$]?PFF7Q(0FH,,H[,48TNF49IJ[N/OIJOT\6R
MDO)-IC6%:%+VX+U"4%XQ""J8NK#2Z6+(""_-I[\\0<_1$V]N?_:U'EX\JH>W
MBSO9TU_X=;E8?:>*6^<_:6&D@1A-C75* 8'I M[R$+2(B*+Y+*96Q$\\.Z<5
MWA[,S)E$N1V8*W>,__#U[I=_F^.*B/KX]0U^P8M->%[1NR)9K),3Z^I2C(&D
M;$4MRTK(=%"R^8K._2CK!(^GA<TN\+;384_(_/8-?,C?39 _:2M8(I.L&.U
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
M1]I@3P9_72[2#8_.&LL-,Z"CK-6Y6*"6;8/WR?I,'!+7$Z'SGLII0Q[] ?1
M_77P;M]/7;\K)J/[7]I2IZ5RKW6=M:#!<^. 1(4"=>"86@=T'R%CVA#)Z3!V
MK 8F?(&OVR<?%B>^_[A<;99VUQ+P1]C31C%EE "CD,3%I(:(HMJV1JJ<N7FP
M?&=7T^K@;^^%*GN^J#J%2IHA[G25QB]RGM<?7P.89;GZM/G6B!7%3WUO[,KA
MO7D]386P$S)%%CQP6T?C\1+!H>6 ,09F2_*YN;D]3H7PYFB]NL*ZB>&FFO^'
ML/C7>L:M]<:[#$GH4K.Y 4(1"E![9WW2606VUW7VR _ONJ!WB&J_NZ".E6('
MAM-F30T=N7>8D 13H].9)\RB!' )!=W74M"K3>X):O0HR)?F&!LC_2$5T\;/
M1@!,(X%W )GO?89M"^ =AHOYOS'_5)-J2@EM(]<@8G5W%7D1P1AZF.EL1)Y8
MLLW["_:G;MIHV8@0&TE!W4/OQ<7%\H^P2/7W+XFX^67=132S=;(>]P)R<N3*
M<N[ JYC(*<G19R2IYM93X0ZA<]IHV61P;*"T[H%Y>^0VG"GD$3,7$)2OZUQ8
M+>!4!7(IY*0([9QJ'1G;G[II(V*3WXF#%72&W:HO/I$+79E]N5Q?7B[O^W5'
M=".?_N3HGN0 CD_C3'(FG+9& R&7'EOO-'CI V1C3&*!O 0\40+QI.VFR?(0
M4Z:KG#DZP%DC.",8&,^*D\YHW;S(^_S;38=@Y;!VTR%JZ>"MW=6;YG@R1KA4
M>W"(#<<#^$ ^>.U8LSS:D&WS >CGVVXZ2.E[MIL.T4 '0&I:/^J\Q*!3 5ZR
MJEOZ# 34 DK@CC$R5D)IG6WZZ[>;#@+4F.VF0[3; ;+O^Q8?=$QD+ZVR,H.Q
M1H!*MH[EMJK^@Q=O9&F?F-]-S5^HS7000G:VF1ZEK@Z ]U2_HN%6!IG(<JDI
M895(5J%@!/0J,2^UX>7_-YB>&GJM%-8!]I[N5;319%>\!*65JIL?#5D^D;QZ
M+6S2*<:(S2?\_(<TF!Z#OW9*ZP"!3_<J&LZM9<A(3)(<N1 R.,LM( ^2E225
M#JW[_/Y3&DR/06 [I76 P$>[%YTQ:&QMD@T8Z!Z/IG9H.T KO8L!Z5BUSL+]
MQ1M,C\';T2KJK\%4T"EP1DA@J38\<NW!*1*'X^2]*<5D<?LM /DK-Y@>@ID&
M\IX:+?=Q^%=7JVO-5<]>!X75>0&M2RT-U1HB\ZGFH65P]"\EYKT@\_C/[Z7]
MJG4$KI5(^T/%[8*\3)X%*YF$(D3MM.?@$B-H,\>\%1RU+P?B8LI 5S.]/8V#
M X0X-1(>J>*]G>UAE$MU:;"-FM4QQ1ZB(?NK6&FU%M*:M!\4=GZB*RP<HKME
M<T%V8,/>U7@_Y,0&9KEG&@RK_F#T >@&-5"*CR;Q>F*:)Q!W4C/-&],>/8WE
MW@&"[AFH9MGFD@WDKB'W=8,#F=5*<@/11PT^%BF2\*6XUF'OAU3TTI\[5E[P
M2+EWAYR7X1(_+%?S?V]T=',6F#<*(U,@C=]4Z])M6K('7[ X*[3%[3+YQDAZ
MC*II$RG'ZOU)&!VMA Y@]<35RD31/* DK0==IXDC1*V($ZZ52MP6UGQM^Y%/
MVHE@=+S>]W_?ABBA!S@-ZK_C0K%<;_1<4JDSFPMX7RSQBF086JZ9;)UW:S^Q
MZ01C L9Z%<?35@=0W&9IJ\[VV\K+S6*DF4C(E-FDL3?]44@/@TEU2[U@,161
M+;8VX8?2V$OY5G.X/#,6H*GN.IRHLL5?2E>?KB[HE<D_K9;K]=\7JV\Z8W[
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
M?SE$#U,7F;U_\?+]?#6_6K_(7\(B87[Y->)J@9?SM/[I4_S;S80-=%IZ<D%
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
MB>GLA5(IF+]05=?K,%_](UQ<U;W$=Q7=CZGKAV]*OK_MB?GAZ\-D\O6C$6M
M-SH/4DL/*MH(4<0"Q'U*)HCH9>M[<3QN>KE4Q\7S@VZE/M#1@0FPL\A&RQCH
MP>$RDL&LLB9_5]9&".619Z%1M+XL>BQ;ZP4G^U; [:^T+J%WXZUE+P,J4X<_
MJECGZ=8D&EE 9%-IC<@YEZTKF<ZL FZ GO>M@!LB] [ \UA1ED@RDT./()E6
MH(@P")[>!H'( I=!9-VZT_=\*N &Z7>/"K@APNX +]_<WW>7^KTC%[E,*(2J
M/?09E)$,G'49&!J&0FI--_-HMO$C!$U;,]?IJ]=.A5WA<>/^KV=<9RXB%^!Y
M0C)G-9U494DR,D;MF0ZN^7;.;1IZ\06.5N_3H99ALNX**]^L?YP)^HMH$P-M
M.!TE-('\GU" _IWW4C+[S3;)$>*Y=X3T4M\['FH.E?J9!.:N#T58Y(M[/F\^
MA7FY" N\C&$]7^<KO%S6F;'S#Q\OEV59"OWWFL]0;4',*/-6FTNI@YB@X<*E
M7"PDS^A\6!;I2O06<D9OO$E9J/#7B0G>?_KNJGA;MAZ'64RJ6,4S:"7K>F9)
M(F&>0=29'@9)%X8?[QW>35<O;_.X&-M]!S?26%>O^8;\E\N+"W*K5N'B?HGE
M[\MW>'FU6KP,ZX]O-Q?(S D4@94,R0562TP52;'0N^-SB5[+0(_0N.;A?H3V
M8@U,A=.Q='KLWJC?Q_-<$&720=29E75K"UE $#1/=/X$_2>/R,-XC\@ S^4$
M5063HFZ8)CI8!?_,[7ZWI7D610K<<PW%YQHUR I<BA8PE6RLERR+IPJ61WB3
M[VB;=H'8],AKJ+FNWN;[/?9W=_F[:M'7:SQ=A/FG;^YQIJ/C3B= [9&\3%O
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
MI-\MCF[;3[2@$U4\A)+J"%>K(6AE()-;:Q,CODSK04U/T3,QEAKI?"\H':"
MJ2-<#WAXFRZ7$5>"<7<W"(&<DV #A.3)KL/L2$1D/$IOG*;_%8+OUU+^_+=Z
MQ,HA2EV.)^'N /,+T?*1E,UNF^F1%5*] \M" N5)9(X\"Q#!\Q S'3-Q(%RV
MOC2MPW4BL!PCW6ZA(FZ8\9:G& K)Q7(2DV,>HC.IKB)52>822G#'045,.;%D
M(J@<(MT.;)J-D7=C\KVY:S%#)M $;B&A%J"*$.!U,F 4H@[1>FM;AWD>)63B
MRV8DB_AXF7< G-]NO[MA8W/8UB^N+C\N5YMT3JU5LS)PB%QRNC&5KZ'/ "E[
MH650+$;3&$%/4S2MD=- Y0_J]IO)OSLT_196;U>;&81YLT/[-UQM&*RK#4N0
M@2Y73GZ#"HD$AJ56@*,U/ E/S_&HJ-I%V;07U=CH:J*/#E#V<OGITW+Q-$NR
M&++\D7R!@M74XPQ<LA%*=#)Q1D]Y<XCM0=:TIE1[?+761%_@>G ;<^DL2[7*
MRPL'BA@ 'R0#'5$F9E+DHG6UZQ/D3-NQ,2J8CI+\U)[;/Y:7^./B<GYY@?GU
M<O5C2!]O6*M<O;VZ7-?!1O/%AUF)W'A5XV>JT.LN+0=7+(,L0BHR6N7\%IYV
MN'![?W+:/HIVF!E1T!W<01L!/8R[WAV'%Y]J,PB?>4^VH2=SD.=H0=E:;)5,
M7=I31#8A,69;3_W9D[2]<&;ZQ]F8&ND/:/G5U8J.R_]C[TVWW+QUM-$K0G^<
MAY^.[>SC/DGLXSB[5__2X@#:ZEV6W)+*._ZN_H"2:G"Y!@U\]5*5[-4K79-%
M# ](  2!36W?9@^>2*M\XIQ\0ZD#J&P][;PI@K$^^F"%^J$"LS7&[J%J)WC9
MLX77L7KH'%EK_W!BHT!EI:BOUH@A3T%'"!1T"!^T+YH[8O&$P%H3M1.NW//
MU?Y:&-NQ>MI*?INO_AM7O^.JN@23XI1T#!%8;;.E0@[@N%004S99>HSZ;E.\
M!WMP[K7P3BCR_:-H<*'WLT]EQ,^8WRY>AHN+>[=?$3)F&5-MDNWJ>Q\#KCZ^
M%0HEDVB%,P/M5D^1MEM&E/4/MR%5<@Y(VVS(60NIM%!U"#'%*]D;B!H#%$E"
ME-YAS*US#+M1MAO.SBCU/H!"^H'9G4CE/=;[TMH1\CIDN?F;J^"%)UMW;PZV
M* U*D[/I"G= 04LJ*>I$$CU).+D+M;O!\8QR]2=27&=.W);-GRZ_Q9#^]?K/
M-%UB[5;J,R^VA 2\U#$BNMY&2%TO9@5FASYEN=O+T]W6VPU-9Y"9'TK&'>QL
MM_+#KZ9?IQEG>7EUR_ R+#^]"],\"3%B+-F"CM*#XJ$V]I:9!!=,0<-E*#L-
M<3HL1?\@7;OAZSR3]6V4T0' KE[CO"W7+$VD+=DQ%T"XVHZ^D+0<%QG$.I8)
M@?'F[M@]9.P&GS/(V[<2=7\-JC>U135")M/X@K/E^K->_UF_Q-;/H Y=Z]@7
M44UX;/0XZM5TF2[FR\L%OBVWR7F/%_42ND[U7JZWHU@)O@+<]:,:$93 F *8
M5&*=?Z7 ,4*O8HY+IAFW.,!HXB,H;OCXJJ[Q@QI?+!;UB?5ZS9^^W?S-EHX7
M]:WMIFA.9YV"(,MT5E+@G34#+[@&8;S0J%"0]%K'":V('WTHP*DP^\A#L!.J
M?^1I7N\K2^OW*D$YFVJC/$FG$B@I18WG#5BI R:&)KJ=\G=/3.^Z7K";1V"G
M5/;\6,GW )=M 7@N1@=A-%B&Q'BAZ#I(XR K<F:ET"+SG<Z'70 S]B2O Y5U
M5]T'2&YDA?\ZG4T_7WZ^JODO.CCA1>WD2MLKDP&\E9$ [X-$[TLQ.Q4[/Z'R
M[Q8=6>F'J&S>0GYC*S[\>8OP3 $I9T$#DTB$2U[ &V5 >^Z*4\'*W?K6/Z7X
MVXN.-WNMB>(/EE\'<?[F>*,_7F]Y16KC@LY@H]:@5.WI%PFU@?#JC+.*Q^;=
MXV\3T,WCF!$\A>,UT@&<#A?<#=NS_.XBS'X+GW'[LBUZQH-P 7AP) -+9W"P
M#B%:QV((:(IMW@YC #Y&'OMR.*SN>[(^IHX[P/GKSU\NYM\0UUF@MU^J +;[
MOY(Q:&<]V)3JI'=FP*.K==HIA6"25+EU<<2#Q'3P"GY4G,R'4%H'Z'N'BW56
M<99P4_]Q[7LH'ZV.($D0Q$8M9:- !;P32;G(G!>E,?8>(*6#)_4](:^%PCK
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
MN?HT7ZP[>$]*2EP+KZ$$%VL_T$"[@2--*-H3(LM)Y=;M%IHR,&[%^CF:QPF
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
MEWC[^?;5Y+*D0G*LMKA/9&'*(\1"S!B>@HPIE9);'X8/T=(?@ [1]7P P7<
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
M*QOW%*5! +$JY2'Y]:NG'U^7FX:EVN4BO+J_#Y.L2GR<3@.4$ MVK](I-'/
MDE6(CY-MF!@6#K"RRY!7IH\0G& #CJP&W,<1VHA@Y P7>IOFN+[P#)*LWMO?
M%78)X>4)D03K1R6KR0GR@^QD.QP8]%:F$:(G;"/25>/X>,,>/EAH]:[0E6$(
M(AVAZ,IQ?-1I,\!"EK/ZK?7ZZCF226AIFPN7KC;'1S G-UQ+/&YT]6WC1+=O
M==%1"CH&C$:HXR@?Q7P6>C];==KJC 2_/1JD@8#I6J,>F@E/AED!R4*\8_0Y
MGZDN6J@/ B(SW%7)D7(U#DY$V/#(]'+RKD D7%)$5*)</O*\Y+#&GI+OA<(0
MI8G$NHBGM^.,UA61(QZ!G<!D3LUW9P"AB=KEK==YW:G@#XJ:4&0I1E^U[%00
MZW,P*(V2?28SG,1]+RA9!C)P[]U+#[%ZC_GGN8YG>I'IFRR7V^C;U\-X-_J!
M&B#+5_JJ.H8V8H5G16Y\?%I%=/!<:3\J61+35\M!@O@L@/<J_U,<5VJ!=>4<
MI &RC"?"8CE(&['"MP94I>+04XQBJAY(LFRHKXIN:GCI]JX0"U4_>F;ZF:Z4
MCJNM=:BS'=,.6>X426$(B0QE_R154M$\6_VJMN*Z?$M,[S]$_TRAO;,QNFPL
MY@B \,EP&)@>?ZG>KI5Q;?TB^OI6I&(E\^#[,+P:I$O_8@X'**^\AH1Q8TF4
MU@;?;7<ZBG/3@2>9R'R/LW?S:Y$NQ8PT*,8QR^<$AKG%<\#2W1&!< CCN=>S
M&(A\CF[#@D1D%>L:YHA15D")S)P+'\270NJC7\%QRB.: 8G,*O0UGD.N54#S
MYZDJ@)K(*-4_#F,1*G_FT?Y3=O:D&7;A#P0_8%X;<L)K?8X@9 G7$2J<S\AV
M[ZD30E]%7.3R65P;-[%6>A]<.F)'I).IS;<"=IXZD)PD;?,DX'E(4!%)/S!=
M]953"C6.%V+IYD(AZ'1"H:PI&>9:.3I.7^1C3+I'D:.-17GYTRA1>DBXU"J^
MY$ISJ4^\U">.TV;Y]T)5Y_'0Z=%$(BNC<LT.:V>I!4B2HUDX4Z,-1[>L6^E6
MD+Y3WSPCHO* %3PGSG'(BM1<,\+24>I-;6TM3M"MBT:W;(>=X[GE+Z[5HTA$
M^:AU/8:"4Q=V1+J%Q$\O)R_4YQ1CRO*XJ9^M5C(VN+<ISEP;1J=S@7Y:@OFB
M]IE"Z/=:%;N[+"L0%77ADE7G^OK188ZH/>JFO!%R>3042T47+EE=KJ]W'>:(
M?"ZJA<JC!",/W,8B*[?UGG-6+N@5NHIS<Q)/]O-(+I&$LD&2%=;ZZ^5@AOJ@
M7)X4C86E55BNL0^3K%[64[@!;JBWG8?(\-7S&LTW]H+2E;KZ[C('Z&&D7F79
MF8? %-&&35>GBJ"E@RP.KO1H*KI#[46FJS -\:M#1%%75GPI9+XOGT'[1J4Y
MWFR_W>PH5\8887J+I>[(IN@*3CWE]J.2^MC8<C.?LFH1J1Z*W:C$L/R08YTD
MQS5%5ZOJ';OSH9*=_O<BOTMCM46*H8,:H"M91=.ZGS9V"G>"S%,I[6@(I#BK
MV)$'C=0W37;=3]GS.OB%(SJT#9#>G*)/(\EC-\EG^4;HB>>WO0V0U)P"5R/)
MHY[5T5.11/J#S'+$5'<_*DA.3N&L08*H!>QZEN"[?^V0H&H%3L$L-S7DD?^#
M\\<7< @;I"2G4!:0+$))B^S[=13M_CINW#^HS%6OM8JRI\J(^A]K)9,\._SF
M)*D=&R0BEP"6DQ[RW4YKYQTZ_:R (+DX!:!<M%!_ZEQNJ,H>(0EFPP/IQ2E@
MY""%0X@?Y7K,<R"00)RB/#8:R#<A*KA4\H !TH-3#*;5>1YEWL%RC*U7?<,I
M3,*P3%6E[\W&I3;LG<AB+:LT#%*=ZC \2$1. 1 X9>3KTE*6=D7)#Z_>/)]Z
MAY5^'D('*<LI%@(FC.N%&LWW@^8JD;$4V5RKN&EYX.T:CF90KMJ =@/AWHW^
MICHCQ?-#UF'\H$]N:_CE.3362ZG#Z(0?@H)U:WZS"^2+_%-JFYWW*J]-Q7'A
M\%;(ON1"U=G!W_0>O?Y#^>,IRL0OW_T+4$L#!!0    ( !0T3UC]:[90R@<
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
M\7#MIW.0KSL'69#.3 :KPT[ KX$';W>XYV*CYM4#OQGZE="ILK!>L=$)O6K
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
MN(@Q6""HB"G0%JZI.GO#',9I6K 8SI &4D#C' F9@&.W?H=02*-2(I. !#2
M0_0Q\5 ^VG)V[6';:>KLWWX/6V5I":T)+(>0$PBXX"HR]F;H%Y(KC9.E 4PO
M_8BE"P,MX7FNR=*_[AG0_F/(B; )81''Q)'PQUKUG3F);PLN46\UN?8=F=<.
MJR Z[6WV!(B(T]T.*C0L(P,^\V)LZNX?('J'9NPK+7;Z[4ZEEA@7- WF=^[D
M*7DIJ6;(IQEG7,\DK^#73@T9EX0\DYAKC$TM9G$,I(9Z%1&#/"/0)-%:(4]9
MZNMV,AAP8UJ/2;V*N*(H,JQ61;YD4$^KM693N)L%7;G\-J'6-:&F]"0LI9Z0
M% HM0ABS+,?!\L<PX'D6LW+ 4S.B41K6MCRAE$BTN>&Y7OP^B^N$9')3):X/
M!_V^U>NV]?E T2ZG@N7 ]='!,D>''16LRKJ6T^^NE=J6LU9VDU6W;]'1Y[/,
MWCQDO[^[>;!DM;]QJXYM=78W#[9M.9W/FZ^;9=VVNWFL?7+!>O%ULSMFW59K
MEZ(CIX!_UF@WE@H9"P(ZJ _<[!*<]P]HYI"W$B$BNZOMSAS+#RG=/=KJ]JX2
M1$WXT[C$&'YS*D?HR8+)DG85LP-V-D^I2EUWRNJ#]/W_5&Q-I/&SL;ZG:_*@
M_$K!]3 G7\"C0V=L\PFGK(CAT(*Y"!812]XC=\O,_@GQ]G.&Y@/K'Y]U_9Z@
MWR*(">0BY@$L4=WS?/"0 QZBX8'U#[_MSS#E0L*?W$<XE9CS0%^GB!".3&D'
M33EG$G%<MNABSTE=_=L^E9Q:,FI:$3Y9S1@[IA[R4/#YY(+/32_LKN5T-O^J
MW]^UNMW>5W[5OP_K_^GW'\)S73ZOZ^E^5=[-(UVT384"#R% 3#!8UKQ-@;LN
M>9NR>5;(3.3XD7IT[]8U9S(CJ*.\X#G%3.']0W9T85\KQYQY/.:JK*PQ\DHU
M2I, RAHJOXZ4%#U=KO;K*P5J\DJ0&*)$G9)X2CU86NIBO;[N-1<3'P*]PM<&
ML2+]& WK%AEK.:/U!'1T<)/W3.5[(#$F]Y_CR@WO51HQ&<&^4F$>'0H+M5YE
MW;W5VJO3^K.ZN=XQ-^;_ 5!+ P04    "  4-$]8+G;LBO</  #T,@  &P
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
M'Y2#,G<K';;L\FJJ\=OF@;S=W!KG8OBEV_?U1$U&>63FX[DXG^M' UC9Y9K
M^.4H#O*)4JFRR_L-L!?&";)@RJ>(H6$BX)Z+?FS$'/FQ62&ZX+L)T$< 73J
MVXR,$0T#5O'B";&(P1+_11);:E=@K$5+U;SVC.H/K8<R[_8%MLT4/J,0HHC"
M#")JE :.%323/KX0@TQ\"R(>T_D[XQU32UU/(:82XRVD6VP?*&2<&''NA$YS
MG5*WO%XP5Y@YSW&.!6C#[UL$-A]F-"/L1 '@'.B"K^]4<=PG$=OIY'FFJ#P&
MWX)96Q-.H\/ZJ(A?CGDP*-&(@!)TVEH@F%15" Z@(04V,3CS,#79!_V',.PE
M7P\-"7S3->'W1U8'[BC+SUT8--E!(%('V#54 0:-58I04'4,C?<)G9$.I83+
M: BB\&@YQSB%H3OK/([$J),B^-DH&ZCR NV%QPW]^"*$7XNAZL,!:@9'T#W@
MYC1[D718_<%XU"F9AD,(8,N0VS:<AL43SWCZ3YP*-7>$@=D,*K7<9EKI>9A1
M4=+3?'4GG0C%(YM4/.WXE#$M $%\H^,!] 4Q:U*OYBX4\PS89#ZJ/>G+&9]?
MD.W9[ZHBA5E7FO>+3#7WF&V&AQ@XUL+$HP%AQ$V%-23JNPIX ><$572J(G]?
M,_/J*S8SK]:;F5??IIEYA4;['DP7B-4EOK0)X!9("N!]3[I2*='Q)G8:-JZ0
MGC9533HS=E2P'Z4Q*^\WK*3B9&.A\?*6-C?I5)JE7'EY10]TX)WFG2[CS"&]
MO8+5*MZ[PC SFLH3JS2PTOWA&;VAM& Z+0=#BVS8$#E0>+-BQT%,*G:3->:S
MP8:!LHM!Q=E:MW3_2A=2[L&KEU.:+V/;88 T8L?*W$U.#?(0['D6J#+AQH:P
MZ).;BG&H.-[J@L6W&+&$\#WHK8R ,J*V78\ "+.N COX:*34H :.LWYJ(\0/
MDRCXV6#N_4BLQ^&XLCEU"G&Y.4P9]GE8?(^#90IU;F=I4@5R5G3&&K08#N#9
M)KTHDKGXIJ2:HZ4H#&-OL3:%X\V?D%PD-=J3I1X(38[![".F&OH\!N1;/KX8
M$9/ $ZF4<G0D"@F;4\20D<E/L%HJ*C,B'3S8R[3' ?!& ?\O"<DM##FYK$G0
M[/L5F:GE!U#8X(:0*D5XE39U?HX>7'%G/EA)+;^"Q[AK$@V40^>DY9ER"PNU
M5M/ YPG!,F&&/D1 $@CE]I:[A_06\V!81"=W4>RU($1;KSN2.NG5K,B]&(Y+
M^GQ"E(0>?QIX:! -H-9!IE,)__'QUX5C7T.^^-0?O5_"AG6#+@BIO,K=0#?&
MKF!$IGEV.9QS4!V96\50C N,XG#-V+EL]%\R &>?;A193SL)&*V]@(YYC:KD
M?9]>T86.2W82.SRS"SL7E=0UC8"A,\6R8\&C/&U!J7C63?-VN<R1Z$GOE@4%
MUO)T\HVIU\H/_.<G]*]1\%^[_ ]02P$"% ,4    "  4-$]8(7\_UU^$ @ 9
MO1\ $0              @ $     8V=N>"TR,#(S,3(S,2YH=&U02P$"% ,4
M    "  4-$]8P3"'KUH<  "10@$ $0              @ &.A ( 8V=N>"TR
M,#(S,3(S,2YX<V102P$"% ,4    "  4-$]8O2_M(;4Q  "G!@( %0
M        @ $7H0( 8V=N>"TR,#(S,3(S,5]C86PN>&UL4$L! A0#%     @
M%#1/6-7,'T:S@0  S>@% !4              ( !_](" &-G;G@M,C R,S$R
M,S%?9&5F+GAM;%!+ 0(4 Q0    ( !0T3U@?C,/F"EL" %/2 @ 4
M      "  >54 P!C9VYX+3(P,C,Q,C,Q7V<Q+FIP9U!+ 0(4 Q0    ( !0T
M3UC\8L._XJ ! -9C$0 5              "  2&P!0!C9VYX+3(P,C,Q,C,Q
M7VQA8BYX;6Q02P$"% ,4    "  4-$]8T,TCTLCV  "'D0L %0
M    @ $V40< 8V=N>"TR,#(S,3(S,5]P<F4N>&UL4$L! A0#%     @ %#1/
M6/UKME#*!P  $)L  !L              ( !,4@( &-G;G@M,C R,S$R,S%X
M97AH:6)I=#(Q+FAT;5!+ 0(4 Q0    ( !0T3UB[*VC")0,  %0*   <
M          "  310" !C9VYX+3(P,C,Q,C,Q>&5X:&EB:70R,S$N:'1M4$L!
M A0#%     @ %#1/6/1$&A3^!P  .S@  !P              ( !DU,( &-G
M;G@M,C R,S$R,S%X97AH:6)I=#,Q,2YH=&U02P$"% ,4    "  4-$]8,QF8
MA L(  "!.   '               @ '+6P@ 8V=N>"TR,#(S,3(S,7AE>&AI
M8FET,S$R+FAT;5!+ 0(4 Q0    ( !0T3UBH (R$*@4  #L?   <
M      "  1!D" !C9VYX+3(P,C,Q,C,Q>&5X:&EB:70S,C$N:'1M4$L! A0#
M%     @ %#1/6.U#(I<G!0  .!\  !P              ( !=&D( &-G;G@M
M,C R,S$R,S%X97AH:6)I=#,R,BYH=&U02P$"% ,4    "  4-$]8+G;LBO</
M  #T,@  &P              @ '5;@@ 8V=N>"TR,#(S,3(S,7AE>&AI8FET
<.3<N:'1M4$L%!@     .  X T ,   5_"     $!

end
</TEXT>
</DOCUMENT>
<DOCUMENT>
<TYPE>XML
<SEQUENCE>141
<FILENAME>cgnx-20231231_htm.xml
<DESCRIPTION>IDEA: XBRL DOCUMENT
<TEXT>
<XML>
<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cgnx="http://cognex.com/20231231"
  xmlns:country="http://xbrl.sec.gov/country/2023"
  xmlns:currency="http://xbrl.sec.gov/currency/2023"
  xmlns:dei="http://xbrl.sec.gov/dei/2023"
  xmlns:ecd="http://xbrl.sec.gov/ecd/2023"
  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:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xhtml="http://www.w3.org/1999/xhtml"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="cgnx-20231231.xsd" xlink:type="simple"/>
    <context id="c-1">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-2">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2023-07-02</instant>
        </period>
    </context>
    <context id="c-3">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2024-01-28</instant>
        </period>
    </context>
    <context id="c-4">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-5">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-6">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-7">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-8">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-9">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-10">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-11">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-12">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-13">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-14">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-15">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-16">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-17">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-18">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-19">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-20">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-21">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-22">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-23">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-24">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-25">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-26">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-27">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-28">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-29">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-30">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-31">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-32">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-33">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-34">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-35">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-36">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-37">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-38">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-39">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-40">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-41">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:ComputerHardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-42">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-43">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-44">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-45">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologiesAndOtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-46">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</instant>
        </period>
    </context>
    <context id="c-47">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</instant>
        </period>
    </context>
    <context id="c-48">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-49">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-50">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-51">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-52">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-53">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</instant>
        </period>
    </context>
    <context id="c-54">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</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>2023-12-31</instant>
        </period>
    </context>
    <context id="c-55">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DistributionRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-56">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-57">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-58">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-59">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-60">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-61">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-62">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-63">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-64">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-65">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-66">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-67">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-68">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryBillSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-69">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-70">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-71">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-72">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-73">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-74">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-75">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-76">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-77">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-78">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-79">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-80">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">cgnx:AgencyBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-81">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-82">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">us-gaap:ShortTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MunicipalBondsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-83">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CorporateBondSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-84">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-85">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:AssetBackedSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-86">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cgnx:InvestmentDurationAxis">cgnx:LongTermInvestmentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:SovereignDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-87">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-88">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasurySecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-89">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-90">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-91">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-92">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-93">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:BuildingImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-94">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-95">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-96">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-97">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:HardwareAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-98">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-99">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:EquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-100">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-102">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LiabilityForCatastropheClaimsByCatastrophicEventAxis">us-gaap:DamageFromFireExplosionOrOtherHazardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:BacNinhVietnamMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-104">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-105">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-106">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A88000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-06-30</instant>
        </period>
    </context>
    <context id="c-108">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-06-01</startDate>
            <endDate>2023-06-30</endDate>
        </period>
    </context>
    <context id="c-109">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:SG</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">cgnx:A27000SquareFootPremisesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-111">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:SouthboroughMassachusettsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-12-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-112">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:SACSiriusAdvancedCyberneticsGmbHMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-113">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-114">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-116">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:NoncompeteAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-117">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-118">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CustomerContractsAndRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-119">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:OtherIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-120">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-121">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-122">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-123">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:CompletedTechnologyMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-124">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-10-18</instant>
        </period>
    </context>
    <context id="c-125">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-126">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2022-12-07</instant>
        </period>
    </context>
    <context id="c-127">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-12-07</startDate>
            <endDate>2022-12-07</endDate>
        </period>
    </context>
    <context id="c-128">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cgnx:DistributionNetworksAndCustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-05-26</instant>
        </period>
    </context>
    <context id="c-129">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DerivativeInstrumentRiskAxis">us-gaap:ForeignExchangeForwardMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-132">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-133">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:EUR</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-134">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-135">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:SGD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-136">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-137">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:MXN</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-138">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-139">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CNY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-140">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-141">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:HUF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-142">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-143">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:GBP</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-144">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-145">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:JPY</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-146">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-147">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CAD</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-148">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-149">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CurrencyAxis">currency:CHF</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-150">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-151">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-152">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-153">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:HedgingDesignationAxis">us-gaap:NondesignatedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-154">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-155">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-156">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AmericasMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-157">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-158">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-159">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-160">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-161">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-162">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-163">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-164">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-165">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherAsiaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-166">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-167">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-168">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:StandardProductandServicesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-169">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-170">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-171">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cgnx:ApplicationofCustomerSpecificSolutionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-172">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2016-04-27</instant>
        </period>
    </context>
    <context id="c-173">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2018-04-25</instant>
        </period>
    </context>
    <context id="c-174">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-10-29</instant>
        </period>
    </context>
    <context id="c-175">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramOctober2018Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-176">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-03-12</instant>
        </period>
    </context>
    <context id="c-177">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-178">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2020Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-179">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-03-03</instant>
        </period>
    </context>
    <context id="c-180">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-181">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-182">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cgnx:RepurchaseProgramMarch2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-183">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-10-03</endDate>
        </period>
    </context>
    <context id="c-184">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2021-10-04</startDate>
            <endDate>2022-10-02</endDate>
        </period>
    </context>
    <context id="c-185">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2022-10-03</startDate>
            <endDate>2023-10-01</endDate>
        </period>
    </context>
    <context id="c-186">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-187">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-03</instant>
        </period>
    </context>
    <context id="c-188">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2021And2007StockOptionAndIncentivePlansMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-05-03</instant>
        </period>
    </context>
    <context id="c-189">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-05-04</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-190">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cgnx:CognexCorporation2023StockOptionAndIncentivePlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-191">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-192">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-193">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-194">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-195">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-196">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-197">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-198">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-199">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-200">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-201">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-203">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-204">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-205">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-206">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-208">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-209">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-210">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-212">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-213">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-214">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:ProductCostOfRevenueMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-215">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-216">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-217">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-218">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-219">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-220">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">cgnx:SellingGeneralAndAdministrativeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-221">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:RevenueCommissionersIrelandMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-222">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">us-gaap:StateAdministrationOfTaxationChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-223">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:JP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityNameAxis">country:KP</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-225">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-226">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="c-227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:ForeignCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-228">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-229">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-230">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-232">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-233">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-234">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-235">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-236">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-237">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-238">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:PerformanceSharesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-239">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-240">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-241">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-242">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-243">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-244">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-245">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-246">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-247">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-248">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-249">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-250">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-251">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-252">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-253">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-254">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:EuropeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-255">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:GreaterChinaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-256">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">cgnx:OtherGeographicAreaMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-257">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-258">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-259">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cgnx:Customer1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-260">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-18</startDate>
            <endDate>2023-10-18</endDate>
        </period>
    </context>
    <context id="c-261">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementScenarioAxis">srt:ScenarioForecastMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cgnx:MoritexCorporationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2024-01-01</startDate>
            <endDate>2024-03-31</endDate>
        </period>
    </context>
    <context id="c-262">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-263">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:UnusualOrInfrequentItemAxis">us-gaap:FireMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-264">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-265">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-266">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-267">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-268">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-269">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-270">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-271">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-272">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-273">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-274">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-275">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-276">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-277">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-278">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:OneTimeTerminationBenefitsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-279">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringCostAndReserveAxis">us-gaap:ContractTerminationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-280">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:AccruedLiabilitiesMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:RestructuringPlanAxis">cgnx:December2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-281">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2024-02-15</instant>
        </period>
    </context>
    <context id="c-282">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-283">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-284">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-285">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-286">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-287">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-288">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:UncollectibleReceivablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-289">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-290">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-291">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-292">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-293">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-294">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-295">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:SalesReturnsAndAllowancesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-296">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="c-297">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-298">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-299">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="c-300">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="c-301">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="c-302">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="c-303">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-10-02</startDate>
            <endDate>2023-12-31</endDate>
        </period>
    </context>
    <context id="c-304">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockPurchaseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <context id="c-305">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0000851205</identifier>
            <segment>
                <xbrldi:explicitMember dimension="ecd:IndividualAxis">cgnx:JoergKuechenMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="ecd:TradingArrAxis">cgnx:JoergKuechenRuleTradingArrangementCommonStockSaleMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-12-31</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="lease_component">
        <measure>cgnx:lease_component</measure>
    </unit>
    <unit id="jpy">
        <measure>iso4217:JPY</measure>
    </unit>
    <unit id="eur">
        <measure>iso4217:EUR</measure>
    </unit>
    <unit id="sgd">
        <measure>iso4217:SGD</measure>
    </unit>
    <unit id="mxn">
        <measure>iso4217:MXN</measure>
    </unit>
    <unit id="cny">
        <measure>iso4217:CNY</measure>
    </unit>
    <unit id="huf">
        <measure>iso4217:HUF</measure>
    </unit>
    <unit id="gbp">
        <measure>iso4217:GBP</measure>
    </unit>
    <unit id="cad">
        <measure>iso4217:CAD</measure>
    </unit>
    <unit id="chf">
        <measure>iso4217:CHF</measure>
    </unit>
    <unit id="vote">
        <measure>cgnx:Vote</measure>
    </unit>
    <unit id="group">
        <measure>cgnx:group</measure>
    </unit>
    <unit id="segment">
        <measure>cgnx:Segment</measure>
    </unit>
    <unit id="employees">
        <measure>cgnx:Employees</measure>
    </unit>
    <dei:AmendmentFlag contextRef="c-1" id="f-30">false</dei:AmendmentFlag>
    <dei:DocumentFiscalYearFocus contextRef="c-1" id="f-31">2023</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus contextRef="c-1" id="f-32">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityCentralIndexKey contextRef="c-1" id="f-33">0000851205</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate contextRef="c-1" id="f-34">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="0" id="f-35" unitRef="shares">171633726</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityPublicFloat contextRef="c-2" decimals="0" id="f-36" unitRef="usd">9631957405</dei:EntityPublicFloat>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-1" decimals="-3" id="f-404" unitRef="usd">4389000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-4" decimals="-3" id="f-405" unitRef="usd">-5943000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-5" decimals="-3" id="f-406" unitRef="usd">-2206000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-1" decimals="-3" id="f-407" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-4" decimals="-3" id="f-408" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax contextRef="c-5" decimals="-3" id="f-409" unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-40" id="f-424">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-42" id="f-430">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-44" id="f-432">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-46" id="f-434">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <cgnx:ProductWarrantyPeriod contextRef="c-49" id="f-438">P1Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-1" decimals="-3" id="f-462" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-4" decimals="0" id="f-463" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-51" id="f-464">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-40" id="f-465">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-52" id="f-466">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-53" id="f-467">P2Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-54" id="f-468">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <cgnx:MaximumInvestmentOfCompanyInPartnership contextRef="c-1" decimals="INF" id="f-469" unitRef="number">0.05</cgnx:MaximumInvestmentOfCompanyInPartnership>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-55" id="f-470">P11Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-42" id="f-471">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-44" id="f-472">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-46" id="f-473">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <cgnx:ProductWarrantyPeriod contextRef="c-49" id="f-474">P1Y</cgnx:ProductWarrantyPeriod>
    <cgnx:RevenuePaymentTerms contextRef="c-49" id="f-475">P30D</cgnx:RevenuePaymentTerms>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration contextRef="c-7" id="f-963">http://fasb.org/us-gaap/2023#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration contextRef="c-8" id="f-964">http://fasb.org/us-gaap/2023#OtherAssetsNoncurrent</us-gaap:DerivativeAssetStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration contextRef="c-8" id="f-965">http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration contextRef="c-7" id="f-966">http://fasb.org/us-gaap/2023#OtherLiabilitiesNoncurrent</us-gaap:DerivativeLiabilityStatementOfFinancialPositionExtensibleEnumeration>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-192" id="f-1065">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-195" id="f-1068">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-197" id="f-1070">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-196" id="f-1071">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-198" id="f-1072">P3Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c-1"
      decimals="INF"
      id="f-1205"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-4"
      decimals="INF"
      id="f-1424"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <ecd:TrdArrDuration contextRef="c-303" id="f-1559">P360D</ecd:TrdArrDuration>
    <dei:DocumentType contextRef="c-1" id="f-1">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport contextRef="c-1" id="f-2">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate contextRef="c-1" id="f-3">2023-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport contextRef="c-1" id="f-4">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber contextRef="c-1" id="f-5">001-34218</dei:EntityFileNumber>
    <dei:EntityRegistrantName contextRef="c-1" id="f-6">COGNEX CORP</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode contextRef="c-1" id="f-7">MA</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber contextRef="c-1" id="f-8">04-2713778</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1 contextRef="c-1" id="f-9">One Vision Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown contextRef="c-1" id="f-10">Natick</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince contextRef="c-1" id="f-11">MA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode contextRef="c-1" id="f-12">01760</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode contextRef="c-1" id="f-13">508</dei:CityAreaCode>
    <dei:LocalPhoneNumber contextRef="c-1" id="f-14">650-3000</dei:LocalPhoneNumber>
    <dei:Security12bTitle contextRef="c-1" id="f-15">Common Stock, par value $.002 per share</dei:Security12bTitle>
    <dei:TradingSymbol contextRef="c-1" id="f-16">CGNX</dei:TradingSymbol>
    <dei:SecurityExchangeName contextRef="c-1" id="f-17">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer contextRef="c-1" id="f-18">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers contextRef="c-1" id="f-19">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus contextRef="c-1" id="f-20">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent contextRef="c-1" id="f-21">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory contextRef="c-1" id="f-22">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness contextRef="c-1" id="f-23">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany contextRef="c-1" id="f-24">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag contextRef="c-1" id="f-25">true</dei:IcfrAuditorAttestationFlag>
    <dei:DocumentFinStmtErrorCorrectionFlag contextRef="c-1" id="f-26">false</dei:DocumentFinStmtErrorCorrectionFlag>
    <dei:EntityShellCompany contextRef="c-1" id="f-27">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat contextRef="c-2" decimals="0" id="f-28" unitRef="usd">9631957405</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding contextRef="c-3" decimals="0" id="f-29" unitRef="shares">171633726</dei:EntityCommonStockSharesOutstanding>
    <dei:AuditorFirmId contextRef="c-1" id="f-37">248</dei:AuditorFirmId>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-38" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-39" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-40" unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-1" decimals="-3" id="f-41" unitRef="usd">236306000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-4" decimals="-3" id="f-42" unitRef="usd">284185000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold contextRef="c-5" decimals="-3" id="f-43" unitRef="usd">277271000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit contextRef="c-1" decimals="-3" id="f-44" unitRef="usd">601241000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-4" decimals="-3" id="f-45" unitRef="usd">721905000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit contextRef="c-5" decimals="-3" id="f-46" unitRef="usd">759827000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-1" decimals="-3" id="f-47" unitRef="usd">139400000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-4" decimals="-3" id="f-48" unitRef="usd">141133000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense contextRef="c-5" decimals="-3" id="f-49" unitRef="usd">135372000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-1" decimals="-3" id="f-50" unitRef="usd">339139000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-4" decimals="-3" id="f-51" unitRef="usd">312107000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense contextRef="c-5" decimals="-3" id="f-52" unitRef="usd">309354000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <cgnx:LossGainFromCatastrophes contextRef="c-1" decimals="-3" id="f-53" unitRef="usd">-8000000</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-4" decimals="-3" id="f-54" unitRef="usd">20779000</cgnx:LossGainFromCatastrophes>
    <cgnx:LossGainFromCatastrophes contextRef="c-5" decimals="-3" id="f-55" unitRef="usd">0</cgnx:LossGainFromCatastrophes>
    <us-gaap:RestructuringCharges contextRef="c-1" decimals="-3" id="f-56" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-4" decimals="-3" id="f-57" unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-5" decimals="-3" id="f-58" unitRef="usd">0</us-gaap:RestructuringCharges>
    <us-gaap:OperatingIncomeLoss contextRef="c-1" decimals="-3" id="f-59" unitRef="usd">130702000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-4" decimals="-3" id="f-60" unitRef="usd">246229000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss contextRef="c-5" decimals="-3" id="f-61" unitRef="usd">315101000</us-gaap:OperatingIncomeLoss>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-1" decimals="-3" id="f-62" unitRef="usd">-10039000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-4" decimals="-3" id="f-63" unitRef="usd">-1837000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:ForeignCurrencyTransactionGainLossBeforeTax contextRef="c-5" decimals="-3" id="f-64" unitRef="usd">-2270000</us-gaap:ForeignCurrencyTransactionGainLossBeforeTax>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-1" decimals="-3" id="f-65" unitRef="usd">14093000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-4" decimals="-3" id="f-66" unitRef="usd">6715000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:InvestmentIncomeNonoperating contextRef="c-5" decimals="-3" id="f-67" unitRef="usd">6660000</us-gaap:InvestmentIncomeNonoperating>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-1" decimals="-3" id="f-68" unitRef="usd">592000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-4" decimals="-3" id="f-69" unitRef="usd">-412000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense contextRef="c-5" decimals="-3" id="f-70" unitRef="usd">-591000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-1" decimals="-3" id="f-71" unitRef="usd">135348000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-4" decimals="-3" id="f-72" unitRef="usd">250695000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest contextRef="c-5" decimals="-3" id="f-73" unitRef="usd">318900000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-74" unitRef="usd">22114000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-75" unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-76" unitRef="usd">39019000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-77" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-78" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-79" unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-1"
      decimals="2"
      id="f-80"
      unitRef="usdPerShare">0.66</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-4"
      decimals="2"
      id="f-81"
      unitRef="usdPerShare">1.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="c-5"
      decimals="2"
      id="f-82"
      unitRef="usdPerShare">1.59</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-1"
      decimals="2"
      id="f-83"
      unitRef="usdPerShare">0.65</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-4"
      decimals="2"
      id="f-84"
      unitRef="usdPerShare">1.23</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="c-5"
      decimals="2"
      id="f-85"
      unitRef="usdPerShare">1.56</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-86" unitRef="shares">172249000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-4" decimals="-3" id="f-87" unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-5" decimals="-3" id="f-88" unitRef="shares">176463000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-89" unitRef="shares">173399000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-4" decimals="-3" id="f-90" unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-5" decimals="-3" id="f-91" unitRef="shares">179916000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-1"
      decimals="4"
      id="f-92"
      unitRef="usdPerShare">0.286</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-4"
      decimals="4"
      id="f-93"
      unitRef="usdPerShare">0.265</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-5"
      decimals="4"
      id="f-94"
      unitRef="usdPerShare">0.245</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-95" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-96" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-97" unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-1" decimals="-3" id="f-98" unitRef="usd">4389000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-4" decimals="-3" id="f-99" unitRef="usd">-5943000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax contextRef="c-5" decimals="-3" id="f-100" unitRef="usd">-2206000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-6" decimals="-3" id="f-101" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-4" decimals="-3" id="f-102" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-5" decimals="-3" id="f-103" unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-6" decimals="-3" id="f-104" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-4" decimals="-3" id="f-105" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-5" decimals="-3" id="f-106" unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-107" unitRef="usd">12461000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-108" unitRef="usd">-16970000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-109" unitRef="usd">-7388000</us-gaap:OtherComprehensiveIncomeAvailableforsaleSecuritiesAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-6" decimals="-3" id="f-110" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-111" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-112" unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-113" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-114" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-115" unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-1" decimals="-3" id="f-116" unitRef="usd">23961000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-4" decimals="-3" id="f-117" unitRef="usd">-21355000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent contextRef="c-5" decimals="-3" id="f-118" unitRef="usd">-14141000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-1" decimals="-3" id="f-119" unitRef="usd">137195000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-4" decimals="-3" id="f-120" unitRef="usd">194170000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax contextRef="c-5" decimals="-3" id="f-121" unitRef="usd">265740000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-7" decimals="-3" id="f-122" unitRef="usd">202655000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-8" decimals="-3" id="f-123" unitRef="usd">181374000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent contextRef="c-7" decimals="-3" id="f-124" unitRef="usd">132799000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent contextRef="c-8" decimals="-3" id="f-125" unitRef="usd">223545000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent contextRef="c-7" decimals="-3" id="f-126" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent contextRef="c-8" decimals="-3" id="f-127" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-7" decimals="-3" id="f-128" unitRef="usd">129392000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-8" decimals="-3" id="f-129" unitRef="usd">218759000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-7" decimals="-3" id="f-130" unitRef="usd">583000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-8" decimals="-3" id="f-131" unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-7" decimals="-3" id="f-132" unitRef="usd">114164000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent contextRef="c-8" decimals="-3" id="f-133" unitRef="usd">125417000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-7" decimals="-3" id="f-134" unitRef="usd">2402000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:UnbilledReceivablesCurrent contextRef="c-8" decimals="-3" id="f-135" unitRef="usd">2179000</us-gaap:UnbilledReceivablesCurrent>
    <us-gaap:InventoryNet contextRef="c-7" decimals="-3" id="f-136" unitRef="usd">162285000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-8" decimals="-3" id="f-137" unitRef="usd">122480000</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-7" decimals="-3" id="f-138" unitRef="usd">68099000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent contextRef="c-8" decimals="-3" id="f-139" unitRef="usd">67490000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-7" decimals="-3" id="f-140" unitRef="usd">678997000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent contextRef="c-8" decimals="-3" id="f-141" unitRef="usd">717699000</us-gaap:AssetsCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent contextRef="c-7" decimals="-3" id="f-142" unitRef="usd">250790000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent contextRef="c-8" decimals="-3" id="f-143" unitRef="usd">476148000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent contextRef="c-8" decimals="-3" id="f-144" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent contextRef="c-7" decimals="-3" id="f-145" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLossNoncurrent>
    <us-gaap:LongTermInvestments contextRef="c-7" decimals="-3" id="f-146" unitRef="usd">244230000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments contextRef="c-8" decimals="-3" id="f-147" unitRef="usd">454117000</us-gaap:LongTermInvestments>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-7" decimals="-3" id="f-148" unitRef="usd">105849000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-8" decimals="-3" id="f-149" unitRef="usd">79714000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-7" decimals="-3" id="f-150" unitRef="usd">75115000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-8" decimals="-3" id="f-151" unitRef="usd">37682000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:Goodwill contextRef="c-7" decimals="-3" id="f-152" unitRef="usd">393181000</us-gaap:Goodwill>
    <us-gaap:Goodwill contextRef="c-8" decimals="-3" id="f-153" unitRef="usd">242630000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-7" decimals="-3" id="f-154" unitRef="usd">112952000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill contextRef="c-8" decimals="-3" id="f-155" unitRef="usd">12414000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet contextRef="c-7" decimals="-3" id="f-156" unitRef="usd">400400000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet contextRef="c-8" decimals="-3" id="f-157" unitRef="usd">407241000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-7" decimals="-3" id="f-158" unitRef="usd">7088000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent contextRef="c-8" decimals="-3" id="f-159" unitRef="usd">6643000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets contextRef="c-7" decimals="-3" id="f-160" unitRef="usd">2017812000</us-gaap:Assets>
    <us-gaap:Assets contextRef="c-8" decimals="-3" id="f-161" unitRef="usd">1958140000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent contextRef="c-7" decimals="-3" id="f-162" unitRef="usd">21454000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent contextRef="c-8" decimals="-3" id="f-163" unitRef="usd">27103000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-164" unitRef="usd">72374000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-8" decimals="-3" id="f-165" unitRef="usd">93235000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent contextRef="c-7" decimals="-3" id="f-166" unitRef="usd">16907000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:AccruedIncomeTaxesCurrent contextRef="c-8" decimals="-3" id="f-167" unitRef="usd">18129000</us-gaap:AccruedIncomeTaxesCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-7" decimals="-3" id="f-168" unitRef="usd">31525000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-8" decimals="-3" id="f-169" unitRef="usd">40787000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-7" decimals="-3" id="f-170" unitRef="usd">9624000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent contextRef="c-8" decimals="-3" id="f-171" unitRef="usd">8454000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-172" unitRef="usd">151884000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent contextRef="c-8" decimals="-3" id="f-173" unitRef="usd">187708000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-7" decimals="-3" id="f-174" unitRef="usd">68977000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent contextRef="c-8" decimals="-3" id="f-175" unitRef="usd">31298000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="c-7" decimals="-3" id="f-176" unitRef="usd">246877000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet contextRef="c-8" decimals="-3" id="f-177" unitRef="usd">249961000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="c-7" decimals="-3" id="f-178" unitRef="usd">26685000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:LiabilityForUncertainTaxPositionsNoncurrent contextRef="c-8" decimals="-3" id="f-179" unitRef="usd">15866000</us-gaap:LiabilityForUncertainTaxPositionsNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="c-7" decimals="-3" id="f-180" unitRef="usd">18338000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:AccruedIncomeTaxesNoncurrent contextRef="c-8" decimals="-3" id="f-181" unitRef="usd">33008000</us-gaap:AccruedIncomeTaxesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-7" decimals="-3" id="f-182" unitRef="usd">299000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent contextRef="c-8" decimals="-3" id="f-183" unitRef="usd">1905000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities contextRef="c-7" decimals="-3" id="f-184" unitRef="usd">513060000</us-gaap:Liabilities>
    <us-gaap:Liabilities contextRef="c-8" decimals="-3" id="f-185" unitRef="usd">519746000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies contextRef="c-7" id="f-186" unitRef="usd" xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies contextRef="c-8" id="f-187" unitRef="usd" xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-8"
      decimals="INF"
      id="f-188"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-189"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-7" decimals="INF" id="f-190" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized contextRef="c-8" decimals="INF" id="f-191" unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued contextRef="c-8" decimals="INF" id="f-192" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-8" decimals="INF" id="f-193" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued contextRef="c-7" decimals="INF" id="f-194" unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding contextRef="c-7" decimals="INF" id="f-195" unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValueOutstanding contextRef="c-7" decimals="-3" id="f-196" unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:PreferredStockValueOutstanding contextRef="c-8" decimals="-3" id="f-197" unitRef="usd">0</us-gaap:PreferredStockValueOutstanding>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-198"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-8"
      decimals="INF"
      id="f-199"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-7" decimals="INF" id="f-200" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized contextRef="c-8" decimals="INF" id="f-201" unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued contextRef="c-7" decimals="-3" id="f-202" unitRef="shares">171599000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-7" decimals="-3" id="f-203" unitRef="shares">171599000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding contextRef="c-8" decimals="-3" id="f-204" unitRef="shares">172631000</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued contextRef="c-8" decimals="-3" id="f-205" unitRef="shares">172631000</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValueOutstanding contextRef="c-7" decimals="-3" id="f-206" unitRef="usd">343000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding contextRef="c-8" decimals="-3" id="f-207" unitRef="usd">345000</us-gaap:CommonStockValueOutstanding>
    <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c-7" decimals="-3" id="f-208" unitRef="usd">1037202000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:AdditionalPaidInCapitalCommonStock contextRef="c-8" decimals="-3" id="f-209" unitRef="usd">979167000</us-gaap:AdditionalPaidInCapitalCommonStock>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-7" decimals="-3" id="f-210" unitRef="usd">512543000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit contextRef="c-8" decimals="-3" id="f-211" unitRef="usd">528179000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-7" decimals="-3" id="f-212" unitRef="usd">-45336000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax contextRef="c-8" decimals="-3" id="f-213" unitRef="usd">-69297000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:StockholdersEquity contextRef="c-7" decimals="-3" id="f-214" unitRef="usd">1504752000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-8" decimals="-3" id="f-215" unitRef="usd">1438394000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-7" decimals="-3" id="f-216" unitRef="usd">2017812000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity contextRef="c-8" decimals="-3" id="f-217" unitRef="usd">1958140000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-218" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-219" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-220" unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:StockOptionPlanExpense contextRef="c-1" decimals="-3" id="f-221" unitRef="usd">54768000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense contextRef="c-4" decimals="-3" id="f-222" unitRef="usd">54505000</us-gaap:StockOptionPlanExpense>
    <us-gaap:StockOptionPlanExpense contextRef="c-5" decimals="-3" id="f-223" unitRef="usd">43774000</us-gaap:StockOptionPlanExpense>
    <us-gaap:Depreciation contextRef="c-1" decimals="-3" id="f-224" unitRef="usd">17270000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-4" decimals="-3" id="f-225" unitRef="usd">16347000</us-gaap:Depreciation>
    <us-gaap:Depreciation contextRef="c-5" decimals="-3" id="f-226" unitRef="usd">16616000</us-gaap:Depreciation>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-1" decimals="-3" id="f-227" unitRef="usd">-229000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-4" decimals="-3" id="f-228" unitRef="usd">-19000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:GainLossOnSaleOfPropertyPlantEquipment contextRef="c-5" decimals="-3" id="f-229" unitRef="usd">-33000</us-gaap:GainLossOnSaleOfPropertyPlantEquipment>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-1" decimals="-3" id="f-230" unitRef="usd">4610000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-4" decimals="-3" id="f-231" unitRef="usd">3274000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets contextRef="c-5" decimals="-3" id="f-232" unitRef="usd">3667000</us-gaap:AmortizationOfIntangibleAssets>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-1" decimals="-3" id="f-233" unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-4" decimals="-3" id="f-234" unitRef="usd">46372000</cgnx:NonCashLossFromCatastrophes>
    <cgnx:NonCashLossFromCatastrophes contextRef="c-5" decimals="-3" id="f-235" unitRef="usd">0</cgnx:NonCashLossFromCatastrophes>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-1" decimals="-3" id="f-236" unitRef="usd">3775000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-4" decimals="-3" id="f-237" unitRef="usd">3084000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-5" decimals="-3" id="f-238" unitRef="usd">2573000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-1" decimals="-3" id="f-239" unitRef="usd">2829000</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-4" decimals="-3" id="f-240" unitRef="usd">0</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <cgnx:FairValueAdjustmentOnAcquiredInventories contextRef="c-5" decimals="-3" id="f-241" unitRef="usd">0</cgnx:FairValueAdjustmentOnAcquiredInventories>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-1" decimals="-3" id="f-242" unitRef="usd">-1745000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-4" decimals="-3" id="f-243" unitRef="usd">-4968000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments contextRef="c-5" decimals="-3" id="f-244" unitRef="usd">-4887000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-1" decimals="-3" id="f-245" unitRef="usd">-1954000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-4" decimals="-3" id="f-246" unitRef="usd">-182000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:GainLossOnSaleOfInvestments contextRef="c-5" decimals="-3" id="f-247" unitRef="usd">236000</us-gaap:GainLossOnSaleOfInvestments>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-1" decimals="-3" id="f-248" unitRef="usd">19779000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-4" decimals="-3" id="f-249" unitRef="usd">27338000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInDeferredIncomeTaxes contextRef="c-5" decimals="-3" id="f-250" unitRef="usd">3118000</us-gaap:IncreaseDecreaseInDeferredIncomeTaxes>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-1" decimals="-3" id="f-251" unitRef="usd">-23346000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-4" decimals="-3" id="f-252" unitRef="usd">-3454000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable contextRef="c-5" decimals="-3" id="f-253" unitRef="usd">4503000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-1" decimals="-3" id="f-254" unitRef="usd">255000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-4" decimals="-3" id="f-255" unitRef="usd">-1806000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInContractWithCustomerAsset contextRef="c-5" decimals="-3" id="f-256" unitRef="usd">-1637000</us-gaap:IncreaseDecreaseInContractWithCustomerAsset>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-1" decimals="-3" id="f-257" unitRef="usd">22591000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-4" decimals="-3" id="f-258" unitRef="usd">48934000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories contextRef="c-5" decimals="-3" id="f-259" unitRef="usd">54920000</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-1" decimals="-3" id="f-260" unitRef="usd">-2469000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-4" decimals="-3" id="f-261" unitRef="usd">6998000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets contextRef="c-5" decimals="-3" id="f-262" unitRef="usd">32342000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-1" decimals="-3" id="f-263" unitRef="usd">-13744000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-4" decimals="-3" id="f-264" unitRef="usd">-17277000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable contextRef="c-5" decimals="-3" id="f-265" unitRef="usd">27828000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-1" decimals="-3" id="f-266" unitRef="usd">-35309000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-4" decimals="-3" id="f-267" unitRef="usd">2056000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities contextRef="c-5" decimals="-3" id="f-268" unitRef="usd">16861000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-1" decimals="-3" id="f-269" unitRef="usd">-16745000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-4" decimals="-3" id="f-270" unitRef="usd">-444000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable contextRef="c-5" decimals="-3" id="f-271" unitRef="usd">-6401000</us-gaap:IncreaseDecreaseInAccruedIncomeTaxesPayable>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-1" decimals="-3" id="f-272" unitRef="usd">-9122000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-4" decimals="-3" id="f-273" unitRef="usd">4886000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInContractWithCustomerLiability contextRef="c-5" decimals="-3" id="f-274" unitRef="usd">14417000</us-gaap:IncreaseDecreaseInContractWithCustomerLiability>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-1" decimals="-3" id="f-275" unitRef="usd">-4232000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-4" decimals="-3" id="f-276" unitRef="usd">12081000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet contextRef="c-5" decimals="-3" id="f-277" unitRef="usd">-3411000</us-gaap:IncreaseDecreaseInOtherOperatingCapitalNet>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-1" decimals="-3" id="f-278" unitRef="usd">112916000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-4" decimals="-3" id="f-279" unitRef="usd">243406000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities contextRef="c-5" decimals="-3" id="f-280" unitRef="usd">314065000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-1" decimals="-3" id="f-281" unitRef="usd">184056000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-4" decimals="-3" id="f-282" unitRef="usd">233720000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:PaymentsToAcquireInvestments contextRef="c-5" decimals="-3" id="f-283" unitRef="usd">668053000</us-gaap:PaymentsToAcquireInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-1" decimals="-3" id="f-284" unitRef="usd">496462000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-4" decimals="-3" id="f-285" unitRef="usd">253983000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments contextRef="c-5" decimals="-3" id="f-286" unitRef="usd">430969000</us-gaap:ProceedsFromSaleMaturityAndCollectionsOfInvestments>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-287" unitRef="usd">23077000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-4" decimals="-3" id="f-288" unitRef="usd">19667000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment contextRef="c-5" decimals="-3" id="f-289" unitRef="usd">15455000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-1" decimals="-3" id="f-290" unitRef="usd">257056000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-4" decimals="-3" id="f-291" unitRef="usd">5050000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-5" decimals="-3" id="f-292" unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-1" decimals="-3" id="f-293" unitRef="usd">32273000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-4" decimals="-3" id="f-294" unitRef="usd">-4454000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities contextRef="c-5" decimals="-3" id="f-295" unitRef="usd">-252539000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-1" decimals="-3" id="f-296" unitRef="usd">3268000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-4" decimals="-3" id="f-297" unitRef="usd">9861000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions contextRef="c-5" decimals="-3" id="f-298" unitRef="usd">63292000</us-gaap:ProceedsFromIssuanceOfSharesUnderIncentiveAndShareBasedCompensationPlansIncludingStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-1" decimals="-3" id="f-299" unitRef="usd">79794000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-4" decimals="-3" id="f-300" unitRef="usd">204314000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock contextRef="c-5" decimals="-3" id="f-301" unitRef="usd">161652000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-1" decimals="-3" id="f-302" unitRef="usd">49079000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-4" decimals="-3" id="f-303" unitRef="usd">45921000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:PaymentsOfDividendsCommonStock contextRef="c-5" decimals="-3" id="f-304" unitRef="usd">43263000</us-gaap:PaymentsOfDividendsCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-1" decimals="-3" id="f-305" unitRef="usd">-125605000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-4" decimals="-3" id="f-306" unitRef="usd">-240374000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities contextRef="c-5" decimals="-3" id="f-307" unitRef="usd">-141623000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-1" decimals="-3" id="f-308" unitRef="usd">1697000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-4" decimals="-3" id="f-309" unitRef="usd">-3365000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-5" decimals="-3" id="f-310" unitRef="usd">-2815000</us-gaap:EffectOfExchangeRateOnCashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-1" decimals="-3" id="f-311" unitRef="usd">21281000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-4" decimals="-3" id="f-312" unitRef="usd">-4787000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect contextRef="c-5" decimals="-3" id="f-313" unitRef="usd">-82912000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-8" decimals="-3" id="f-314" unitRef="usd">181374000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-9" decimals="-3" id="f-315" unitRef="usd">186161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-10" decimals="-3" id="f-316" unitRef="usd">269073000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-7" decimals="-3" id="f-317" unitRef="usd">202655000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-8" decimals="-3" id="f-318" unitRef="usd">181374000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents contextRef="c-9" decimals="-3" id="f-319" unitRef="usd">186161000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CommonStockSharesIssued contextRef="c-11" decimals="-3" id="f-320" unitRef="shares">175790000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-11" decimals="-3" id="f-321" unitRef="usd">352000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-12" decimals="-3" id="f-322" unitRef="usd">807739000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-13" decimals="-3" id="f-323" unitRef="usd">487912000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-14" decimals="-3" id="f-324" unitRef="usd">-33801000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-10" decimals="-3" id="f-325" unitRef="usd">1262202000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-15" decimals="-3" id="f-326" unitRef="shares">1703000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-15" decimals="-3" id="f-327" unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-16" decimals="-3" id="f-328" unitRef="usd">63289000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-5" decimals="-3" id="f-329" unitRef="usd">63292000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-15" decimals="-3" id="f-330" unitRef="shares">2012000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-15" decimals="-3" id="f-331" unitRef="usd">4000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-17" decimals="-3" id="f-332" unitRef="usd">161648000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-5" decimals="-3" id="f-333" unitRef="usd">161652000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-16" decimals="-3" id="f-334" unitRef="usd">43774000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-5" decimals="-3" id="f-335" unitRef="usd">43774000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-17" decimals="-3" id="f-336" unitRef="usd">43263000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-5" decimals="-3" id="f-337" unitRef="usd">43263000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-17" decimals="-3" id="f-338" unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-5" decimals="-3" id="f-339" unitRef="usd">279881000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-18" decimals="-3" id="f-340" unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-341" unitRef="usd">-7152000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-18" decimals="-3" id="f-342" unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-5" decimals="-3" id="f-343" unitRef="usd">236000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-18" decimals="-3" id="f-344" unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-5" decimals="-3" id="f-345" unitRef="usd">-6753000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-19" decimals="-3" id="f-346" unitRef="shares">175481000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-19" decimals="-3" id="f-347" unitRef="usd">351000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-20" decimals="-3" id="f-348" unitRef="usd">914802000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-21" decimals="-3" id="f-349" unitRef="usd">562882000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-22" decimals="-3" id="f-350" unitRef="usd">-47942000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-9" decimals="-3" id="f-351" unitRef="usd">1430093000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-23" decimals="-3" id="f-352" unitRef="shares">514000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-23" decimals="-3" id="f-353" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-24" decimals="-3" id="f-354" unitRef="usd">9860000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-4" decimals="-3" id="f-355" unitRef="usd">9861000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-23" decimals="-3" id="f-356" unitRef="shares">3364000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-23" decimals="-3" id="f-357" unitRef="usd">7000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-25" decimals="-3" id="f-358" unitRef="usd">204307000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-4" decimals="-3" id="f-359" unitRef="usd">204314000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-24" decimals="-3" id="f-360" unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-4" decimals="-3" id="f-361" unitRef="usd">54505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-25" decimals="-3" id="f-362" unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-4" decimals="-3" id="f-363" unitRef="usd">45921000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-25" decimals="-3" id="f-364" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-4" decimals="-3" id="f-365" unitRef="usd">215525000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-26" decimals="-3" id="f-366" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-367" unitRef="usd">-17152000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-26" decimals="-3" id="f-368" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-4" decimals="-3" id="f-369" unitRef="usd">-182000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-26" decimals="-3" id="f-370" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-4" decimals="-3" id="f-371" unitRef="usd">-4385000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-27" decimals="-3" id="f-372" unitRef="shares">172631000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-27" decimals="-3" id="f-373" unitRef="usd">345000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-28" decimals="-3" id="f-374" unitRef="usd">979167000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-29" decimals="-3" id="f-375" unitRef="usd">528179000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-30" decimals="-3" id="f-376" unitRef="usd">-69297000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-8" decimals="-3" id="f-377" unitRef="usd">1438394000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-31" decimals="-3" id="f-378" unitRef="shares">691000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-31" decimals="-3" id="f-379" unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-32" decimals="-3" id="f-380" unitRef="usd">3267000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised contextRef="c-1" decimals="-3" id="f-381" unitRef="usd">3268000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockRepurchasedDuringPeriodShares contextRef="c-31" decimals="-3" id="f-382" unitRef="shares">1723000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-31" decimals="-3" id="f-383" unitRef="usd">3000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-33" decimals="-3" id="f-384" unitRef="usd">79791000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-1" decimals="-3" id="f-385" unitRef="usd">79794000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-32" decimals="-3" id="f-386" unitRef="usd">54768000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue contextRef="c-1" decimals="-3" id="f-387" unitRef="usd">54768000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:DividendsCommonStockCash contextRef="c-33" decimals="-3" id="f-388" unitRef="usd">49079000</us-gaap:DividendsCommonStockCash>
    <us-gaap:DividendsCommonStockCash contextRef="c-1" decimals="-3" id="f-389" unitRef="usd">49079000</us-gaap:DividendsCommonStockCash>
    <us-gaap:NetIncomeLoss contextRef="c-33" decimals="-3" id="f-390" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss contextRef="c-1" decimals="-3" id="f-391" unitRef="usd">113234000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax contextRef="c-6" decimals="-3" id="f-392" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeUnrealizedHoldingGainLossOnSecuritiesArisingDuringPeriodNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-393" unitRef="usd">10507000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-6" decimals="-3" id="f-394" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax contextRef="c-1" decimals="-3" id="f-395" unitRef="usd">-1954000</us-gaap:OtherComprehensiveIncomeLossReclassificationAdjustmentFromAOCIForSaleOfSecuritiesNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-6" decimals="-3" id="f-396" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax contextRef="c-1" decimals="-3" id="f-397" unitRef="usd">11500000</us-gaap:OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationAdjustmentNetOfTax>
    <us-gaap:CommonStockSharesIssued contextRef="c-34" decimals="-3" id="f-398" unitRef="shares">171599000</us-gaap:CommonStockSharesIssued>
    <us-gaap:StockholdersEquity contextRef="c-34" decimals="-3" id="f-399" unitRef="usd">343000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-35" decimals="-3" id="f-400" unitRef="usd">1037202000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-36" decimals="-3" id="f-401" unitRef="usd">512543000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-37" decimals="-3" id="f-402" unitRef="usd">-45336000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity contextRef="c-7" decimals="-3" id="f-403" unitRef="usd">1504752000</us-gaap:StockholdersEquity>
    <us-gaap:SignificantAccountingPoliciesTextBlock contextRef="c-1" id="f-410">Summary of Significant Accounting Policies&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements reflect the application of the significant accounting policies described below.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition, income taxes, and business combinations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements of the Company&#x2019;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#x2019;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#x2019;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#x2019; estimated useful lives. Buildings&#x2019; original useful lives are 39 years, building improvements&#x2019; useful lives are ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;span style="-sec-ix-hidden:f-424"&gt;two&lt;/span&gt; to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#x2019;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Internal-use Software&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development, no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#x2019;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term, which, through year ended December 31, 2023, was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company would proceed to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets are stated at cost and amortized over the assets&#x2019; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from &lt;span style="-sec-ix-hidden:f-430"&gt;five&lt;/span&gt; to fifteen years, completed technologies from &lt;span style="-sec-ix-hidden:f-432"&gt;five&lt;/span&gt; to nine years, non-compete agreements from &lt;span style="-sec-ix-hidden:f-434"&gt;three&lt;/span&gt; to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;span style="-sec-ix-hidden:f-438"&gt;one&lt;/span&gt; to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#x2019;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#x201c;net&#x201d; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#x2019;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#x2019;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the Company&#x2019;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from revenue recognition criteria, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#x2019;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and totaled $1,190,000 in 2023, $1,257,000 in 2022, and $1,965,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information, if that information is expected to result in a material increase in share price.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#x201c;forfeitures&#x201d; is distinct from &#x201c;expirations&#x201d; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#x2019;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Only the portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are not classified as current. It is the Company&#x2019;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $36,550,000 and $48,050,000, as of December 31, 2023 and December 31, 2022, respectively; net unrealized losses on available-for-sale investments of $7,515,000 and $19,976,000 as of December 31, 2023 and December 31, 2022, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of the Company&#x2019;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#x2019;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Restructuring Charges&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#x201c;communication date&#x201d;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.&lt;/span&gt;&lt;/div&gt;Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</us-gaap:SignificantAccountingPoliciesTextBlock>
    <cgnx:NatureOfOperationsPolicyTextBlock contextRef="c-1" id="f-411">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Nature of Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cognex Corporation ("the Company" or "Cognex") is a leading global provider of machine vision products and solutions that improve efficiency and quality and address some of the most critical manufacturing and distribution challenges.&lt;/span&gt;&lt;/div&gt;</cgnx:NatureOfOperationsPolicyTextBlock>
    <us-gaap:UseOfEstimates contextRef="c-1" id="f-412">&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Use of Estimates in the Preparation of Financial Statements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of financial statements in conformity with accounting principles generally accepted in the United States of America (U.S.&#160;GAAP) requires management to make estimates and judgments that affect the reported amounts of assets and liabilities and the disclosure of contingent liabilities as of the balance sheet date, and the reported amounts of revenues and expenses during the year. Actual results could differ from those estimates. Significant estimates and judgments include those related to revenue recognition, income taxes, and business combinations.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ConsolidationPolicyTextBlock contextRef="c-1" id="f-413">&lt;div style="margin-bottom:5pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Basis of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements include the accounts of Cognex Corporation and its subsidiaries, all of which are wholly owned. All intercompany accounts and transactions have been eliminated.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock contextRef="c-1" id="f-414">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The financial statements of the Company&#x2019;s foreign subsidiaries, where the local currency is the functional currency, are translated using exchange rates in effect at the end of the year for assets and liabilities and average exchange rates during the year for results of operations. The resulting foreign currency translation adjustment, net of tax, is included in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy contextRef="c-1" id="f-415">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company applies a three-level valuation hierarchy for fair value measurements. The categorization of assets and liabilities within the valuation hierarchy is based on the lowest level of input that is significant to the measurement of fair value. Level&#160;1 inputs to the valuation methodology utilize unadjusted quoted market prices in active markets for identical assets and liabilities. Level 2 inputs to the valuation methodology are other observable inputs, including quoted market prices for similar assets and liabilities, quoted prices for identical and similar assets and liabilities in markets that are not active, or other inputs that are observable or can be corroborated by observable market data. Level 3 inputs to the valuation methodology are unobservable inputs based on management&#x2019;s best estimate of the inputs that market participants would use in pricing the asset or liability at the measurement date, including assumptions about risk. A change to the level of an asset or liability within the fair value hierarchy is determined at the end of a reporting period.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:InvestmentPolicyTextBlock contextRef="c-1" id="f-417">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock contextRef="c-1" id="f-416">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Cash, Cash Equivalents, and Investments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market instruments, as well as debt securities with original maturities of three months or less, are classified as cash equivalents and are stated at amortized cost. Debt securities with original maturities greater than three months and remaining maturities of one year or less are classified as current investments. Debt securities with remaining maturities greater than one year are classified as non-current investments. In July 2023, the Company&#x2019;s investment policy was modified to reduce effective maturities of newly purchased securities to up to five years. As of December 31, 2023, the Company held investments with maturities in excess of the five-year limit that were approved as pre-existing exceptions to the new policy. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Debt securities with original maturities greater than three months are designated as available-for-sale and are reported at fair value, with unrealized gains and losses, net of tax, included in shareholders&#x2019; equity as accumulated other comprehensive loss. Realized gains and losses are calculated using the specific identification method. Realized gains and losses, interest income, and the amortization of the discount or premium on debt securities arising at acquisition, are included in "Investment income" on the Consolidated Statements of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors its debt securities to determine whether a loss exists related to the credit quality of the issuer. If the present value of the cash flows expected to be collected from the security is less than the amortized cost basis of the security, then a credit loss exists and an allowance against the security for credit losses is recorded. The &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;allowance is limited to the amount by which fair value is below amortized cost, recognizing that the investment could be sold at fair value. Credit losses continue to be remeasured in subsequent reporting periods. Credit losses and recoveries related to debt securities are included in &#x201c;Other income (expense)&#x201d; on the Consolidated Statements of Operations. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum contextRef="c-1" id="f-418">P5Y</cgnx:AvailableforsaleSecuritiesDebtMaturitiesEffectiveTermMaximum>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy contextRef="c-1" id="f-419">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company extends credit with various payment terms to customers based on an evaluation of their financial condition. Accounts that are outstanding longer than the payment terms are considered to be past due. The Company establishes an allowance against accounts receivable for credit losses when it determines receivables are at risk for collection based on the length of time the receivable has been outstanding, the customer&#x2019;s current ability to pay its obligations to the Company, and general economic and industry conditions, as well as various other factors. Receivables are written off against this allowance in the period they are determined to be uncollectible and payments subsequently received on previously written-off receivables are recorded as a recovery of the credit loss. Credit losses and recoveries related to accounts receivable are included in "Selling, general, and administrative expenses" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:InventoryPolicyTextBlock contextRef="c-1" id="f-420">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories are stated at the lower of cost and net realizable value. Cost is determined using standard costs, which approximates actual costs under the first-in, first-out (FIFO) method. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Purchase price variances are incurred when actual costs are different than standard costs due to favorable or unfavorable market prices. Management applies judgment to recognize purchase price variances in the same period that the associated standard costs of the finished goods that consume these components are sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s inventory is subject to technological change or obsolescence. The Company reviews inventory quantities on hand and estimates excess and obsolescence exposures based on assumptions about future demand, product transitions, general economic and industry conditions, and other circumstances, and records reserves to reduce the carrying value of inventories to their net realizable value. If actual future demand is less than estimated, additional inventory write-downs would be required.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally disposes of obsolete inventory upon determination of obsolescence. The Company does not dispose of excess inventory immediately, due to the possibility that some of this inventory could be sold to customers as a result of differences between actual and forecasted demand. When inventory has been written down below cost, such reduced amount is considered the new cost basis for subsequent accounting purposes. As a result, the Company could recognize a higher-than-normal gross margin if the reserved inventory were subsequently sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired inventories are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of inventories above the acquired company&#x2019;s pre-acquisition carrying value, which results in a lower-than-normal gross margin when these acquired inventories are sold.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock contextRef="c-1" id="f-421">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Property, Plant, and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment are stated at cost and depreciated using the straight-line method over the assets&#x2019; estimated useful lives. Buildings&#x2019; original useful lives are 39 years, building improvements&#x2019; useful lives are ten years, and the useful lives of computer hardware and software, manufacturing test equipment, and furniture and fixtures range from &lt;span style="-sec-ix-hidden:f-424"&gt;two&lt;/span&gt; to ten years. Land that is leased or granted, as well as leasehold improvements, are depreciated over the shorter of the estimated useful lives or the remaining terms of the leases. Maintenance and repairs are expensed when incurred; additions and improvements are capitalized. Upon retirement or disposition, the cost and related accumulated depreciation of the disposed assets are removed from the accounts, with any resulting gain or loss included in current operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the accounting principles applied in business combinations, acquired property, plant, and equipment are recorded at fair value on the acquisition date. This valuation policy typically results in the write-up of property, plant, and equipment above the acquired company&#x2019;s pre-acquisition carrying value, which results in a higher depreciation expense over the estimated lives of the assets.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-38" id="f-422">P39Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-39" id="f-423">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife contextRef="c-41" id="f-425">P10Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:InternalUseSoftwarePolicy contextRef="c-1" id="f-426">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Internal-use Software&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software is software acquired, internally developed, or modified solely to meet the Company's internal needs, and during the software's development, no substantive plan exists to sell the software. The accounting treatment for computer software developed for internal use depends on the nature of activities performed at each stage of development. The preliminary project stage includes conceptual formulation of design alternatives, determination of system requirements, vendor demonstrations, and final selection of vendors, and during this stage costs are expensed as incurred. The application development stage includes software configuration, coding, hardware installation, and testing. During this stage, certain costs are capitalized, including external direct costs of materials and services, as well as payroll and payroll-related costs for employees who are directly associated with the project, while certain costs are expensed as incurred, including training and data conversion costs. The post-implementation stage includes support and maintenance, and during this stage costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalization begins when both the preliminary project stage is completed and management commits to funding the project. Capitalization ceases at the point the project is substantially complete and ready for its intended use, that is, after all substantial testing is completed. Costs of specified upgrades and enhancements to internal-use software are capitalized if it is probable that those expenditures result in additional functionality. Capitalized costs are amortized on a straight-line basis over the estimated useful life.&lt;/span&gt;&lt;/div&gt;</us-gaap:InternalUseSoftwarePolicy>
    <us-gaap:LesseeLeasesPolicyTextBlock contextRef="c-1" id="f-427">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At inception of a contract, the Company determines whether that contract is or contains a lease by assessing whether there is an identified asset and whether the contract conveys the right to control the use of the identified asset for a period of time in exchange for consideration. The Company has control of the asset if it has the right to direct the use of the asset and obtains substantially all of the economic benefits from the use of the asset throughout the period of use.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company does not recognize a lease asset or lease liability for leases with a lease term of twelve months or less. In the determination of the lease term, the Company considers the existence of extension or termination options and the probability of those options being exercised.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease contracts may include fixed lease components and non-lease components, such as common area maintenance and utilities for property leases. As a practical expedient, the Company accounts for the non-lease components together with the lease components as a single lease component for all of its leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies a lease as a finance lease when it meets any of the following criteria at the lease commencement date: (1) the lease transfers ownership of the underlying asset to the Company by the end of the lease term; (2) the lease grants the Company an option to purchase the underlying asset that the Company is reasonably certain to exercise; (3) the lease term is for the major part of the remaining economic life of the underlying asset (the Company considers a major part to be 75% or more of the remaining economic life of the underlying asset); (4) the present value of the sum of the lease payments and any residual value guaranteed by the Company equals or exceeds substantially all of the fair value of the underlying asset (the Company considers substantially all the fair value to be 90% or more of the fair value of the underlying asset amount); or (5) the underlying asset is of such a specialized nature that it is expected to have no alternative use to the lessor at the end of the lease term. When none of the criteria above are met, the Company classifies the lease as an operating lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On the lease commencement date, the Company records a lease asset and lease liability on the balance sheet. The lease asset consists of: (1) the amount of the initial lease liability; (2) any lease payments made to the lessor at or before the lease commencement date, minus any lease incentives received; and (3) any initial direct cost incurred by the Company. Initial direct costs are incremental costs of a lease that would not have been incurred if the lease had not been obtained and are capitalized as part of the lease asset. The lease liability equals the present value of the future cash payments discounted using the Company's incremental borrowing rate. The Company&#x2019;s incremental borrowing rate is the rate of interest that the Company would have to pay to borrow an amount equal to the lease payments over a similar term, which, through year ended December 31, 2023, was estimated using the Secured Overnight Financing Rate (SOFR) plus a 2% credit risk spread.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease expense equals the total cash payments recognized on a straight-line basis over the lease term. The amortization of the lease asset is calculated as the straight-line lease expense less the accretion of the interest on the lease liability each period. The lease liability is reduced by the cash payment less the interest each period.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy contextRef="c-1" id="f-428">&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is stated at cost. The Company evaluates the potential impairment of goodwill annually each fourth quarter &lt;/span&gt;&lt;/div&gt;and whenever events or circumstances indicate the carrying value of the goodwill may not be recoverable. The Company performs a qualitative assessment of goodwill to determine whether further impairment testing is necessary. Factors that management considers in this assessment include general economic and industry conditions, overall financial performance (both current and projected), changes in strategy, changes in the composition or carrying amount of net assets, and market capitalization. If this qualitative assessment indicates that it is more likely than not that the fair value of a reporting unit is less than its carrying value, the Company would proceed to perform a quantitative impairment test. Under this quantitative analysis, the fair value of the reporting unit is compared with its carrying value, including goodwill. If the carrying value exceeds the fair value of the reporting unit, the Company recognizes an impairment charge. The Company estimates the fair value of its reporting unit using the income approach based on a discounted cash flow model. In addition, the Company uses the market approach, which compares the reporting unit to publicly traded companies and transactions involving similar businesses, to support the conclusions based on the income approach.</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy contextRef="c-1" id="f-429">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Intangible Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets are stated at cost and amortized over the assets&#x2019; estimated useful lives. Intangible assets are either amortized in relation to the relative cash flows anticipated from the intangible asset or using the straight-line method, depending on facts and circumstances. The useful lives of customer relationships range from &lt;span style="-sec-ix-hidden:f-430"&gt;five&lt;/span&gt; to fifteen years, completed technologies from &lt;span style="-sec-ix-hidden:f-432"&gt;five&lt;/span&gt; to nine years, non-compete agreements from &lt;span style="-sec-ix-hidden:f-434"&gt;three&lt;/span&gt; to seven years, and trademarks for three years. In-process technology is an indefinite-lived intangible asset until the technology is completed, at which point it is amortized over its estimated useful life. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company evaluates the potential impairment of intangible assets whenever events or circumstances indicate the carrying value of the assets may not be recoverable. For finite-lived intangible assets that are subject to amortization, the Company follows a two-step process for impairment testing. In step one, known as the recoverability test, the carrying value of the asset is compared to the sum of the undiscounted cash flows expected to result from the use and eventual disposition of the asset. If the sum of the undiscounted future cash flows is less than the carrying value, the asset is not recoverable and step two is performed. In step two, the impairment charge is measured as the amount by which the carrying value of the asset exceeds its fair value.&lt;/span&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-43" id="f-431">P15Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-45" id="f-433">P9Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-47" id="f-435">P7Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife contextRef="c-48" id="f-436">P3Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:StandardProductWarrantyPolicy contextRef="c-1" id="f-437">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Warranty Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company warrants its products to be free from defects in material and workmanship for periods primarily ranging from &lt;span style="-sec-ix-hidden:f-438"&gt;one&lt;/span&gt; to three years from the time of sale based on the product being purchased and the terms of the customer arrangement. Warranty obligations are evaluated and recorded at the time of sale since it is probable that customers will make claims under warranties related to products that have been sold and the amount of these claims can be reasonably estimated based on historical costs to fulfill claims. Obligations may also be recorded subsequent to the time of sale whenever specific events or circumstances impacting product quality become known that would not have been taken into account using historical data.&lt;/span&gt;&lt;/div&gt;</us-gaap:StandardProductWarrantyPolicy>
    <cgnx:ProductWarrantyPeriod contextRef="c-50" id="f-439">P3Y</cgnx:ProductWarrantyPeriod>
    <us-gaap:CommitmentsAndContingenciesPolicyTextBlock contextRef="c-1" id="f-440">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Loss contingencies are accrued if the loss is probable and the amount of the loss can be reasonably estimated. Legal costs associated with potential loss contingencies are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesPolicyTextBlock>
    <us-gaap:DerivativesPolicyTextBlock contextRef="c-1" id="f-441">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Derivative Instruments&lt;/span&gt;&lt;/div&gt;Derivative instruments are recorded on the Consolidated Balance Sheets at fair value. Changes in the fair value of the Company&#x2019;s economic hedges utilizing foreign currency forward contracts are included in "Foreign currency gain (loss)" on the Consolidated Statements of Operations. When the Company is engaged in more than one outstanding derivative contract with the same counterparty and also has a legally enforceable master netting agreement with that counterparty, the &#x201c;net&#x201d; mark-to-market exposure represents the netting of the positive and negative exposures with that counterparty. The cash flows from derivative instruments are presented in the same category on the Consolidated Statements of Cash Flows as the category for the cash flows from the hedged item. Generally, this accounting policy election results in cash flows related to derivative instruments being classified as an operating activity on the Consolidated Statements of Cash Flows.</us-gaap:DerivativesPolicyTextBlock>
    <us-gaap:RevenueRecognitionPolicyTextBlock contextRef="c-1" id="f-442">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue in accordance with Accounting Standards Codification (ASC) 606, &#x201c;Revenue from Contracts with Customers.&#x201d; The core principle of ASC 606 is to recognize revenue in a manner that depicts the transfer of promised goods or services to customers in an amount that reflects the consideration to which the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Company expects to be entitled in exchange for those goods or services. The framework in support of this core principle includes: (1) identifying the contract with the customer; (2) identifying the performance obligations in the contract; (3) determining the transaction price; (4) allocating the transaction price to the performance obligations; and (5) recognizing revenue when (or as) the performance obligations are satisfied. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Contract with the Customer&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies contracts with customers as agreements that create enforceable rights and obligations, which typically take the form of customer contracts or purchase orders. The Company accounts for a contract when it has approval and commitment from both parties, the rights of the parties are identified, payment terms are identified, the contract has commercial substance, and collectability of consideration is probable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Identifying the Performance Obligations in the Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company identifies performance obligations as promises in contracts to transfer distinct goods or services. Standard products and services that the Company regularly sells separately, which customers can benefit from either on their own or with other readily available resources and are distinct within the context of the customer contract, are accounted for as distinct performance obligations. Application-specific customer solutions that are comprised of a combination of products and services are accounted for as one performance obligation to deliver a total solution to the customer. On-site support services that are provided to the customer after the solution is deployed are accounted for as a separate performance obligation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Shipping and handling activities for which the Company is responsible under the terms and conditions of the sale are not accounted for as performance obligations but as fulfillment costs. These activities are required to fulfill the Company&#x2019;s promise to transfer the goods and are expensed when revenue is recognized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not assess whether promised goods or services are performance obligations if they are immaterial in the context of the contract. If revenue is recognized before immaterial promises have been completed, then the costs related to such immaterial promises are accrued at the time of sale.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Determining the Transaction Price&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines the transaction price as the amount of consideration it expects to receive in exchange for transferring promised goods or services to the customer. Amounts collected from customers for sales taxes are excluded from the transaction price. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If a contract includes a variable amount, such as a rebate, then the Company estimates the transaction price using either the expected value or the most likely amount of consideration to be received, depending on the specific facts and circumstances. The Company includes estimated variable consideration in the transaction price only to the extent it is probable that a significant reversal of revenue will not occur when the uncertainty is resolved. The Company updates its estimate of variable consideration at the end of each reporting period to reflect changes in facts and circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company typically does not grant customers the explicit right to return product. However, from time to time, the Company may allow a customer to return a product. As a practical expedient, the Company estimates the transaction price using the expected value based on its history of return experience using a portfolio approach in which the Company&#x2019;s total revenue is reduced by an estimate of total customer returns. Management reasonably expects that the effect of applying a portfolio approach to a group of contracts would not differ materially from considering each contract separately.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Allocating the Transaction Price to the Performance Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the transaction price to each performance obligation at contract inception based on a relative stand-alone selling price basis, or the price at which the Company would sell the good or service separately to similar customers in similar circumstances.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recognizing Revenue When (or As) the Performance Obligations are Satisfied&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue when it transfers the promised goods or services to the customer. Revenue for standard products is recognized at the point in time when the customer obtains control of the goods, which is typically upon shipment or delivery when the customer has legal title, physical possession, the risks and rewards of ownership, and an enforceable obligation to pay for the products. Revenue for services, which are not material, is typically recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue for application-specific customer solutions is recognized at the point in time when the solution is validated, which is the point in time when the Company can objectively determine that the agreed-upon specifications in the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;contract have been met and the customer should reasonably accept the performance obligations in the arrangement. Although the customer may have taken legal title and physical possession of the goods when they arrived at the customer&#x2019;s designated site, the significant risks and rewards of ownership transfer to the customer only upon validation. Revenue for on-site support services related to these solutions is recognized over the time the service is provided. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In certain instances, an arrangement may include customer-specified acceptance provisions or performance guarantees that allow the customer to accept or reject delivered products that do not meet the customer&#x2019;s requirements. If the Company can objectively determine that control of a good or service has been transferred to the customer in accordance with the agreed-upon requirements in the contract, then customer acceptance is a formality. If acceptance provisions are presumed to be substantive, then revenue is deferred until customer acceptance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the Company&#x2019;s standard products and services, revenue recognition and billing typically occur at the same time. For application-specific customer solutions, however, the agreement with the customer may provide for billing terms which differ from revenue recognition criteria, resulting in either deferred revenue or unbilled revenue. Credit assessments are performed to determine payment terms, which vary by region, industry, and customer. Prepayment terms result in contract liabilities for customer deposits. When credit is granted to customers, payment is typically due 30 to 90 days from billing. The Company's contracts have an original expected duration of less than one year, and therefore as a practical expedient, the Company has elected to ignore the impact of the time value of money on a contract and to expense sales commissions. The Company recognizes an asset for costs to fulfill a contract if the costs relate directly to the contract and to future performance, and the costs are expected to be recovered. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management exercises judgment when determining the amount of revenue to be recognized each period. Such judgments include, but are not limited to, assessing the customer&#x2019;s ability and intention to pay substantially all of the contract consideration when due, determining when two or more contracts should be combined and accounted for as a single contract, determining whether a contract modification has occurred, assessing whether promises are immaterial in the context of the contract, determining whether material promises in a contract represent distinct performance obligations, estimating the transaction price for a contract that contains variable consideration, determining the stand-alone selling price of each performance obligation, determining whether control is transferred over time or at a point in time for performance obligations, and assessing whether formal customer acceptance provisions are substantive.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueRecognitionPolicyTextBlock>
    <cgnx:RevenuePaymentTerms contextRef="c-49" id="f-443">P30D</cgnx:RevenuePaymentTerms>
    <cgnx:RevenuePaymentTerms contextRef="c-50" id="f-444">P90D</cgnx:RevenuePaymentTerms>
    <us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock contextRef="c-1" id="f-445">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;Research and development costs primarily include costs related to personnel, prototyping materials and equipment, and outside services. Research and development costs are expensed when incurred until technological feasibility has been established for the product. Thereafter, all software costs may be capitalized until the product is available for general release to customers. The Company determines technological feasibility at the time the product reaches beta in its stage of development. Historically, the time incurred between beta and general release to customers has been short, and therefore, the costs have been insignificant.</us-gaap:ResearchDevelopmentAndComputerSoftwarePolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock contextRef="c-1" id="f-446">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and totaled $1,190,000 in 2023, $1,257,000 in 2022, and $1,965,000 in 2021.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense contextRef="c-1" decimals="0" id="f-447" unitRef="usd">1190000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-4" decimals="0" id="f-448" unitRef="usd">1257000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense contextRef="c-5" decimals="0" id="f-449" unitRef="usd">1965000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy contextRef="c-1" id="f-450">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options and restricted stock units ("RSUs"), including performance restricted stock units ("PRSUs"). The Company has reserved a specific number of shares of its authorized but unissued shares for issuance upon the exercise of stock options or the settlement of RSUs. When a stock option is exercised or an RSU is settled, the Company issues new shares from this pool. Management is responsible for determining the appropriate valuation model and estimating the fair value of stock-based awards, and in doing so, considers a number of factors, including information provided by an outside valuation advisor and the observable market price of the Company's common stock on the grant date. The fair value of RSUs is determined based on the observable market price of the Company's common stock on the grant date less the present value of expected future dividends. The fair value of PRSUs where the performance goal includes service and market conditions is calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. When determining the grant-date fair value of stock-based awards, management further considers whether an adjustment is required to the observable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;market price or volatility of the Company's common stock that is used in the valuation as a result of material non-public information, if that information is expected to result in a material increase in share price.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense related to stock-based awards using the graded attribution method, in which expense is recognized on a straight-line basis over the service period for each separately vesting portion of the stock option or RSU as if the award was, in substance, multiple awards. The amount of compensation expense recognized at the end of the vesting period is based on the number of awards for which the requisite service has been completed. No compensation expense is recognized for awards that are forfeited for which the employee does not render the requisite service. The term &#x201c;forfeitures&#x201d; is distinct from &#x201c;expirations&#x201d; and represents only the unvested portion of the surrendered award. The Company applies estimated forfeiture rates to its unvested awards to arrive at the amount of compensation expense that is expected to be recognized over the requisite service period. At the end of each separately vesting portion of an award, the expense that was recognized by applying the estimated forfeiture rate is compared to the expense that should be recognized based on the employee&#x2019;s service, and an increase or decrease to compensation expense is recorded to true up the final expense.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:IncomeTaxPolicyTextBlock contextRef="c-1" id="f-451">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes a tax position in its financial statements when that tax position, based solely upon its technical merits, is more likely than not to be sustained upon examination by the relevant taxing authority. Those tax positions failing to qualify for initial recognition are recognized in the first interim period in which they meet the more likely than not standard, or are resolved through negotiation or litigation with the taxing authority, or upon expiration of the statutes of limitations. Derecognition of a tax position that was previously recognized occurs when an entity subsequently determines that a tax position no longer meets the more likely than not threshold of being sustained.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Only the portion of the liability that is expected to be paid within one year is classified as a current liability. As a result, liabilities expected to be resolved without the payment of cash (e.g., resolution due to the expiration of the statutes of limitations) or are not expected to be paid within one year are not classified as current. It is the Company&#x2019;s policy to record estimated interest and penalties as income tax expense and tax credits as a reduction in income tax expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets and liabilities are determined based on the differences between the financial statement and tax bases of assets and liabilities as measured by the enacted tax rates that will be in effect when these differences reverse. Valuation allowances are provided if, based on the weight of available evidence, it is more likely than not that some or all of the deferred tax assets will not be realized. The Company accounts for the impact of the Global Intangible Low-Taxed Income (GILTI) tax in deferred taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales tax in the United States and similar taxes in other jurisdictions that are collected from customers and remitted to government authorities are presented on a gross basis (i.e., a receivable from the customer with a corresponding payable to the government). Amounts collected from customers and retained by the Company during tax holidays are recognized as non-operating income when earned.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock contextRef="c-1" id="f-452">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Net Income Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period. Diluted net income per share is computed by dividing net income available to common shareholders by the weighted-average number of common shares outstanding for the period plus potential dilutive common shares. Dilutive common equivalent shares consist of stock options and restricted stock units and are calculated using the treasury stock method. Common equivalent shares do not qualify as participating securities. In periods where the Company records a net loss, potential common stock equivalents are not included in the calculation of diluted net loss per share as their effect would be anti-dilutive.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock contextRef="c-1" id="f-453">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Comprehensive Income&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive income is defined as the change in equity of a company during a period from transactions and other events and circumstances, excluding transactions resulting from investments by owners and distributions to owners. Accumulated other comprehensive loss, net of tax, consists of foreign currency translation adjustment losses of $36,550,000 and $48,050,000, as of December 31, 2023 and December 31, 2022, respectively; net unrealized losses on available-for-sale investments of $7,515,000 and $19,976,000 as of December 31, 2023 and December 31, 2022, respectively; and losses on currency swaps, net of gains on long-term intercompany loans of $1,271,000 at each year end.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="c-7" decimals="0" id="f-454" unitRef="usd">36550000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax contextRef="c-8" decimals="0" id="f-455" unitRef="usd">48050000</us-gaap:AccumulatedOtherComprehensiveIncomeLossForeignCurrencyTranslationAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-7" decimals="0" id="f-456" unitRef="usd">7515000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax contextRef="c-8" decimals="0" id="f-457" unitRef="usd">19976000</us-gaap:AccumulatedOtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax contextRef="c-1" decimals="0" id="f-458" unitRef="usd">1271000</us-gaap:AdjustmentForLongTermIntercompanyTransactionsNetOfTax>
    <cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock contextRef="c-1" id="f-459">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Concentrations of Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentrations of credit risk consist primarily of cash, cash equivalents, investments, and accounts receivable. The Company has certain domestic and foreign cash balances that exceed the insured limits set by the Federal Deposit Insurance Corporation (FDIC) in the United States and equivalent regulatory agencies in foreign countries. The Company primarily invests in investment-grade debt securities and has established guidelines relative to credit ratings, diversification, and maturities of its debt securities that maintain liquidity and safety. The Company has historically not experienced any significant realized losses on its debt securities. The Company performs ongoing credit evaluations of its customers and maintains allowances for potential credit losses. The Company has historically not experienced any significant losses related to the collection of its accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's products is presently manufactured by a third-party contractor located in Indonesia. This contract manufacturer has agreed to provide the Company with termination notification periods and last-time-buy rights, if and when that may be applicable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain key electronic and mechanical components, such as integrated circuit chips, are fundamental to the design of Cognex products. Due to the impact of global supply chain challenges or other factors, we have experienced, and may continue to experience, disruptions to the supply of components for our products that have resulted, and may continue to result, in higher purchase costs, delivery costs, and manufacturing delays.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company sources components from preferred vendors that are selected based on price and performance considerations. In the event of a supply disruption from a preferred vendor, these components may typically be purchased from alternative vendors, which may result in higher purchase costs and manufacturing delays based on the time required to identify and obtain sufficient quantities from an alternative source.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certain of the Company&#x2019;s products utilize components that are available from only one source. If we are unable to secure adequate supply from these sources, we may have to redesign our products, which may lead to higher costs, delays in manufacturing, and possible loss of sales.&lt;/span&gt;&lt;/div&gt;</cgnx:ConcentrationsOfRiskPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationsPolicy contextRef="c-1" id="f-460">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;The Company determines whether a transaction qualifies as a business combination by applying the definition of a business, which requires the assets acquired and liabilities assumed to be inputs and processes that have the ability to contribute to the creation of outputs. The Company accounts for business combinations under the acquisition method of accounting, which requires the following steps: (1) identifying the acquirer, (2) determining the acquisition date, (3) recognizing and measuring the identifiable assets acquired and the liabilities assumed, and (4) recognizing and measuring goodwill. The Company measures the identifiable assets acquired and liabilities assumed at their estimated fair values as of the acquisition date. Management is responsible for determining the appropriate valuation model and estimated fair values, and in doing so, considers a number of factors, including information provided by an outside valuation advisor. Management bases the fair value of assets, including identifiable intangible assets acquired and liabilities assumed, on detailed valuations that use information and assumptions provided by management, which consider management&#x2019;s best estimates of inputs and assumptions that a market participant would use. Goodwill is recognized as of the acquisition date as the excess of the consideration transferred over the net amount of assets acquired and liabilities assumed. Transaction costs are expensed as incurred.</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy contextRef="c-1" id="f-461">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Restructuring Charges&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;One-time employee termination benefits associated with restructuring activities exist at the date the plan of termination has been communicated to employees (the &#x201c;communication date&#x201d;) and all of the following criteria are met: (1) management, having the authority to approve the action, has committed to the plan of termination, (2) the plan identifies the number of employees to be terminated, their job classifications or functions and their locations, and the expected completion date, (3) the plan establishes the terms of the benefit arrangement in sufficient detail, and (4) actions required to complete the plan indicate it is unlikely that significant changes to the plan will be made. If employees are not required to render service until they are terminated in order to receive the termination benefits or will not be retained to render service beyond a minimum retention period, a liability for the termination benefits is recognized and measured at fair value at the communication date. Otherwise, a liability is measured initially at the communication date based on the fair value of the liability as of the termination date and recognized ratably over the future service period. Changes to the fair value of the liability are recorded as restructuring adjustments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Closures of leased offices as part of a restructuring activity prior to the end of the contractual lease term are treated as abandoned right-to-use assets when the Company ceases to use the property for economic benefit and lacks &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;either the intent or ability to sublease. The lease asset is written down to zero as of the abandonment date. Estimates of contract termination costs assume the Company will be obligated to pay the remaining rent over the contract period, and the lease liability continues to be recorded on the balance sheet. Subsequent negotiations that result in early contract terminations are recorded as favorable restructuring adjustments.&lt;/span&gt;&lt;/div&gt;Other associated costs as part of a restructuring activity include costs to consolidate facilities, costs to relocate employees, and legal fees incurred to research local statutory requirements and prepare termination agreements. These costs are recognized in the period in which the liability is incurred, which generally corresponds to the period in which the services are rendered.</us-gaap:CostsAssociatedWithExitOrDisposalActivitiesOrRestructuringsPolicy>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock contextRef="c-1" id="f-477">New Pronouncements&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-09, "Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-07, "Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023. The amendments in the ASU should be applied on a retrospective basis. We did not early adopt ASU 2023-07. Management does not expect ASU 2023-07 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock contextRef="c-1" id="f-476">New Pronouncements&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-09, "Income Taxes (Topic 740): Improvements to Income Tax Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all entities that are subject to Topic 740, Income Taxes. The amendments require public business entities to disclose specific categories in their rate reconciliation and provide additional information for reconciling items that meet a quantitative threshold. They also require all entities to disclose income taxes paid, net of refund received, disaggregated by federal, state, and foreign taxes and by individual jurisdictions in which income taxes paid, net of refunds received, is equal to or greater than five percent of total income taxes paid. For public business entities, the amendments in this ASU are effective for annual periods beginning after December 15, 2024. The amendments in this ASU should be applied on a prospective basis. Management does not expect ASU 2023-09 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2023-07, "Segment Reporting (Topic 280): Improvements to Reportable Segment Disclosures&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in this ASU apply to all public entities, including public entities with a single reportable segment, that are required to report segment information in accordance with Topic 280, Segment Reporting. The amendments require public business entities to provide in interim and annual periods one or more measures of segment profit or loss used by the chief operating decision maker to allocate resources and assess performance. Additionally, the amendments require disclosure of significant segment expenses and other segment items, as well as incremental qualitative disclosures. The amendments in this ASU are effective for fiscal years beginning after December 15, 2023. The amendments in the ASU should be applied on a retrospective basis. We did not early adopt ASU 2023-07. Management does not expect ASU 2023-07 to have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounting Standards Update (ASU) 2020-04, "Reference Rate Reform (Topic 848): Facilitation of the Effects of Reference Rate Reform on Financial Reporting", (ASU) 2021-01, "Reference Rate Reform (Topic 848): Scope", and Accounting Standards Update (ASU) 2022-06, "Reference Rate Reform (Topic 848): Deferral of the Sunset Date of Topic 848"&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The amendments in these ASUs apply to all entities that have contracts, hedging relationships, and other transactions that reference LIBOR or another reference rate expected to be discontinued because of reference rate reform. Together, the ASUs provide optional expedients and exceptions for applying generally accepted accounting principles (GAAP) to contracts, hedging relationships, and other transactions affected by reference rate reform if certain criteria are met. The expedients and exceptions provided by the amendments do not apply to contract modifications made and hedging relationships entered into or evaluated after December 31, 2024, except for hedging relationships existing as of December 31, 2024 that an entity has elected certain optional expedients for and that are retained through the end of the hedging relationship. The amendments in these ASUs are effective for all entities as of March 12, 2020 through December 31, 2024. Management adopted Topic 848 on January 1, 2023, and now uses the Secured Overnight Financing Rate (SOFR). The adoption did not have a material impact on the Company's financial statements and disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsAndChangesInAccountingPrinciplesTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock contextRef="c-1" id="f-478">Fair Value Measurements&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Financial Assets and Liabilities that are Measured at Fair Value on a Recurring Basis&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.578%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;308,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s money market instruments are reported at fair value based on the daily market price for identical assets in active markets, and are therefore classified as Level 1. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s debt securities and forward contracts are reported at fair value based on model-driven valuations in which all significant inputs are observable or can be derived from or corroborated by observable market data for substantially the full term of the asset or liability, and are therefore classified as Level 2. Management is responsible for estimating the fair value of these financial assets and liabilities, and in doing so, considers valuations provided by a large, third-party pricing service. For debt securities, this service maintains regular contact with market makers, brokers, dealers, and analysts to gather information on market movement, direction, trends, and other specific data. They use this information to structure yield curves for various types of debt securities and arrive at the daily valuations. The Company's forward contracts are typically traded or executed in over-the-counter markets with a high degree of pricing transparency. The market participants are generally large commercial banks.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Non-financial Assets that are Measured at Fair Value on a Non-recurring Basis&lt;/span&gt;&lt;/div&gt;Non-financial assets, such as property, plant and equipment, operating lease assets, goodwill, and intangible assets, are required to be measured at fair value only when an impairment loss is recognized. The Company evaluates these long-lived assets for impairment whenever events or changes in circumstances, referred to as "triggering events," indicate the carrying value may not be recoverable. The Company did not record impairment charges related to non-financial assets in 2023, 2022, or 2021.</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock contextRef="c-1" id="f-479">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the financial assets and liabilities measured at fair value on a recurring basis as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:53.578%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Quoted&#160;Prices&#160;in&lt;br/&gt;Active Markets&lt;br/&gt;for Identical&lt;br/&gt;Assets (Level&#160;1)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Significant&#160;Other&lt;br/&gt;Observable&lt;br/&gt;Inputs (Level&#160;2)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unobservable Inputs                       (Level 3)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;308,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;151&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-480" unitRef="usd">19413000</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-481" unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:MoneyMarketInstrumentsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-482" unitRef="usd">0</cgnx:MoneyMarketInstrumentsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-483" unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-484" unitRef="usd">308816000</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:CorporateBondsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-485" unitRef="usd">0</cgnx:CorporateBondsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-486" unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-487" unitRef="usd">43523000</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:TreasuryBillsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-488" unitRef="usd">0</cgnx:TreasuryBillsFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-56" decimals="-3" id="f-489" unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-57" decimals="-3" id="f-490" unitRef="usd">19314000</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:AssetBackedSecuritiesFairValueDisclosure contextRef="c-58" decimals="-3" id="f-491" unitRef="usd">0</cgnx:AssetBackedSecuritiesFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-56" decimals="-3" id="f-492" unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-57" decimals="-3" id="f-493" unitRef="usd">1969000</cgnx:SovereignBondsFairValueDisclosure>
    <cgnx:SovereignBondsFairValueDisclosure contextRef="c-58" decimals="-3" id="f-494" unitRef="usd">0</cgnx:SovereignBondsFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-56" decimals="-3" id="f-495" unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-57" decimals="-3" id="f-496" unitRef="usd">151000</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractAssetFairValueDisclosure contextRef="c-58" decimals="-3" id="f-497" unitRef="usd">0</us-gaap:ForeignCurrencyContractAssetFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-56" decimals="-3" id="f-498" unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-57" decimals="-3" id="f-499" unitRef="usd">106000</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure contextRef="c-58" decimals="-3" id="f-500" unitRef="usd">0</us-gaap:ForeignCurrencyContractsLiabilityFairValueDisclosure>
    <us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock contextRef="c-1" id="f-501">Cash, Cash Equivalents, and Investments&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;183,242&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,959&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19,413&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;202,655&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;181,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;124,851&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,055&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,551&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;129,392&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;218,759&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;183,965&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;374,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;43,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,763&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;979&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;244,230&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;454,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;576,277&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;854,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s cash balance included foreign bank balances totaling $173,614,000 and $160,611,000 as of December&#160;31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Corporate bonds consist of debt securities issued by both domestic and foreign companies; asset-backed securities consist of debt securities collateralized by pools of receivables or loans with credit enhancement; sovereign bonds consist of direct debt issued by foreign governments; agency bonds consist of domestic or foreign obligations of government agencies and government-sponsored enterprises that have government backing; treasury notes consist of debt securities issued by the U.S. government; and municipal bonds consist of debt securities issued by state and local government entities. All of the Company's securities as of December 31, 2023 and 2022 were denominated in U.S. Dollars.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued interest receivable is included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $3,169,000 and $3,620,000 as of December 31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;128,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,299)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(86)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;189,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,867)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,654&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,773&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;383,589&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;588&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;167,558&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,503)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,055&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,607&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(717)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,143&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(285)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(270)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;394,576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;561&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;374,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,333&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(198)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,144&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;103&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,708)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,095&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;699,693&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;743&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(27,560)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;672,876&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(359)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;257,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,166)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(153)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(60)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,049)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;68,557&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,561)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;233,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;301,861&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s gross unrealized losses and fair values for available-for-sale investments in an unrealized loss position as of December&#160;31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;285,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,591)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;187,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(14,609)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;472,240&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(24,200)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;47,582&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,299)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,495&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(126)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,425)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(465)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,716&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(468)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(285)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(285)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;967&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(67)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;957&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(104)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;382,732&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(12,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;190,707&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(14,842)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;573,439&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(27,560)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Management monitors debt securities that are in an unrealized loss position to determine whether a loss exists related to the credit quality of the issuer. When developing an estimate of expected credit losses, management considers all relevant information including historical experience, current conditions, and reasonable forecasts of expected future cash flows. Based on this evaluation, no allowance for credit losses on debt securities was recorded as of December 31, 2023, 2022, or 2021. Management currently intends to hold these securities to full value recovery at maturity.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.823%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;111&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;246&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,065)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net realized gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(182)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Realized gains and losses are included in "Investment income" on the Consolidated Statements of Operations. Prior to the sale of these securities, unrealized gains and losses for these debt securities, net of tax, were recorded in shareholders&#x2019; equity as accumulated other comprehensive loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.508%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.157%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.864%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.256%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;1-2&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2-3&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;3-4&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;4-5&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;5-7&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;308,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,270&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,872&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;129,392&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;71,888&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54,469&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;67,166&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44,264&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsInDebtAndEquityInstrumentsCashAndCashEquivalentsUnrealizedAndRealizedGainsLossesTextBlock>
    <cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock contextRef="c-1" id="f-502">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents, and investments consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.422%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;183,242&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;180,959&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Money market instruments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19,413&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;202,655&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;181,374&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;124,851&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,055&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,551&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26,890&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;990&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Agency bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,858&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,332&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Municipal bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;624&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;129,392&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;218,759&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;183,965&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;374,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;43,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,763&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;979&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,924&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current investments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;244,230&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;454,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;576,277&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;854,250&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cgnx:ComponentsOfCashCashEquivalentsAndInvestmentsTableTableTextBlock>
    <us-gaap:Cash contextRef="c-7" decimals="-3" id="f-503" unitRef="usd">183242000</us-gaap:Cash>
    <us-gaap:Cash contextRef="c-8" decimals="-3" id="f-504" unitRef="usd">180959000</us-gaap:Cash>
    <us-gaap:MoneyMarketFundsAtCarryingValue contextRef="c-7" decimals="-3" id="f-505" unitRef="usd">19413000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:MoneyMarketFundsAtCarryingValue contextRef="c-8" decimals="-3" id="f-506" unitRef="usd">415000</us-gaap:MoneyMarketFundsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-7" decimals="-3" id="f-507" unitRef="usd">202655000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue contextRef="c-8" decimals="-3" id="f-508" unitRef="usd">181374000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-59" decimals="-3" id="f-509" unitRef="usd">124851000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-60" decimals="-3" id="f-510" unitRef="usd">164055000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-61" decimals="-3" id="f-511" unitRef="usd">3551000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-62" decimals="-3" id="f-512" unitRef="usd">26890000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-63" decimals="-3" id="f-513" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-64" decimals="-3" id="f-514" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-65" decimals="-3" id="f-515" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-66" decimals="-3" id="f-516" unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-67" decimals="-3" id="f-517" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-68" decimals="-3" id="f-518" unitRef="usd">11332000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-69" decimals="-3" id="f-519" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-70" decimals="-3" id="f-520" unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-7" decimals="-3" id="f-521" unitRef="usd">129392000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent contextRef="c-8" decimals="-3" id="f-522" unitRef="usd">218759000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-59" decimals="-3" id="f-523" unitRef="usd">183965000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-60" decimals="-3" id="f-524" unitRef="usd">374440000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-67" decimals="-3" id="f-525" unitRef="usd">43523000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-68" decimals="-3" id="f-526" unitRef="usd">44214000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-61" decimals="-3" id="f-527" unitRef="usd">15763000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-62" decimals="-3" id="f-528" unitRef="usd">33539000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-63" decimals="-3" id="f-529" unitRef="usd">979000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent contextRef="c-64" decimals="-3" id="f-530" unitRef="usd">1924000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesNoncurrent>
    <us-gaap:LongTermInvestments contextRef="c-7" decimals="-3" id="f-531" unitRef="usd">244230000</us-gaap:LongTermInvestments>
    <us-gaap:LongTermInvestments contextRef="c-8" decimals="-3" id="f-532" unitRef="usd">454117000</us-gaap:LongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="c-7" decimals="-3" id="f-533" unitRef="usd">576277000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:CashCashEquivalentsShortTermAndLongTermInvestments contextRef="c-8" decimals="-3" id="f-534" unitRef="usd">854250000</cgnx:CashCashEquivalentsShortTermAndLongTermInvestments>
    <cgnx:DueFromForeignBanks contextRef="c-7" decimals="-3" id="f-535" unitRef="usd">173614000</cgnx:DueFromForeignBanks>
    <cgnx:DueFromForeignBanks contextRef="c-8" decimals="-3" id="f-536" unitRef="usd">160611000</cgnx:DueFromForeignBanks>
    <us-gaap:InterestReceivable contextRef="c-7" decimals="-3" id="f-537" unitRef="usd">3169000</us-gaap:InterestReceivable>
    <us-gaap:InterestReceivable contextRef="c-8" decimals="-3" id="f-538" unitRef="usd">3620000</us-gaap:InterestReceivable>
    <us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock contextRef="c-1" id="f-539">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:36.583%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.005%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amortized&lt;br/&gt;Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;128,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,299)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(86)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,012&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;189,326&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,867)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,965&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,654&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;82&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,773&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,010)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,763&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(58)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;383,589&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;588&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAvailableForSaleSecuritiesReconciliationTableTextBlock>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-71" decimals="-3" id="f-540" unitRef="usd">128150000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-71" decimals="-3" id="f-541" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-71" decimals="-3" id="f-542" unitRef="usd">3299000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-71" decimals="-3" id="f-543" unitRef="usd">124851000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-72" decimals="-3" id="f-544" unitRef="usd">3637000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-72" decimals="-3" id="f-545" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-72" decimals="-3" id="f-546" unitRef="usd">86000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-72" decimals="-3" id="f-547" unitRef="usd">3551000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-73" decimals="-3" id="f-548" unitRef="usd">1012000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-73" decimals="-3" id="f-549" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-73" decimals="-3" id="f-550" unitRef="usd">22000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-73" decimals="-3" id="f-551" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-74" decimals="-3" id="f-552" unitRef="usd">189326000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-74" decimals="-3" id="f-553" unitRef="usd">506000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-74" decimals="-3" id="f-554" unitRef="usd">5867000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-74" decimals="-3" id="f-555" unitRef="usd">183965000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-75" decimals="-3" id="f-556" unitRef="usd">43654000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-75" decimals="-3" id="f-557" unitRef="usd">82000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-75" decimals="-3" id="f-558" unitRef="usd">213000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-75" decimals="-3" id="f-559" unitRef="usd">43523000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-76" decimals="-3" id="f-560" unitRef="usd">16773000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-76" decimals="-3" id="f-561" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-76" decimals="-3" id="f-562" unitRef="usd">1010000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-76" decimals="-3" id="f-563" unitRef="usd">15763000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-77" decimals="-3" id="f-564" unitRef="usd">1037000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-77" decimals="-3" id="f-565" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-77" decimals="-3" id="f-566" unitRef="usd">58000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-77" decimals="-3" id="f-567" unitRef="usd">979000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-7" decimals="-3" id="f-568" unitRef="usd">383589000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-7" decimals="-3" id="f-569" unitRef="usd">588000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-7" decimals="-3" id="f-570" unitRef="usd">10555000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-7" decimals="-3" id="f-571" unitRef="usd">373622000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-78" decimals="-3" id="f-572" unitRef="usd">167558000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-78" decimals="-3" id="f-573" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-78" decimals="-3" id="f-574" unitRef="usd">3503000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-78" decimals="-3" id="f-575" unitRef="usd">164055000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-79" decimals="-3" id="f-576" unitRef="usd">27607000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-79" decimals="-3" id="f-577" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-79" decimals="-3" id="f-578" unitRef="usd">717000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-79" decimals="-3" id="f-579" unitRef="usd">26890000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-80" decimals="-3" id="f-580" unitRef="usd">16143000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-80" decimals="-3" id="f-581" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-80" decimals="-3" id="f-582" unitRef="usd">285000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-80" decimals="-3" id="f-583" unitRef="usd">15858000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-81" decimals="-3" id="f-584" unitRef="usd">11602000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-81" decimals="-3" id="f-585" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-81" decimals="-3" id="f-586" unitRef="usd">270000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-81" decimals="-3" id="f-587" unitRef="usd">11332000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-82" decimals="-3" id="f-588" unitRef="usd">635000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-82" decimals="-3" id="f-589" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-82" decimals="-3" id="f-590" unitRef="usd">11000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-82" decimals="-3" id="f-591" unitRef="usd">624000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-83" decimals="-3" id="f-592" unitRef="usd">394576000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-83" decimals="-3" id="f-593" unitRef="usd">561000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-83" decimals="-3" id="f-594" unitRef="usd">20697000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-83" decimals="-3" id="f-595" unitRef="usd">374440000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-84" decimals="-3" id="f-596" unitRef="usd">44333000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-84" decimals="-3" id="f-597" unitRef="usd">79000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-84" decimals="-3" id="f-598" unitRef="usd">198000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-84" decimals="-3" id="f-599" unitRef="usd">44214000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-85" decimals="-3" id="f-600" unitRef="usd">35144000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-85" decimals="-3" id="f-601" unitRef="usd">103000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-85" decimals="-3" id="f-602" unitRef="usd">1708000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-85" decimals="-3" id="f-603" unitRef="usd">33539000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-86" decimals="-3" id="f-604" unitRef="usd">2095000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-86" decimals="-3" id="f-605" unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-86" decimals="-3" id="f-606" unitRef="usd">171000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-86" decimals="-3" id="f-607" unitRef="usd">1924000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis contextRef="c-8" decimals="-3" id="f-608" unitRef="usd">699693000</us-gaap:AvailableForSaleDebtSecuritiesAmortizedCostBasis>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax contextRef="c-8" decimals="-3" id="f-609" unitRef="usd">743000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax contextRef="c-8" decimals="-3" id="f-610" unitRef="usd">27560000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-8" decimals="-3" id="f-611" unitRef="usd">672876000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock contextRef="c-1" id="f-612">&lt;div&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:34.289%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.885%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.032%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.328%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Less than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized Loss&lt;br/&gt;Position For Greater than&lt;br/&gt;12 Months&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Unrealized&lt;br/&gt;Losses&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,770&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(359)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;226,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,807)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;257,413&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,166)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(153)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(60)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,166&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(213)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,049)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,252&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(47)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,968&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(80)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;68,557&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,561)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;233,304&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(8,994)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;301,861&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,555)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfUnrealizedLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-59" decimals="-3" id="f-613" unitRef="usd">30770000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-59" decimals="-3" id="f-614" unitRef="usd">359000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-59" decimals="-3" id="f-615" unitRef="usd">226643000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-59" decimals="-3" id="f-616" unitRef="usd">8807000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-59" decimals="-3" id="f-617" unitRef="usd">257413000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-59" decimals="-3" id="f-618" unitRef="usd">9166000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-87" decimals="-3" id="f-619" unitRef="usd">20725000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-87" decimals="-3" id="f-620" unitRef="usd">153000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-87" decimals="-3" id="f-621" unitRef="usd">2441000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-87" decimals="-3" id="f-622" unitRef="usd">60000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-87" decimals="-3" id="f-623" unitRef="usd">23166000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-87" decimals="-3" id="f-624" unitRef="usd">213000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-61" decimals="-3" id="f-625" unitRef="usd">17062000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-61" decimals="-3" id="f-626" unitRef="usd">1049000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-61" decimals="-3" id="f-627" unitRef="usd">2252000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-61" decimals="-3" id="f-628" unitRef="usd">47000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-61" decimals="-3" id="f-629" unitRef="usd">19314000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-61" decimals="-3" id="f-630" unitRef="usd">1096000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-63" decimals="-3" id="f-631" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-63" decimals="-3" id="f-632" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-63" decimals="-3" id="f-633" unitRef="usd">1968000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-63" decimals="-3" id="f-634" unitRef="usd">80000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-63" decimals="-3" id="f-635" unitRef="usd">1968000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-63" decimals="-3" id="f-636" unitRef="usd">80000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-7" decimals="-3" id="f-637" unitRef="usd">68557000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-7" decimals="-3" id="f-638" unitRef="usd">1561000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-7" decimals="-3" id="f-639" unitRef="usd">233304000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-7" decimals="-3" id="f-640" unitRef="usd">8994000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-7" decimals="-3" id="f-641" unitRef="usd">301861000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-7" decimals="-3" id="f-642" unitRef="usd">10555000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-60" decimals="-3" id="f-643" unitRef="usd">285087000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-60" decimals="-3" id="f-644" unitRef="usd">9591000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-60" decimals="-3" id="f-645" unitRef="usd">187153000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-60" decimals="-3" id="f-646" unitRef="usd">14609000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-60" decimals="-3" id="f-647" unitRef="usd">472240000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-60" decimals="-3" id="f-648" unitRef="usd">24200000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-62" decimals="-3" id="f-649" unitRef="usd">47582000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-62" decimals="-3" id="f-650" unitRef="usd">2299000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-62" decimals="-3" id="f-651" unitRef="usd">2495000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-62" decimals="-3" id="f-652" unitRef="usd">126000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-62" decimals="-3" id="f-653" unitRef="usd">50077000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-62" decimals="-3" id="f-654" unitRef="usd">2425000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-88" decimals="-3" id="f-655" unitRef="usd">32614000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-88" decimals="-3" id="f-656" unitRef="usd">465000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-88" decimals="-3" id="f-657" unitRef="usd">102000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-88" decimals="-3" id="f-658" unitRef="usd">3000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-88" decimals="-3" id="f-659" unitRef="usd">32716000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-88" decimals="-3" id="f-660" unitRef="usd">468000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-66" decimals="-3" id="f-661" unitRef="usd">15858000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-66" decimals="-3" id="f-662" unitRef="usd">285000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-66" decimals="-3" id="f-663" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-66" decimals="-3" id="f-664" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-66" decimals="-3" id="f-665" unitRef="usd">15858000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-66" decimals="-3" id="f-666" unitRef="usd">285000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-64" decimals="-3" id="f-667" unitRef="usd">967000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-64" decimals="-3" id="f-668" unitRef="usd">67000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-64" decimals="-3" id="f-669" unitRef="usd">957000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-64" decimals="-3" id="f-670" unitRef="usd">104000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-64" decimals="-3" id="f-671" unitRef="usd">1924000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-64" decimals="-3" id="f-672" unitRef="usd">171000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-70" decimals="-3" id="f-673" unitRef="usd">624000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-70" decimals="-3" id="f-674" unitRef="usd">11000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-70" decimals="-3" id="f-675" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-70" decimals="-3" id="f-676" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-70" decimals="-3" id="f-677" unitRef="usd">624000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-70" decimals="-3" id="f-678" unitRef="usd">11000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months contextRef="c-8" decimals="-3" id="f-679" unitRef="usd">382732000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12Months>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss contextRef="c-8" decimals="-3" id="f-680" unitRef="usd">12718000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPositionLessThan12MonthsAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger contextRef="c-8" decimals="-3" id="f-681" unitRef="usd">190707000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLonger>
    <us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss contextRef="c-8" decimals="-3" id="f-682" unitRef="usd">14842000</us-gaap:DebtSecuritiesAvailableForSaleContinuousUnrealizedLossPosition12MonthsOrLongerAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition contextRef="c-8" decimals="-3" id="f-683" unitRef="usd">573439000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPosition>
    <us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss contextRef="c-8" decimals="-3" id="f-684" unitRef="usd">27560000</us-gaap:DebtSecuritiesAvailableForSaleUnrealizedLossPositionAccumulatedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-9" decimals="-3" id="f-685" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-7" decimals="-3" id="f-686" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss contextRef="c-8" decimals="-3" id="f-687" unitRef="usd">0</us-gaap:DebtSecuritiesAvailableForSaleAllowanceForCreditLoss>
    <us-gaap:RealizedGainLossOnInvestmentsTableTextBlock contextRef="c-1" id="f-688">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;The following table summarizes the Company's gross realized gains and losses on the sale of debt securities (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.823%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.519%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.524%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;111&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;133&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;246&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross realized losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2,065)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(315)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net realized gains (losses)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(182)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;236&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RealizedGainLossOnInvestmentsTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-1" decimals="-3" id="f-689" unitRef="usd">111000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-4" decimals="-3" id="f-690" unitRef="usd">133000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedGain contextRef="c-5" decimals="-3" id="f-691" unitRef="usd">246000</us-gaap:DebtSecuritiesAvailableForSaleRealizedGain>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-1" decimals="-3" id="f-692" unitRef="usd">-2065000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-4" decimals="-3" id="f-693" unitRef="usd">-315000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss contextRef="c-5" decimals="-3" id="f-694" unitRef="usd">-10000</us-gaap:DebtSecuritiesAvailableForSaleRealizedLoss>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-1" decimals="-3" id="f-695" unitRef="usd">-1954000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-4" decimals="-3" id="f-696" unitRef="usd">-182000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:RealizedInvestmentGainsLosses contextRef="c-5" decimals="-3" id="f-697" unitRef="usd">236000</us-gaap:RealizedInvestmentGainsLosses>
    <us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock contextRef="c-1" id="f-698">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the effective maturity dates of the Company&#x2019;s available-for-sale investments as of December&#160;31, 2023 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:25.508%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.157%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.864%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.256%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:7.818%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:9.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;&amp;lt;1&#160;Year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;1-2&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2-3&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;3-4&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;4-5&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;5-7&#160;Years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Corporate bonds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;124,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44,896&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,567&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;308,816&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Treasury notes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,441&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,115&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,270&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,697&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,523&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Asset-backed securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,872&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,443&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,314&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Sovereign bonds&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;990&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;979&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,969&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;129,392&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;71,888&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54,469&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;67,166&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44,264&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;373,622&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InvestmentsClassifiedByContractualMaturityDateTableTextBlock>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-59" decimals="-3" id="f-699" unitRef="usd">124851000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-59" decimals="-3" id="f-700" unitRef="usd">62596000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-59" decimals="-3" id="f-701" unitRef="usd">44906000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-59" decimals="-3" id="f-702" unitRef="usd">44896000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-59" decimals="-3" id="f-703" unitRef="usd">31567000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-59" decimals="-3" id="f-704" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-59" decimals="-3" id="f-705" unitRef="usd">308816000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-87" decimals="-3" id="f-706" unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-87" decimals="-3" id="f-707" unitRef="usd">2441000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-87" decimals="-3" id="f-708" unitRef="usd">6115000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-87" decimals="-3" id="f-709" unitRef="usd">22270000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-87" decimals="-3" id="f-710" unitRef="usd">12697000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-87" decimals="-3" id="f-711" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-87" decimals="-3" id="f-712" unitRef="usd">43523000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-61" decimals="-3" id="f-713" unitRef="usd">3551000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-61" decimals="-3" id="f-714" unitRef="usd">5872000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-61" decimals="-3" id="f-715" unitRef="usd">3448000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-61" decimals="-3" id="f-716" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-61" decimals="-3" id="f-717" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-61" decimals="-3" id="f-718" unitRef="usd">6443000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-61" decimals="-3" id="f-719" unitRef="usd">19314000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-63" decimals="-3" id="f-720" unitRef="usd">990000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-63" decimals="-3" id="f-721" unitRef="usd">979000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-63" decimals="-3" id="f-722" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-63" decimals="-3" id="f-723" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-63" decimals="-3" id="f-724" unitRef="usd">0</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-63" id="f-725" unitRef="usd" xsi:nil="true"/>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-63" decimals="-3" id="f-726" unitRef="usd">1969000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue contextRef="c-7" decimals="-3" id="f-727" unitRef="usd">129392000</us-gaap:AvailableForSaleSecuritiesDebtMaturitiesWithinOneYearFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue contextRef="c-7" decimals="-3" id="f-728" unitRef="usd">71888000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterOneYearBeforeTwoYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue contextRef="c-7" decimals="-3" id="f-729" unitRef="usd">54469000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterTwoYearsBeforeThreeYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue contextRef="c-7" decimals="-3" id="f-730" unitRef="usd">67166000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterThreeYearsBeforeFourYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue contextRef="c-7" decimals="-3" id="f-731" unitRef="usd">44264000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFourYearsBeforeFiveYearsFairValue>
    <cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue contextRef="c-7" decimals="-3" id="f-732" unitRef="usd">6443000</cgnx:AvailableForSaleSecuritiesDebtMaturitiesAfterFiveYearsBeforeSevenYearsFairValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities contextRef="c-7" decimals="-3" id="f-733" unitRef="usd">373622000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:InventoryDisclosureTextBlock contextRef="c-1" id="f-734">Inventories&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,201&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,720&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,747&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;63,337&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;162,285&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company recorded inventories with a fair value of $22,788,000 on the acquisition date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recorded provisions for excess and obsolete inventories of $3,775,000 and $3,084,000 in 2023 and 2022, respectively, which reduced the carrying value of the inventories to their net realizable value.&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock contextRef="c-1" id="f-735">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Inventories consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Raw materials&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;93,201&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;71,720&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Work-in-process&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,747&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;906&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Finished goods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;63,337&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,854&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;162,285&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;122,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-7" decimals="-3" id="f-736" unitRef="usd">93201000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves contextRef="c-8" decimals="-3" id="f-737" unitRef="usd">71720000</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-7" decimals="-3" id="f-738" unitRef="usd">5747000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryWorkInProcessNetOfReserves contextRef="c-8" decimals="-3" id="f-739" unitRef="usd">906000</us-gaap:InventoryWorkInProcessNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-7" decimals="-3" id="f-740" unitRef="usd">63337000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves contextRef="c-8" decimals="-3" id="f-741" unitRef="usd">49854000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNet contextRef="c-7" decimals="-3" id="f-742" unitRef="usd">162285000</us-gaap:InventoryNet>
    <us-gaap:InventoryNet contextRef="c-8" decimals="-3" id="f-743" unitRef="usd">122480000</us-gaap:InventoryNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="c-89" decimals="-3" id="f-744" unitRef="usd">22788000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-1" decimals="-3" id="f-745" unitRef="usd">3775000</cgnx:ExcessAndObsoleteInventoryCharges>
    <cgnx:ExcessAndObsoleteInventoryCharges contextRef="c-4" decimals="-3" id="f-746" unitRef="usd">3084000</cgnx:ExcessAndObsoleteInventoryCharges>
    <us-gaap:PropertyPlantAndEquipmentTextBlock contextRef="c-1" id="f-747">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, plant, and equipment consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:70.935%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.516%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.517%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Land&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,805&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Buildings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;34,117&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,533&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Building improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44,992&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;45,003&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;19,611&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,491&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer hardware and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;55,154&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53,663&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Manufacturing test equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;36,182&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;7,361&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;206,222&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;175,195&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(100,373)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(95,481)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;105,849&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79,714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-90" decimals="-3" id="f-748" unitRef="usd">8805000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-91" decimals="-3" id="f-749" unitRef="usd">3951000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-38" decimals="-3" id="f-750" unitRef="usd">34117000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-92" decimals="-3" id="f-751" unitRef="usd">24533000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-39" decimals="-3" id="f-752" unitRef="usd">44992000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-93" decimals="-3" id="f-753" unitRef="usd">45003000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-94" decimals="-3" id="f-754" unitRef="usd">19611000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-95" decimals="-3" id="f-755" unitRef="usd">14491000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-96" decimals="-3" id="f-756" unitRef="usd">55154000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-97" decimals="-3" id="f-757" unitRef="usd">53663000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-98" decimals="-3" id="f-758" unitRef="usd">36182000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-99" decimals="-3" id="f-759" unitRef="usd">27176000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-100" decimals="-3" id="f-760" unitRef="usd">7361000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-101" decimals="-3" id="f-761" unitRef="usd">6378000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-7" decimals="-3" id="f-762" unitRef="usd">206222000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross contextRef="c-8" decimals="-3" id="f-763" unitRef="usd">175195000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-7" decimals="-3" id="f-764" unitRef="usd">100373000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment contextRef="c-8" decimals="-3" id="f-765" unitRef="usd">95481000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-7" decimals="-3" id="f-766" unitRef="usd">105849000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet contextRef="c-8" decimals="-3" id="f-767" unitRef="usd">79714000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="c-89" decimals="-3" id="f-768" unitRef="usd">19876000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-1" decimals="-3" id="f-769" unitRef="usd">12421000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1 contextRef="c-1" decimals="-3" id="f-770" unitRef="usd">12184000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment contextRef="c-1" decimals="-3" id="f-771" unitRef="usd">8000</us-gaap:ProceedsFromSaleOfPropertyPlantAndEquipment>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-1" decimals="-3" id="f-772" unitRef="usd">-229000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:PropertyPlantAndEquipmentDisposals contextRef="c-4" decimals="-3" id="f-773" unitRef="usd">17358000</us-gaap:PropertyPlantAndEquipmentDisposals>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1 contextRef="c-4" decimals="-3" id="f-774" unitRef="usd">16604000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationSaleOfPropertyPlantAndEquipment1>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-4" decimals="-3" id="f-775" unitRef="usd">-754000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:GainLossOnDispositionOfAssets1 contextRef="c-102" decimals="-3" id="f-776" unitRef="usd">-735000</us-gaap:GainLossOnDispositionOfAssets1>
    <us-gaap:LesseeOperatingLeasesTextBlock contextRef="c-1" id="f-777">Leases&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's leases are primarily leased properties across different worldwide locations where the Company conducts its operations. All of these leases are classified as operating leases. Certain leases may contain options to extend or terminate the lease at the Company's sole discretion. As of December 31, 2023, there were no options to terminate and twenty-eight options to extend that were accounted for in the determination of the lease term for the Company's outstanding leases. Certain leases contain leasehold improvement incentives, retirement obligations, escalating clauses, rent holidays, and variable payments tied to a consumer price index. Lease costs associated with variable payments were $1,175,000 in 2023, $1,009,000 in 2022, and $1,253,000 in 2021. There were no restrictions or covenants for the outstanding leases as of December 31, 2023. The Company did not have any leases that had not yet commenced but that created significant rights and/or obligations as of December 31, 2023.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total operating lease expense was $11,598,000 in 2023, $8,939,000 in 2022, and $8,180,000 in 2021. The total operating lease cash payments were $10,148,000 in 2023, $8,548,000 in 2022, and $8,225,000 in 2021. The total lease expense for leases with a term of twelve months or less for which the Company elected not to recognize a lease asset or lease liability was $427,000 in 2023, $144,000 in 2022, and $154,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.648%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.728%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,836&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,746&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;105,697&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The discounted present value of the future lease cash payments resulted in a lease liability of $78,601,000 and $39,752,000 as of December 31, 2023 and 2022, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company assumed multiple lease agreements, the most significant of which is for a 22,000 square-foot building in Vietnam that serves as a production plant for optical components.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2023, the Company entered into a lease for a 115,000 square-foot building in Singapore to serve as a new distribution center for customers in Asia. The lease contains two components, including an 88,000 square-foot premises with a term of ten years, six months. The Company has the right and option to extend the term of this lease component for an additional period of five years, commencing upon the expiration of the original term. This lease component commenced during the second quarter of 2023, and therefore the Company recorded approximately $29,639,000, which reflects an estimated extension period of five years, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date. The second component of this Singapore lease is for a 27,000 square-foot premises with a term of eight years. The commencement date for this lease component is in the fourth quarter of 2025, and therefore it was not yet recorded on the Consolidated Balance Sheets, nor did it create any significant rights and obligations as of December 31, 2023. The Company has the right and option to extend the term of this lease component for an additional period of five years, commencing upon the expiration of the original term. Future payment obligations associated with this lease component total $13,231,000, none of which was payable in 2023 and which reflects an estimated extension &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;period of five years. Future payment obligations related to this lease component are not included in the future operating lease cash payments table above. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2021, the Company entered into a lease for a 65,000 square-foot building in Southborough, Massachusetts for a term of ten years to serve as a new distribution center for customers in the Americas. The Company has the right and option to extend the term of this lease for an additional period of five years, commencing upon the expiration of the original ten-year term. This lease commenced during the first quarter of 2022, and therefore the Company recorded approximately $9,271,000, which does not reflect an estimated extension period, within "Operating lease assets" and "Operating lease liabilities" on the Consolidated Balance Sheets on the commencement date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average discount rate was 5.7% and 3.3% for the leases outstanding as of December 31, 2023 and December 31, 2022, respectively. The weighted-average remaining lease term was 10.5 years and 7.8 years for the leases outstanding as of December 31, 2023 and 2022, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <us-gaap:VariableLeasePayment contextRef="c-1" decimals="-3" id="f-778" unitRef="usd">1175000</us-gaap:VariableLeasePayment>
    <us-gaap:VariableLeasePayment contextRef="c-4" decimals="-3" id="f-779" unitRef="usd">1009000</us-gaap:VariableLeasePayment>
    <us-gaap:VariableLeasePayment contextRef="c-5" decimals="-3" id="f-780" unitRef="usd">1253000</us-gaap:VariableLeasePayment>
    <us-gaap:OperatingLeaseExpense contextRef="c-1" decimals="-3" id="f-781" unitRef="usd">11598000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense contextRef="c-4" decimals="-3" id="f-782" unitRef="usd">8939000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense contextRef="c-5" decimals="-3" id="f-783" unitRef="usd">8180000</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeasePayments contextRef="c-1" decimals="-3" id="f-784" unitRef="usd">10148000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-4" decimals="-3" id="f-785" unitRef="usd">8548000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments contextRef="c-5" decimals="-3" id="f-786" unitRef="usd">8225000</us-gaap:OperatingLeasePayments>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-1" decimals="-3" id="f-787" unitRef="usd">427000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-4" decimals="-3" id="f-788" unitRef="usd">144000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized contextRef="c-5" decimals="-3" id="f-789" unitRef="usd">154000</cgnx:OperatingLeaseExpenseNoLiabilityOrAssetRecognized>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock contextRef="c-1" id="f-790">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future operating lease cash payments are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:82.648%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:2.728%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.224%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,612&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,836&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,746&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,851&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,395&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;105,697&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths contextRef="c-7" decimals="-3" id="f-791" unitRef="usd">13612000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo contextRef="c-7" decimals="-3" id="f-792" unitRef="usd">11836000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree contextRef="c-7" decimals="-3" id="f-793" unitRef="usd">9746000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour contextRef="c-7" decimals="-3" id="f-794" unitRef="usd">8851000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive contextRef="c-7" decimals="-3" id="f-795" unitRef="usd">8395000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive contextRef="c-7" decimals="-3" id="f-796" unitRef="usd">53257000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-7" decimals="-3" id="f-797" unitRef="usd">105697000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <cgnx:OperatingLeaseLiabilityDiscountedPresentValue contextRef="c-7" decimals="-3" id="f-798" unitRef="usd">78601000</cgnx:OperatingLeaseLiabilityDiscountedPresentValue>
    <us-gaap:OperatingLeaseLiability contextRef="c-8" decimals="-3" id="f-799" unitRef="usd">39752000</us-gaap:OperatingLeaseLiability>
    <us-gaap:NetRentableArea contextRef="c-103" decimals="-3" id="f-800" unitRef="sqft">22000</us-gaap:NetRentableArea>
    <us-gaap:NetRentableArea contextRef="c-104" decimals="-3" id="f-801" unitRef="sqft">115000</us-gaap:NetRentableArea>
    <cgnx:LesseeOperatingLeaseComponents
      contextRef="c-104"
      decimals="INF"
      id="f-802"
      unitRef="lease_component">2</cgnx:LesseeOperatingLeaseComponents>
    <us-gaap:NetRentableArea contextRef="c-105" decimals="-3" id="f-803" unitRef="sqft">88000</us-gaap:NetRentableArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-105" id="f-804">P10Y6M</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract contextRef="c-106" id="f-805">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-105" decimals="-3" id="f-806" unitRef="usd">29639000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiability contextRef="c-105" decimals="-3" id="f-807" unitRef="usd">29639000</us-gaap:OperatingLeaseLiability>
    <us-gaap:NetRentableArea contextRef="c-107" decimals="-3" id="f-808" unitRef="sqft">27000</us-gaap:NetRentableArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-107" id="f-809">P8Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract contextRef="c-108" id="f-810">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue contextRef="c-109" decimals="-3" id="f-811" unitRef="usd">13231000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear contextRef="c-109" decimals="-3" id="f-812" unitRef="usd">0</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract contextRef="c-108" id="f-813">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:NetRentableArea contextRef="c-110" decimals="-3" id="f-814" unitRef="sqft">65000</us-gaap:NetRentableArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-110" id="f-815">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract contextRef="c-111" id="f-816">P5Y</cgnx:LesseeOperatingLeaseOptionToRenewTermOfContract>
    <us-gaap:LesseeOperatingLeaseTermOfContract contextRef="c-110" id="f-817">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:OperatingLeaseRightOfUseAsset contextRef="c-110" decimals="-3" id="f-818" unitRef="usd">9271000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiability contextRef="c-110" decimals="-3" id="f-819" unitRef="usd">9271000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-7" decimals="3" id="f-820" unitRef="number">0.057</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent contextRef="c-8" decimals="3" id="f-821" unitRef="number">0.033</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-7" id="f-822">P10Y6M</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1 contextRef="c-8" id="f-823">P7Y9M18D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:GoodwillDisclosureTextBlock contextRef="c-1" id="f-824">Goodwill&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:83.380%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.688%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;241,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,442)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of Moritex Corporation (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;393,181&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For its 2023 annual analysis of goodwill, management elected to perform a qualitative assessment. Based on this assessment, management believes it is more likely than not that the fair value of the reporting unit exceeds its carrying value. The Company did not record impairment charges related to goodwill in 2023, 2022, or 2021.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock contextRef="c-1" id="f-825">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the carrying value of goodwill were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:83.380%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.688%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;241,713&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,359&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,442)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;242,630&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Acquisition of Moritex Corporation (refer to Note 21)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,504&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;393,181&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill contextRef="c-9" decimals="-3" id="f-826" unitRef="usd">241713000</us-gaap:Goodwill>
    <us-gaap:GoodwillOtherIncreaseDecrease contextRef="c-112" decimals="-3" id="f-827" unitRef="usd">2359000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss contextRef="c-4" decimals="-3" id="f-828" unitRef="usd">-1442000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill contextRef="c-8" decimals="-3" id="f-829" unitRef="usd">242630000</us-gaap:Goodwill>
    <us-gaap:GoodwillOtherIncreaseDecrease contextRef="c-113" decimals="-3" id="f-830" unitRef="usd">145047000</us-gaap:GoodwillOtherIncreaseDecrease>
    <us-gaap:GoodwillForeignCurrencyTranslationGainLoss contextRef="c-1" decimals="-3" id="f-831" unitRef="usd">5504000</us-gaap:GoodwillForeignCurrencyTranslationGainLoss>
    <us-gaap:Goodwill contextRef="c-7" decimals="-3" id="f-832" unitRef="usd">393181000</us-gaap:Goodwill>
    <us-gaap:IntangibleAssetsDisclosureTextBlock contextRef="c-1" id="f-833">Intangible Assets&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;75,965&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;70,613&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;62,123&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(20,745)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;41,378&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;903&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;853&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(232)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;108&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;139,331&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(26,379)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,952&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,744)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,860)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(177)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,195&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,781)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of Moritex Corporation in the fourth quarter of 2023 (refer to Note 21), the Company acquired customer relationships valued at $66,900,000 with an estimated useful life of fifteen years, completed technologies valued at $32,300,000 with an estimated useful life of nine years, and trademarks valued at $850,000 with an estimated useful life of three years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of SAC Sirius Advanced Cybernetics GmbH ("SAC") in the fourth quarter of 2022, (refer to Note 21), the Company acquired completed technologies valued at $3,800,000 with an estimated useful life of 7 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2022, the Company retired approximately $43,280,000 of intangible assets primarily related to distribution networks and customer relationships that were fully amortized and had a net carrying value of zero on the Consolidated Balance Sheets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company did not record impairment charges related to intangible assets in 2023, 2022 or 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,711&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,952&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock contextRef="c-1" id="f-834">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;75,965&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,352)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;70,613&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;62,123&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(20,745)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;41,378&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;903&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(50)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;853&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;340&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(232)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;108&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;139,331&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(26,379)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,952&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Gross&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Accumulated&lt;br/&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Net&lt;br/&gt;Carrying&lt;br/&gt;Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,017&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(17,744)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,273&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,860)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,978&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Non-compete agreements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(177)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;163&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,195&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,781)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-114" decimals="-3" id="f-835" unitRef="usd">75965000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-114" decimals="-3" id="f-836" unitRef="usd">-5352000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-114" decimals="-3" id="f-837" unitRef="usd">70613000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-115" decimals="-3" id="f-838" unitRef="usd">62123000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-115" decimals="-3" id="f-839" unitRef="usd">-20745000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-115" decimals="-3" id="f-840" unitRef="usd">41378000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-48" decimals="-3" id="f-841" unitRef="usd">903000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-48" decimals="-3" id="f-842" unitRef="usd">-50000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-48" decimals="-3" id="f-843" unitRef="usd">853000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-116" decimals="-3" id="f-844" unitRef="usd">340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-116" decimals="-3" id="f-845" unitRef="usd">-232000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-116" decimals="-3" id="f-846" unitRef="usd">108000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-7" decimals="-3" id="f-847" unitRef="usd">139331000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-7" decimals="-3" id="f-848" unitRef="usd">-26379000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-7" decimals="-3" id="f-849" unitRef="usd">112952000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-117" decimals="-3" id="f-850" unitRef="usd">28017000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-117" decimals="-3" id="f-851" unitRef="usd">-17744000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-117" decimals="-3" id="f-852" unitRef="usd">10273000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-118" decimals="-3" id="f-853" unitRef="usd">5838000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-118" decimals="-3" id="f-854" unitRef="usd">-3860000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-118" decimals="-3" id="f-855" unitRef="usd">1978000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-119" decimals="-3" id="f-856" unitRef="usd">340000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-119" decimals="-3" id="f-857" unitRef="usd">-177000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-119" decimals="-3" id="f-858" unitRef="usd">163000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross contextRef="c-8" decimals="-3" id="f-859" unitRef="usd">34195000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization contextRef="c-8" decimals="-3" id="f-860" unitRef="usd">-21781000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-8" decimals="-3" id="f-861" unitRef="usd">12414000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-120" decimals="-3" id="f-862" unitRef="usd">66900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="c-121" id="f-863">P15Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-122" decimals="-3" id="f-864" unitRef="usd">32300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="c-123" id="f-865">P9Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-124" decimals="-3" id="f-866" unitRef="usd">850000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="c-125" id="f-867">P3Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-126" decimals="-3" id="f-868" unitRef="usd">3800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife contextRef="c-127" id="f-869">P7Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill contextRef="c-128" decimals="-3" id="f-870" unitRef="usd">43280000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock contextRef="c-1" id="f-871">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Estimated amortization expense for each of the five succeeding fiscal years and thereafter is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.623%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.445%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,711&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2028&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,008&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,952&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths contextRef="c-7" decimals="-3" id="f-872" unitRef="usd">11389000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo contextRef="c-7" decimals="-3" id="f-873" unitRef="usd">11066000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree contextRef="c-7" decimals="-3" id="f-874" unitRef="usd">10711000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour contextRef="c-7" decimals="-3" id="f-875" unitRef="usd">9737000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive contextRef="c-7" decimals="-3" id="f-876" unitRef="usd">9008000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive contextRef="c-7" decimals="-3" id="f-877" unitRef="usd">61041000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseAfterYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet contextRef="c-7" decimals="-3" id="f-878" unitRef="usd">112952000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock contextRef="c-1" id="f-879">Accrued Expenses&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:64.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,645&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and payroll taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,774&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,827&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,244&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred payments related to Sualab Co., Ltd. acquisition (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,282&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;30,049&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;72,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;93,235&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments, contingent upon the continued employment of key talent, of $24,040,000 that was paid fully in October 2023. The deferred payments were recorded as compensation expense over the four-year period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,244&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AccountsPayableAndAccruedLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock contextRef="c-1" id="f-880">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued expenses consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:64.002%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.057%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign retirement obligations&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;12,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Incentive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,645&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,554&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Salaries and payroll taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,774&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vacation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,827&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,847&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,244&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred payments related to Sualab Co., Ltd. acquisition (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,282&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;30,049&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,865&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;72,374&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;93,235&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) The total consideration for the Company's 2019 acquisition of Sualab Co., Ltd. included deferred payments, contingent upon the continued employment of key talent, of $24,040,000 that was paid fully in October 2023. The deferred payments were recorded as compensation expense over the four-year period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in the warranty obligation were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,244&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <cgnx:RetirementAllowance contextRef="c-7" decimals="-3" id="f-881" unitRef="usd">12835000</cgnx:RetirementAllowance>
    <cgnx:RetirementAllowance contextRef="c-8" decimals="-3" id="f-882" unitRef="usd">7191000</cgnx:RetirementAllowance>
    <us-gaap:AccruedBonusesCurrent contextRef="c-7" decimals="-3" id="f-883" unitRef="usd">10645000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedBonusesCurrent contextRef="c-8" decimals="-3" id="f-884" unitRef="usd">18554000</us-gaap:AccruedBonusesCurrent>
    <us-gaap:AccruedSalariesCurrent contextRef="c-7" decimals="-3" id="f-885" unitRef="usd">8774000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent contextRef="c-8" decimals="-3" id="f-886" unitRef="usd">8121000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedVacationCurrent contextRef="c-7" decimals="-3" id="f-887" unitRef="usd">5827000</us-gaap:AccruedVacationCurrent>
    <us-gaap:AccruedVacationCurrent contextRef="c-8" decimals="-3" id="f-888" unitRef="usd">5847000</us-gaap:AccruedVacationCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="c-7" decimals="-3" id="f-889" unitRef="usd">4244000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:ProductWarrantyAccrualClassifiedCurrent contextRef="c-8" decimals="-3" id="f-890" unitRef="usd">4375000</us-gaap:ProductWarrantyAccrualClassifiedCurrent>
    <us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent contextRef="c-7" decimals="-3" id="f-891" unitRef="usd">0</us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent>
    <us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent contextRef="c-8" decimals="-3" id="f-892" unitRef="usd">19282000</us-gaap:OtherDeferredCompensationArrangementsLiabilityCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-893" unitRef="usd">30049000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent contextRef="c-8" decimals="-3" id="f-894" unitRef="usd">29865000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-7" decimals="-3" id="f-895" unitRef="usd">72374000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent contextRef="c-8" decimals="-3" id="f-896" unitRef="usd">93235000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities contextRef="c-1" decimals="0" id="f-897" unitRef="usd">24040000</us-gaap:PaymentForContingentConsiderationLiabilityOperatingActivities>
    <us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock contextRef="c-1" id="f-898">&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.209%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.591%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,928)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,375&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Provisions for warranties issued during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,940&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Fulfillment of warranty obligations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,078)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,244&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock>
    <us-gaap:ProductWarrantyAccrual contextRef="c-10" decimals="-3" id="f-899" unitRef="usd">5406000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-5" decimals="-3" id="f-900" unitRef="usd">3256000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-5" decimals="-3" id="f-901" unitRef="usd">3235000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual contextRef="c-9" decimals="-3" id="f-902" unitRef="usd">5427000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-4" decimals="-3" id="f-903" unitRef="usd">1876000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-4" decimals="-3" id="f-904" unitRef="usd">2928000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:ProductWarrantyAccrual contextRef="c-8" decimals="-3" id="f-905" unitRef="usd">4375000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:ProductWarrantyAccrualWarrantiesIssued contextRef="c-1" decimals="-3" id="f-906" unitRef="usd">2940000</us-gaap:ProductWarrantyAccrualWarrantiesIssued>
    <us-gaap:ProductWarrantyAccrualPayments contextRef="c-1" decimals="-3" id="f-907" unitRef="usd">3078000</us-gaap:ProductWarrantyAccrualPayments>
    <us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss contextRef="c-1" decimals="-3" id="f-908" unitRef="usd">7000</us-gaap:StandardAndExtendedProductWarrantyAccrualForeignCurrencyTranslationGainLoss>
    <us-gaap:ProductWarrantyAccrual contextRef="c-7" decimals="-3" id="f-909" unitRef="usd">4244000</us-gaap:ProductWarrantyAccrual>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock contextRef="c-1" id="f-910">Commitments and Contingencies&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, the Company had outstanding purchase orders totaling $61,459,000 to procure inventory from various vendors. Certain of these purchase orders may be canceled by the Company, subject to cancellation penalties. These purchase commitments relate primarily to expected sales in 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A significant portion of the Company's outstanding inventory purchase orders as of December&#160;31, 2023, as well as additional preauthorized commitments to procure strategic components based on the Company's expected customer demand, are placed with the Company's primary contract manufacturer for the Company's assembled products. The Company purchased $10,616,000, $5,269,000, and $547,000 in 2023, 2022, and 2021, respectively, of inventories as a result of the Company's obligation to purchase any non-cancelable and non-returnable components that have been purchased by the contract manufacturer with the Company's preauthorization, when these components have not been consumed within the period defined in the terms of the Company's agreement with this contract manufacturer. While the Company typically expects such purchased components to be used in future production of Cognex finished goods, these components are considered in the Company's reserve estimate for excess and obsolete inventory. Furthermore, the Company accrues for losses on commitments for the future purchase of non-cancelable and non-returnable components from this contract manufacturer at the time that circumstances, such as changes in demand, indicate that the value of the components may not be recoverable, the loss is probable, and management has the ability to reasonably estimate the amount of the loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Various claims and legal proceedings generally incidental to the normal course of business are pending or threatened on behalf of or against the Company. While we cannot predict the outcome of these matters, we believe that any liability arising from them will not have a material adverse effect on our financial position, liquidity, or results of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted contextRef="c-7" decimals="0" id="f-911" unitRef="usd">61459000</us-gaap:PurchaseCommitmentRemainingMinimumAmountCommitted>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-7" decimals="-3" id="f-912" unitRef="usd">10616000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-8" decimals="-3" id="f-913" unitRef="usd">5269000</us-gaap:OtherInventoryPurchasedGoods>
    <us-gaap:OtherInventoryPurchasedGoods contextRef="c-9" decimals="-3" id="f-914" unitRef="usd">547000</us-gaap:OtherInventoryPurchasedGoods>
    <cgnx:IndemnificationProvisionsTextBlock contextRef="c-1" id="f-915">Indemnification Provisions&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Except as limited by Massachusetts law, the by-laws of the Company require it to indemnify certain current or former directors, officers, and employees of the Company against expenses incurred by them in connection with each proceeding in which he or she is involved as a result of serving or having served in certain capacities. Indemnification is not available with respect to a proceeding as to which it has been adjudicated that the person did not act in good faith in the reasonable belief that the action was in the best interests of the Company. The maximum potential amount of future payments the Company could be required to make under these provisions is unlimited. The Company has never incurred significant costs related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the ordinary course of business, the Company may accept standard limited indemnification provisions in connection with the sale of its products, whereby it indemnifies its customers for certain direct damages incurred in connection with third-party patent or other intellectual property infringement claims with respect to the use of the Company&#x2019;s products. The maximum potential amount of future payments the Company could be required to make under these provisions is, in many, but not all instances, subject to fixed monetary limits. The Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions. As a result, the Company believes the estimated fair value of these provisions is not material.&lt;/span&gt;&lt;/div&gt;In the ordinary course of business, the Company also accepts limited indemnification provisions from time to time, whereby it indemnifies customers for certain direct damages incurred in connection with bodily injury and property damage arising from the use of the Company&#x2019;s products. Future payments the Company could be required to make under these provisions is generally recoverable under the Company&#x2019;s insurance policies. As a result of this coverage, and the fact that the Company has never incurred significant costs to defend lawsuits or settle claims related to these indemnification provisions, the Company believes the estimated fair value of these provisions is not material.</cgnx:IndemnificationProvisionsTextBlock>
    <us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock contextRef="c-1" id="f-916">Derivative Instruments&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s foreign currency risk management strategy is principally designed to mitigate the potential financial impact of changes in the value of transactions and balances denominated in foreign currencies resulting from changes in foreign currency exchange rates. The Company enters into economic hedges utilizing foreign currency forward contracts with maturities that do not exceed approximately three months to manage the exposure to fluctuations in foreign currency exchange rates arising primarily from foreign-denominated receivables and payables. The gains and losses on these derivatives are intended to be offset by the changes in the fair value of the assets and liabilities being hedged. These economic hedges are not designated as hedging instruments for hedge accounting treatment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Additionally, during 2023, the Company entered into a foreign currency forward contract to exchange U.S. Dollars for &#xa5;40,000,000,000 to hedge the Japanese Yen purchase price of the acquisition of Moritex Corporation (refer to Note 21). Upon the settlement of this contract, the Company recorded a foreign currency loss of $8,456,000, which was recorded in "Foreign currency gain (loss)" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.291%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.765%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.354%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;40,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44,302&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;60,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39,700&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;30,136&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;145,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,505&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;185,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Chinese Renminbi&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;7,025&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,619&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,240,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,466&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,590,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,345&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,258&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;600,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,255&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;700,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,281&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,470&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,112&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Swiss Franc&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.204%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.888%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.358%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet  Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet   Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.108%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.814%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.394%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-963"&gt;&lt;span style="-sec-ix-hidden:f-964"&gt;Asset Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-965"&gt;&lt;span style="-sec-ix-hidden:f-966"&gt;Liability Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.920%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:22.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.762%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.911%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,023)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DerivativeInstrumentsAndHedgingActivitiesDisclosureTextBlock>
    <us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1 contextRef="c-129" id="f-917">P3M</us-gaap:MaximumRemainingMaturityOfForeignCurrencyDerivatives1>
    <us-gaap:DerivativeNotionalAmount contextRef="c-130" decimals="INF" id="f-918" unitRef="jpy">40000000000</us-gaap:DerivativeNotionalAmount>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-131" decimals="INF" id="f-919" unitRef="usd">8456000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock contextRef="c-1" id="f-920">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company had the following outstanding forward contracts (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:47.291%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.765%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:11.180%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.354%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="6" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Currency&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;Notional Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%;text-decoration:underline"&gt;USD Equivalent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="18" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Euro&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;40,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;44,302&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;60,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Singapore Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39,700&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;30,136&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Mexican Peso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;145,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,505&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;185,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,480&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Chinese Renminbi&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;7,025&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,619&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Hungarian Forint&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2,240,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,466&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,590,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,238&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;British Pound&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,345&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,258&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Japanese Yen&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;600,000&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4,255&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;700,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,281&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Canadian Dollar&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,470&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,112&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,278&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Swiss Franc&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,120&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,218&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfNotionalAmountsOfOutstandingDerivativePositionsTableTextBlock>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-132" decimals="-3" id="f-921" unitRef="eur">40000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-132" decimals="-3" id="f-922" unitRef="usd">44302000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-133" decimals="-3" id="f-923" unitRef="eur">60000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-133" decimals="-3" id="f-924" unitRef="usd">64174000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-134" decimals="-3" id="f-925" unitRef="sgd">39700000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-134" decimals="-3" id="f-926" unitRef="usd">30136000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-135" decimals="-3" id="f-927" unitRef="sgd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-135" decimals="-3" id="f-928" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-136" decimals="-3" id="f-929" unitRef="mxn">145000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-136" decimals="-3" id="f-930" unitRef="usd">8505000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-137" decimals="-3" id="f-931" unitRef="mxn">185000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-137" decimals="-3" id="f-932" unitRef="usd">9480000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-138" decimals="-3" id="f-933" unitRef="cny">50000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-138" decimals="-3" id="f-934" unitRef="usd">7025000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-139" decimals="-3" id="f-935" unitRef="cny">55000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-139" decimals="-3" id="f-936" unitRef="usd">7619000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-140" decimals="-3" id="f-937" unitRef="huf">2240000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-140" decimals="-3" id="f-938" unitRef="usd">6466000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-141" decimals="-3" id="f-939" unitRef="huf">1590000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-141" decimals="-3" id="f-940" unitRef="usd">4238000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-142" decimals="-3" id="f-941" unitRef="gbp">3345000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-142" decimals="-3" id="f-942" unitRef="usd">4258000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-143" decimals="-3" id="f-943" unitRef="gbp">3445000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-143" decimals="-3" id="f-944" unitRef="usd">4161000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-144" decimals="-3" id="f-945" unitRef="jpy">600000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-144" decimals="-3" id="f-946" unitRef="usd">4255000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-145" decimals="-3" id="f-947" unitRef="jpy">700000000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-145" decimals="-3" id="f-948" unitRef="usd">5281000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-146" decimals="-3" id="f-949" unitRef="cad">1470000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-146" decimals="-3" id="f-950" unitRef="usd">1112000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-147" decimals="-3" id="f-951" unitRef="cad">1730000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-147" decimals="-3" id="f-952" unitRef="usd">1278000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-148" decimals="-3" id="f-953" unitRef="chf">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-148" decimals="-3" id="f-954" unitRef="usd">0</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-149" decimals="-3" id="f-955" unitRef="chf">1120000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:DerivativeAssetNotionalAmount contextRef="c-149" decimals="-3" id="f-956" unitRef="usd">1218000</us-gaap:DerivativeAssetNotionalAmount>
    <us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock contextRef="c-1" id="f-957">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the fair value of the outstanding forward contracts was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.274%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.204%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.350%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.888%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.788%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.358%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Asset Derivatives&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Liability Derivatives&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet  Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Balance&lt;br/&gt;Sheet   Location&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:24pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="36" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Economic hedge forward contracts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Prepaid expenses and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsInStatementOfFinancialPositionFairValueTextBlock>
    <us-gaap:DerivativeAssets contextRef="c-150" decimals="-3" id="f-958" unitRef="usd">151000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets contextRef="c-151" decimals="-3" id="f-959" unitRef="usd">27000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities contextRef="c-150" decimals="-3" id="f-960" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities contextRef="c-151" decimals="-3" id="f-961" unitRef="usd">479000</us-gaap:DerivativeLiabilities>
    <us-gaap:OffsettingAssetsTableTextBlock contextRef="c-1" id="f-962">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the gross activity for all derivative assets and liabilities which were presented on a net basis on the Consolidated Balance Sheets due to the right of offset with each counterparty (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:14pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.108%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.709%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:17.814%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.562%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.394%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-963"&gt;&lt;span style="-sec-ix-hidden:f-964"&gt;Asset Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&lt;span style="-sec-ix-hidden:f-965"&gt;&lt;span style="-sec-ix-hidden:f-966"&gt;Liability Derivatives&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts of recognized liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gross amounts offset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of assets presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;151&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net amount of liabilities presented&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;106&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;479&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OffsettingAssetsTableTextBlock>
    <us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="c-7" decimals="-3" id="f-967" unitRef="usd">151000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeAsset contextRef="c-8" decimals="-3" id="f-968" unitRef="usd">27000</us-gaap:DerivativeFairValueOfDerivativeAsset>
    <us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="c-7" decimals="-3" id="f-969" unitRef="usd">106000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeFairValueOfDerivativeLiability contextRef="c-8" decimals="-3" id="f-970" unitRef="usd">479000</us-gaap:DerivativeFairValueOfDerivativeLiability>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="c-7" decimals="-3" id="f-971" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset contextRef="c-8" decimals="-3" id="f-972" unitRef="usd">0</us-gaap:DerivativeAssetCollateralObligationToReturnCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="c-7" decimals="-3" id="f-973" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset contextRef="c-8" decimals="-3" id="f-974" unitRef="usd">0</us-gaap:DerivativeLiabilityCollateralRightToReclaimCashOffset>
    <us-gaap:DerivativeAssets contextRef="c-7" decimals="-3" id="f-975" unitRef="usd">151000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeAssets contextRef="c-8" decimals="-3" id="f-976" unitRef="usd">27000</us-gaap:DerivativeAssets>
    <us-gaap:DerivativeLiabilities contextRef="c-7" decimals="-3" id="f-977" unitRef="usd">106000</us-gaap:DerivativeLiabilities>
    <us-gaap:DerivativeLiabilities contextRef="c-8" decimals="-3" id="f-978" unitRef="usd">479000</us-gaap:DerivativeLiabilities>
    <us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock contextRef="c-1" id="f-979">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Information regarding the effect of derivative instruments, net of the underlying exposure, on the consolidated financial statements was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:21.920%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:22.800%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.762%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.908%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.911%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Location in Financial Statements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" rowspan="2" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="24" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:100%"&gt;Derivatives Not Designated as Hedging Instruments:&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Gains (losses) recognized in current operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign currency gain (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(10,023)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,262&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDerivativeInstrumentsGainLossInStatementOfFinancialPerformanceTextBlock>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-129" decimals="-3" id="f-980" unitRef="usd">-10023000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-152" decimals="-3" id="f-981" unitRef="usd">9823000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:DerivativeGainLossOnDerivativeNet contextRef="c-153" decimals="-3" id="f-982" unitRef="usd">4262000</us-gaap:DerivativeGainLossOnDerivativeNet>
    <us-gaap:RevenueFromContractWithCustomerTextBlock contextRef="c-1" id="f-983">Revenue Recognition&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.632%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;330,415&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;390,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;435,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,665&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,115&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;122,352&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.125%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.466%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.616%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;734,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;848,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;889,253&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;103,407&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;147,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Costs to Fulfill a Contract&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs to fulfill a contract are included in "Prepaid expenses and other current assets" on the Consolidated Balance Sheets and amounted to $13,265,000 and $14,578,000 as of December 31, 2023 and 2022, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Accounts Receivable, Contract Assets, and Contract Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts receivable represent amounts billed and currently due from customers which are reported at their net estimated realizable value. The Company maintains an allowance against its accounts receivable for credit losses. Contract assets consist of unbilled revenue which arises when revenue is recognized in advance of billing primarily for certain application-specific customer solutions contracts. Contract liabilities consist of deferred revenue and customer deposits which arise when amounts are billed to or collected from customers in advance of revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.341%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.459%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;583&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.398%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.402%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(31,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,512)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,987)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Returned customer deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(608)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;31,525&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a practical expedient, the Company has elected not to disclose the aggregate amount of the transaction price allocated to unsatisfied performance obligations for our contracts that have an original expected duration of less than one year. The remaining unsatisfied performance obligations for our contracts that have an original expected duration of more than one year, primarily related to extended warranties, is not material.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerTextBlock>
    <us-gaap:DisaggregationOfRevenueTableTextBlock contextRef="c-1" id="f-984">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by geographic area based on the customer's country of domicile (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.216%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.826%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.630%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.632%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Americas&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;330,415&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;390,573&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;435,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,665&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Greater China&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,115&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other Asia&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;122,352&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,427&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;153,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:1pt;text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes disaggregated revenue information by revenue type (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:11pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:61.125%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.466%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.824%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.616%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Year Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Standard products and services&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;734,140&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;848,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;889,253&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Application-specific customer solutions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;103,407&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,937&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;147,845&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-154" decimals="-3" id="f-985" unitRef="usd">330415000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-155" decimals="-3" id="f-986" unitRef="usd">390573000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-156" decimals="-3" id="f-987" unitRef="usd">435220000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-157" decimals="-3" id="f-988" unitRef="usd">220665000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-158" decimals="-3" id="f-989" unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-159" decimals="-3" id="f-990" unitRef="usd">247744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-160" decimals="-3" id="f-991" unitRef="usd">164115000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-161" decimals="-3" id="f-992" unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-162" decimals="-3" id="f-993" unitRef="usd">200135000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-163" decimals="-3" id="f-994" unitRef="usd">122352000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-164" decimals="-3" id="f-995" unitRef="usd">153427000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-165" decimals="-3" id="f-996" unitRef="usd">153999000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-997" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-998" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-999" unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-166" decimals="-3" id="f-1000" unitRef="usd">734140000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-167" decimals="-3" id="f-1001" unitRef="usd">848153000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-168" decimals="-3" id="f-1002" unitRef="usd">889253000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-169" decimals="-3" id="f-1003" unitRef="usd">103407000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-170" decimals="-3" id="f-1004" unitRef="usd">157937000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-171" decimals="-3" id="f-1005" unitRef="usd">147845000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1006" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-1007" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-1008" unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CapitalizedContractCostGross contextRef="c-7" decimals="0" id="f-1009" unitRef="usd">13265000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:CapitalizedContractCostGross contextRef="c-8" decimals="0" id="f-1010" unitRef="usd">14578000</us-gaap:CapitalizedContractCostGross>
    <us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock contextRef="c-1" id="f-1011">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.415%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.341%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.459%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Increases to the allowance for credit losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Write-offs, net of recoveries&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;583&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:AllowanceForCreditLossesOnFinancingReceivablesTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-9" decimals="-3" id="f-1012" unitRef="usd">776000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-4" decimals="-3" id="f-1013" unitRef="usd">191000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-4" decimals="-3" id="f-1014" unitRef="usd">237000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment contextRef="c-4" decimals="-3" id="f-1015" unitRef="usd">0</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-8" decimals="-3" id="f-1016" unitRef="usd">730000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts contextRef="c-1" decimals="-3" id="f-1017" unitRef="usd">500000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs contextRef="c-1" decimals="-3" id="f-1018" unitRef="usd">645000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment contextRef="c-1" decimals="-3" id="f-1019" unitRef="usd">-2000</cgnx:AccountsReceivableAllowanceForCreditLossForeignExchangeRateAdjustment>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable contextRef="c-7" decimals="-3" id="f-1020" unitRef="usd">583000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock contextRef="c-1" id="f-1021">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the deferred revenue and customer deposits activity (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.398%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.402%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,743&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,076&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(31,520)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,512)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferral of revenue billed in the current period, net of recognition&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,538&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Recognition of revenue deferred in prior period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(20,987)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Returned customer deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,205)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(608)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;31,525&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ContractWithCustomerAssetAndLiabilityTableTextBlock>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-9" decimals="-3" id="f-1022" unitRef="usd">35743000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease contextRef="c-4" decimals="-3" id="f-1023" unitRef="usd">39076000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized contextRef="c-4" decimals="-3" id="f-1024" unitRef="usd">31520000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="c-4" decimals="-3" id="f-1025" unitRef="usd">-2512000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-8" decimals="-3" id="f-1026" unitRef="usd">40787000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease contextRef="c-1" decimals="-3" id="f-1027" unitRef="usd">21538000</cgnx:ContractWithCustomerLiabilityPeriodIncreaseDecrease>
    <cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized contextRef="c-1" decimals="-3" id="f-1028" unitRef="usd">20987000</cgnx:ContractWithCustomerLiabilityCurrentAndPriorPeriodRevenueRecognized>
    <us-gaap:DeferredRevenueRefundPayments1 contextRef="c-1" decimals="-3" id="f-1029" unitRef="usd">9205000</us-gaap:DeferredRevenueRefundPayments1>
    <cgnx:ContractLiabilityForeignExchangeRateChanges contextRef="c-1" decimals="-3" id="f-1030" unitRef="usd">-608000</cgnx:ContractLiabilityForeignExchangeRateChanges>
    <us-gaap:ContractWithCustomerLiabilityCurrent contextRef="c-7" decimals="-3" id="f-1031" unitRef="usd">31525000</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock contextRef="c-1" id="f-1032">Shareholders&#x2019; Equity&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Preferred Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has 400,000 shares of authorized but unissued $.01 par value preferred stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On April 25, 2018, the Company's shareholders approved an amendment to the Company's Articles of Organization to increase the authorized number of shares of $.002 par value common stock from 200,000,000 to 300,000,000.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Each outstanding share of common stock entitles the record holder to one vote on all matters submitted to a vote of the Company&#x2019;s shareholders. Common shareholders are also entitled to dividends when and if declared by the Company&#x2019;s Board of Directors.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Repurchases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2018, the Company's Board of Directors authorized the repurchase of $200,000,000 of the Company's common stock. Under this October 2018 program, in addition to repurchases made in prior years, the Company repurchased 957,000 shares at a cost of $78,652,000 in 2021, which completed purchases under the October 2018 program.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2020, the Company's Board of Directors authorized the repurchase of an additional $200,000,000 of the Company's common stock. Under this March 2020 program, the Company repurchased 1,060,000 shares, including 5,000 shares that were repurchased in 2021 and settled in 2022, at a cost of $83,000,000 in 2021, and 1,677,000 shares at a cost of $117,000,000 in 2022, which completed purchases under the March 2020 program.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2022, the Company's Board of Directors authorized the repurchase of an additional $500,000,000 of the Company's common stock. Under this March 2022 program, the Company repurchased 1,682,000 shares at a cost of $87,314,000 in 2022 and 1,723,000 shares at a cost of $79,794,000 in 2023, leaving a remaining balance of $332,892,000. The 2023 repurchase included $446,000 of buyback Excise Tax in accordance with the Inflation Reduction Act of 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company may repurchase shares under this program in future periods depending on a variety of factors, including, among other things, the impact of dilution from employee stock awards, stock price, share availability, and cash requirements. The Company is authorized to make repurchases of its common stock through open market purchases, pursuant to Rule 10b5-1 trading plans, or in privately negotiated transactions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Dividends&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s Board of Directors declared and paid cash dividends of $0.060 per share in the first, second, and third quarters of 2021, $0.065 per share in the fourth quarter of 2021 and in the first, second, and third quarters of 2022, and $0.070 per share in the fourth quarter of 2022 and in the first, second, and third quarters of 2023. The dividend was increased to $0.075 per share in the fourth quarter of 2023. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future dividends will be declared at the discretion of the Company's Board of Directors and will depend on such factors as the Board deems relevant, including, among other things, the Company's ability to generate positive cash flow from operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareholdersEquityAndShareBasedPaymentsTextBlock>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="c-7"
      decimals="INF"
      id="f-1033"
      unitRef="shares">400000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-1034"
      unitRef="usdPerShare">0.01</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="c-7"
      decimals="INF"
      id="f-1035"
      unitRef="usdPerShare">0.002</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c-172"
      decimals="INF"
      id="f-1036"
      unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="c-173"
      decimals="INF"
      id="f-1037"
      unitRef="shares">300000000</us-gaap:CommonStockSharesAuthorized>
    <cgnx:VoteEntitledForEachCommonShareOutstanding contextRef="c-7" decimals="INF" id="f-1038" unitRef="vote">1</cgnx:VoteEntitledForEachCommonShareOutstanding>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="c-174" decimals="-3" id="f-1039" unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c-175"
      decimals="-3"
      id="f-1040"
      unitRef="shares">957000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-175" decimals="-3" id="f-1041" unitRef="usd">78652000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="c-176" decimals="-3" id="f-1042" unitRef="usd">200000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c-177"
      decimals="-3"
      id="f-1043"
      unitRef="shares">1060000</us-gaap:StockRepurchasedDuringPeriodShares>
    <cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled
      contextRef="c-177"
      decimals="-3"
      id="f-1044"
      unitRef="shares">5000</cgnx:StockRepurchasedDuringPeriodSharesNotYetSettled>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-177" decimals="-3" id="f-1045" unitRef="usd">83000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="c-178"
      decimals="-3"
      id="f-1046"
      unitRef="shares">1677000</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue contextRef="c-178" decimals="-3" id="f-1047" unitRef="usd">117000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1 contextRef="c-179" decimals="INF" id="f-1048" unitRef="usd">500000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="c-180"
      decimals="-3"
      id="f-1049"
      unitRef="shares">1682000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue contextRef="c-180" decimals="-3" id="f-1050" unitRef="usd">87314000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="c-181"
      decimals="-3"
      id="f-1051"
      unitRef="shares">1723000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue contextRef="c-181" decimals="-3" id="f-1052" unitRef="usd">79794000</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1 contextRef="c-182" decimals="INF" id="f-1053" unitRef="usd">332892000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <cgnx:StockRepurchaseProgramBuybackExciseTax contextRef="c-181" decimals="-3" id="f-1054" unitRef="usd">446000</cgnx:StockRepurchaseProgramBuybackExciseTax>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-183"
      decimals="3"
      id="f-1055"
      unitRef="usdPerShare">0.060</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-184"
      decimals="3"
      id="f-1056"
      unitRef="usdPerShare">0.065</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-185"
      decimals="3"
      id="f-1057"
      unitRef="usdPerShare">0.070</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:CommonStockDividendsPerShareCashPaid
      contextRef="c-186"
      decimals="3"
      id="f-1058"
      unitRef="usdPerShare">0.075</us-gaap:CommonStockDividendsPerShareCashPaid>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock contextRef="c-1" id="f-1059">Stock-Based Compensation&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s stock-based awards that result in compensation expense consist of stock options, restricted stock units ("RSUs"), and performance restricted stock units ("PRSUs"). In May 2023, the shareholders of the Company approved the Cognex Corporation 2023 Stock Option and Incentive Plan (the &#x201c;2023 Plan&#x201d;). The 2023 Plan permits awards of stock options (both incentive and non-qualified options), stock appreciation rights, RSUs, and PRSUs. Up to 8,100,000 shares of common stock (subject to adjustment in the event of stock splits and other similar events) may be issued pursuant to awards granted under the 2023 Plan. In connection with the approval of the 2023 Plan, no further awards will be made under the Cognex Corporation 2001 General Stock Option Plan, as amended and restated (the &#x201c;2001 Plan&#x201d;), and the Cognex Corporation 2007 Stock Option and Incentive Plan, as amended and restated (the &#x201c;2007 Plan&#x201d;). With the approval of the 2023 Plan, the 10,610,800 shares of common stock subject to awards granted under the 2001 Plan and the 2007 Plan that were outstanding as of May 3, 2023 may become eligible for issuance under the 2023 Plan if such awards are forfeited, cancelled, or otherwise terminated (other than by exercise) (the &#x201c;Carryover Shares&#x201d;). As of December 31, 2023, forfeitures, cancellations, and other terminations from the 2001 Plan and the 2007 Plan have resulted in 343,492 Carryover Shares, raising the authorized total shares that may be issued under the 2023 Plan to 8,443,492.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, the Company had 7,978,000 shares available for issuance under its stock plans. Stock options are granted with an exercise price equal to the market value of the Company&#x2019;s common stock at the grant date and generally vest over &lt;span style="-sec-ix-hidden:f-1065"&gt;four&lt;/span&gt; or five years based on continuous employment and expire ten years from the grant date. RSUs generally vest upon &lt;span style="-sec-ix-hidden:f-1068"&gt;three&lt;/span&gt; or four years of continuous employment or incrementally over such &lt;span style="-sec-ix-hidden:f-1070"&gt;three&lt;/span&gt; or &lt;span style="-sec-ix-hidden:f-1071"&gt;four&lt;/span&gt; year periods. PRSUs generally vest upon &lt;span style="-sec-ix-hidden:f-1072"&gt;three&lt;/span&gt; years of continuous employment and achievement of performance criteria established by the Compensation Committee of our Board of Directors on or prior to the grant date. Participants are not entitled to dividends on stock options, RSUs, or PRSUs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:43.409%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.226%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&lt;br/&gt;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;51.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,541&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(330)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(670)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57.65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,008&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50.87&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.92&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,164&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,207&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;47.78&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.42&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,212&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options vested or expected to vest as of&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;December 31, 2023 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,548&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50.79&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.78&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,896&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total cash received as a result of stock option exercises was $11,104,000 in 2023, $12,267,000 in 2022, and $63,860,000 in 2021. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,691,000) in 2023, $2,548,000 in 2022, and $46,529,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.847%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.143%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.146%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.0&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;0.61&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Risk-free rate&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The risk-free rate was based on a treasury instrument whose term was consistent with the contractual term of the option.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected dividend yield&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The current dividend yield was calculated by annualizing the cash dividend declared by the Company&#x2019;s Board of Directors and dividing that result by the closing stock price on the grant date.&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected volatility was based on a combination of historical volatility of&#160;the Company&#x2019;s&#160;common stock over the contractual term of the option and implied volatility for traded options of the Company&#x2019;s stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected term&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected term was derived from the binomial lattice model from the impact of events that trigger exercises over time.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average grant-date fair value of stock options granted was $17.76 in 2023, $21.39 in 2022, and $33.79 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total intrinsic value of stock options exercised was $6,227,000 in 2023, $8,424,000 in 2022, and $80,369,000 in 2021. The total fair value of stock options vested was $34,751,000 in 2023, $41,497,000 in 2022, and $45,328,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Restricted Stock Units (RSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's RSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.496%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.666%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.808%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61.74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(521)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(110)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,429&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54.22&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of RSUs was determined based on the observable market price of the Company's stock on the grant date less the present value of expected future dividends. The weighted-average grant-date fair value of RSUs granted was $46.14 in 2023, $58.06 in 2022, and $87.03 in 2021. There were 521,000, 192,000, and 16,000 RSUs that vested in 2023, 2022, and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax obligations for vested RSUs are settled by withholding a portion of the shares prior to distribution to the shareholder. The total cash used by the Company to fund the tax payments was $7,836,000 in 2023, $2,406,000 in 2022, and $568,000 in 2021. In connection with these vested RSUs, the tax benefit (expense) realized by the Company was $(3,229,000) in 2023, $(1,049,000) in 2022, and $126,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Performance Restricted Stock Units (PRSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's PRSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.838%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average &lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44.86&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;79&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52.23&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of PRSUs was calculated using a Monte Carlo simulation model to estimate the probability of satisfying the service and market conditions stipulated in the award grant. The weighted average grant-date fair value of PRSUs granted was $44.86 in 2023 and $62.49 in 2022. No PRSUs were granted in 2021. No PRSUs vested in 2023, 2022, and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company stratifies its employee population into three groups: one consisting of the CEO, another consisting of senior management, and another consisting of all other employees. The Company currently applies an estimated annual forfeiture rate of 0% to all stock-based awards for the CEO, 8% to all stock-based awards for senior management, and 13% for all other employees. Each year during the first quarter, the Company revises its forfeiture rate based on updated estimates of employee turnover. This resulted in a decrease to compensation expense of $234,000 in 2023, an increase to compensation expense of $1,536,000 in 2022, and a decrease to compensation expense of $255,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2023, total unrecognized compensation expense, net of estimated forfeitures, related to non-vested stock-based awards, including stock options, RSUs, and PRSUs, was $58,489,000, which is expected to be recognized over a weighted-average period of 1.92 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total stock-based compensation expense and the related income tax benefit recognized was $54,768,000 and $8,442,000, respectively, in 2023, $54,505,000 and $9,540,000, respectively, in 2022, and $43,774,000 and $6,764,000, respectively, in 2021. No compensation expense was capitalized in 2023, 2022, or 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,979&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,480&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;36,309&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54,768&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-187"
      decimals="INF"
      id="f-1060"
      unitRef="shares">8100000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-188"
      decimals="INF"
      id="f-1061"
      unitRef="shares">10610800</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized
      contextRef="c-189"
      decimals="INF"
      id="f-1062"
      unitRef="shares">343492</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAdditionalSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="c-190"
      decimals="INF"
      id="f-1063"
      unitRef="shares">8443492</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="c-191"
      decimals="0"
      id="f-1064"
      unitRef="shares">7978000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-193" id="f-1066">P5Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <cgnx:ExpirationPeriodOfStockOptionPlan contextRef="c-194" id="f-1067">P10Y</cgnx:ExpirationPeriodOfStockOptionPlan>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1 contextRef="c-196" id="f-1069">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock contextRef="c-1" id="f-1073">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s stock option activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:5pt;margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:43.409%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.223%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.226%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&lt;br/&gt;Price&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&lt;br/&gt;(in&#160;years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic Value&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;51.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,541&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(330)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33.64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(670)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57.65&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Outstanding as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,008&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50.87&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.92&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,164&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Exercisable as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,207&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;47.78&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.42&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,212&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Options vested or expected to vest as of&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;December 31, 2023 (1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;8,548&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;50.79&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.78&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,896&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;padding-left:36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1) In addition to the vested options, the Company expects a portion of the unvested options to vest at some point in the future. Options expected to vest are calculated by applying an estimated forfeiture rate to the unvested options.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The total cash received as a result of stock option exercises was $11,104,000 in 2023, $12,267,000 in 2022, and $63,860,000 in 2021. In connection with these exercises, the tax benefit (expense) realized by the Company was $(4,691,000) in 2023, $2,548,000 in 2022, and $46,529,000 in 2021.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-8" decimals="-3" id="f-1074" unitRef="shares">8467000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-8"
      decimals="2"
      id="f-1075"
      unitRef="usdPerShare">51.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod contextRef="c-1" decimals="-3" id="f-1076" unitRef="shares">1541000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1077"
      unitRef="usdPerShare">46.33</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised contextRef="c-1" decimals="-3" id="f-1078" unitRef="shares">330000</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1079"
      unitRef="usdPerShare">33.64</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod contextRef="c-1" decimals="-3" id="f-1080" unitRef="shares">670000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="c-1"
      decimals="2"
      id="f-1081"
      unitRef="usdPerShare">57.65</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber contextRef="c-7" decimals="-3" id="f-1082" unitRef="shares">9008000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="c-7"
      decimals="2"
      id="f-1083"
      unitRef="usdPerShare">50.87</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2 contextRef="c-1" id="f-1084">P5Y11M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue contextRef="c-7" decimals="-3" id="f-1085" unitRef="usd">17164000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber contextRef="c-7" decimals="-3" id="f-1086" unitRef="shares">5207000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="c-7"
      decimals="2"
      id="f-1087"
      unitRef="usdPerShare">47.78</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-1088">P4Y5M1D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue contextRef="c-7" decimals="-3" id="f-1089" unitRef="usd">16212000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber contextRef="c-7" decimals="-3" id="f-1090" unitRef="shares">8548000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="c-7"
      decimals="2"
      id="f-1091"
      unitRef="usdPerShare">50.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1 contextRef="c-1" id="f-1092">P5Y9M10D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue contextRef="c-7" decimals="-3" id="f-1093" unitRef="usd">16896000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-1" decimals="-3" id="f-1094" unitRef="usd">11104000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-4" decimals="-3" id="f-1095" unitRef="usd">12267000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised contextRef="c-5" decimals="-3" id="f-1096" unitRef="usd">63860000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-1" decimals="-3" id="f-1097" unitRef="usd">-4691000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-4" decimals="-3" id="f-1098" unitRef="usd">2548000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions contextRef="c-5" decimals="-3" id="f-1099" unitRef="usd">46529000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromExerciseOfStockOptions>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock contextRef="c-1" id="f-1100">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair values of stock options granted in each period presented were estimated using the following weighted-average assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:54.847%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.996%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.143%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.146%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Risk-free rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;4.0&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1.3&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected dividend yield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;0.61&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.44&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;39&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5.0&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.5&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.0&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-194"
      decimals="3"
      id="f-1101"
      unitRef="number">0.040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-199"
      decimals="3"
      id="f-1102"
      unitRef="number">0.022</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="c-200"
      decimals="3"
      id="f-1103"
      unitRef="number">0.013</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-194"
      decimals="4"
      id="f-1104"
      unitRef="number">0.0061</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-199"
      decimals="4"
      id="f-1105"
      unitRef="number">0.0044</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="c-200"
      decimals="4"
      id="f-1106"
      unitRef="number">0.0027</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-194"
      decimals="2"
      id="f-1107"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-199"
      decimals="2"
      id="f-1108"
      unitRef="number">0.37</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="c-200"
      decimals="2"
      id="f-1109"
      unitRef="number">0.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-194" id="f-1110">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-199" id="f-1111">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1 contextRef="c-200" id="f-1112">P6Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-1"
      decimals="2"
      id="f-1113"
      unitRef="usdPerShare">17.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-4"
      decimals="2"
      id="f-1114"
      unitRef="usdPerShare">21.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-5"
      decimals="2"
      id="f-1115"
      unitRef="usdPerShare">33.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-1" decimals="0" id="f-1116" unitRef="usd">6227000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-4" decimals="0" id="f-1117" unitRef="usd">8424000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue contextRef="c-5" decimals="0" id="f-1118" unitRef="usd">80369000</cgnx:SharesBasedCompensationArrangementBySharesBasedPaymentAwardOptionsExercisedIntrinsicValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-1" decimals="0" id="f-1119" unitRef="usd">34751000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-4" decimals="0" id="f-1120" unitRef="usd">41497000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue contextRef="c-5" decimals="0" id="f-1121" unitRef="usd">45328000</cgnx:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedFairValue>
    <us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock contextRef="c-1" id="f-1122">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's RSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.496%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.666%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:19.808%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in&#160;thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average&lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,269&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61.74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;791&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46.14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(521)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(110)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;59.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,429&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54.22&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:NonvestedRestrictedStockSharesActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-201"
      decimals="-3"
      id="f-1123"
      unitRef="shares">1269000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-201"
      decimals="2"
      id="f-1124"
      unitRef="usdPerShare">61.74</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-202"
      decimals="-3"
      id="f-1125"
      unitRef="shares">791000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-202"
      decimals="2"
      id="f-1126"
      unitRef="usdPerShare">46.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-202"
      decimals="-3"
      id="f-1127"
      unitRef="shares">521000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-202"
      decimals="2"
      id="f-1128"
      unitRef="usdPerShare">59.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-202"
      decimals="-3"
      id="f-1129"
      unitRef="shares">110000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-202"
      decimals="2"
      id="f-1130"
      unitRef="usdPerShare">59.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-203"
      decimals="-3"
      id="f-1131"
      unitRef="shares">1429000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-203"
      decimals="2"
      id="f-1132"
      unitRef="usdPerShare">54.22</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-202"
      decimals="2"
      id="f-1133"
      unitRef="usdPerShare">46.14</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-204"
      decimals="2"
      id="f-1134"
      unitRef="usdPerShare">58.06</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-205"
      decimals="2"
      id="f-1135"
      unitRef="usdPerShare">87.03</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-206"
      decimals="-3"
      id="f-1136"
      unitRef="shares">521000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-204"
      decimals="-3"
      id="f-1137"
      unitRef="shares">192000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-205"
      decimals="-3"
      id="f-1138"
      unitRef="shares">16000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-206" decimals="0" id="f-1139" unitRef="usd">7836000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-204" decimals="0" id="f-1140" unitRef="usd">2406000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation contextRef="c-205" decimals="0" id="f-1141" unitRef="usd">568000</us-gaap:PaymentsRelatedToTaxWithholdingForShareBasedCompensation>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-206" decimals="0" id="f-1142" unitRef="usd">-3229000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-204" decimals="0" id="f-1143" unitRef="usd">-1049000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-205" decimals="0" id="f-1144" unitRef="usd">126000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock contextRef="c-1" id="f-1145">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Performance Restricted Stock Units (PRSUs)&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company's PRSUs activity:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:65.420%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.712%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.838%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Shares&lt;br/&gt;(in thousands)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Weighted-Average &lt;br/&gt;Grant Date Fair Value&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;62.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;44.86&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 12.25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Forfeited or expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Nonvested as of December 31, 2023&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;79&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;52.23&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-207"
      decimals="-3"
      id="f-1146"
      unitRef="shares">33000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-207"
      decimals="2"
      id="f-1147"
      unitRef="usdPerShare">62.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-208"
      decimals="-3"
      id="f-1148"
      unitRef="shares">46000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-208"
      decimals="2"
      id="f-1149"
      unitRef="usdPerShare">44.86</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-208"
      decimals="-3"
      id="f-1150"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-208"
      decimals="2"
      id="f-1151"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="c-208"
      decimals="-3"
      id="f-1152"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="c-208"
      decimals="2"
      id="f-1153"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="c-209"
      decimals="-3"
      id="f-1154"
      unitRef="shares">79000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="c-209"
      decimals="2"
      id="f-1155"
      unitRef="usdPerShare">52.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-208"
      decimals="2"
      id="f-1156"
      unitRef="usdPerShare">44.86</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="c-210"
      decimals="2"
      id="f-1157"
      unitRef="usdPerShare">62.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="c-211"
      decimals="-3"
      id="f-1158"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-210"
      decimals="-3"
      id="f-1159"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-208"
      decimals="-3"
      id="f-1160"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="c-211"
      decimals="-3"
      id="f-1161"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <cgnx:NumberOfGroupsWithinEmployeePopulation contextRef="c-7" decimals="INF" id="f-1162" unitRef="group">3</cgnx:NumberOfGroupsWithinEmployeePopulation>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO contextRef="c-7" decimals="2" id="f-1163" unitRef="number">0</cgnx:EstimatedForfeitureRateForUnvestedOptionsForCEO>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement contextRef="c-7" decimals="2" id="f-1164" unitRef="number">0.08</cgnx:EstimatedForfeitureRateForUnvestedOptionsForSeniorManagement>
    <cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement contextRef="c-7" decimals="2" id="f-1165" unitRef="number">0.13</cgnx:EstimatedForfeitureRateForUnvestedOptionsForAllNonSeniorManagement>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-1" decimals="0" id="f-1166" unitRef="usd">234000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-4" decimals="0" id="f-1167" unitRef="usd">1536000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates contextRef="c-5" decimals="0" id="f-1168" unitRef="usd">255000</cgnx:IncreaseDecreaseInCompensationExpenseDueToRevisedEstimatedForfeitureRates>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions contextRef="c-7" decimals="0" id="f-1169" unitRef="usd">58489000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1 contextRef="c-1" id="f-1170">P1Y11M1D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="-3" id="f-1171" unitRef="usd">54768000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-1" decimals="0" id="f-1172" unitRef="usd">8442000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-4" decimals="-3" id="f-1173" unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-4" decimals="0" id="f-1174" unitRef="usd">9540000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-5" decimals="-3" id="f-1175" unitRef="usd">43774000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense contextRef="c-5" decimals="0" id="f-1176" unitRef="usd">6764000</us-gaap:EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-7" decimals="INF" id="f-1177" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-9" decimals="INF" id="f-1178" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount contextRef="c-8" decimals="INF" id="f-1179" unitRef="usd">0</cgnx:EmployeeServiceShareBasedCompensationRecognizedPeriodCostsCapitalizedAmount>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock contextRef="c-1" id="f-1180">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the stock-based compensation expense by caption for each period presented on the Consolidated Statements of Operations (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:51.176%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.318%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.534%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.320%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#ee2724;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,979&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,345&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Research, development, and engineering&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16,480&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,535&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Selling, general, and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;36,309&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,796&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28,894&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;54,768&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;54,505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;43,774&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-212" decimals="-3" id="f-1181" unitRef="usd">1979000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-213" decimals="-3" id="f-1182" unitRef="usd">2016000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-214" decimals="-3" id="f-1183" unitRef="usd">1345000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-215" decimals="-3" id="f-1184" unitRef="usd">16480000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-216" decimals="-3" id="f-1185" unitRef="usd">17693000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-217" decimals="-3" id="f-1186" unitRef="usd">13535000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-218" decimals="-3" id="f-1187" unitRef="usd">36309000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-219" decimals="-3" id="f-1188" unitRef="usd">34796000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-220" decimals="-3" id="f-1189" unitRef="usd">28894000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-1" decimals="0" id="f-1190" unitRef="usd">54768000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-4" decimals="0" id="f-1191" unitRef="usd">54505000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense contextRef="c-5" decimals="0" id="f-1192" unitRef="usd">43774000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock contextRef="c-1" id="f-1193">Employee Savings Plan&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the Company's Employee Savings Plan, a defined contribution plan, all U.S. employees who have attained age 21 may contribute up to 100% of their pay on a pre-tax basis under the Company's Employee Savings Plan, subject to the annual dollar limitations established by the Internal Revenue Service ("IRS"). The Company matches 50% of the first 6% of pay an employee contributes. Company contributions vest 25%, 50%, 75%, and 100% after one, two, three, and four years of continuous employment with the Company, respectively. Company contributions totaled $3,392,000 in 2023, $3,284,000 in 2022, and $2,898,000 in 2021. Cognex stock is not an investment alternative and Company contributions are not made in the form of Cognex stock.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan contextRef="c-1" id="f-1194">P21Y</cgnx:MinimumAgeToBeEligibleToDefinedContributionPlan>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="c-1"
      decimals="INF"
      id="f-1195"
      unitRef="number">1</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch
      contextRef="c-1"
      decimals="INF"
      id="f-1196"
      unitRef="number">0.50</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercentOfMatch>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="c-1"
      decimals="INF"
      id="f-1197"
      unitRef="number">0.06</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <cgnx:CompanyContributionsVestAtEndOfOneYear
      contextRef="c-1"
      decimals="INF"
      id="f-1198"
      unitRef="number">0.25</cgnx:CompanyContributionsVestAtEndOfOneYear>
    <cgnx:CompanyContributionsVestAtEndOfTwoYear
      contextRef="c-1"
      decimals="INF"
      id="f-1199"
      unitRef="number">0.50</cgnx:CompanyContributionsVestAtEndOfTwoYear>
    <cgnx:CompanyContributionsVestAtEndOfThreeYears
      contextRef="c-1"
      decimals="INF"
      id="f-1200"
      unitRef="number">0.75</cgnx:CompanyContributionsVestAtEndOfThreeYears>
    <cgnx:CompanyContributionsVestAtEndOfFourYears
      contextRef="c-1"
      decimals="INF"
      id="f-1201"
      unitRef="number">1</cgnx:CompanyContributionsVestAtEndOfFourYears>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-1" decimals="0" id="f-1202" unitRef="usd">3392000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-4" decimals="0" id="f-1203" unitRef="usd">3284000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized contextRef="c-5" decimals="0" id="f-1204" unitRef="usd">2898000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:IncomeTaxDisclosureTextBlock contextRef="c-1" id="f-1206">Income Taxes&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic income before taxes was $16,039,000 in 2023, $48,546,000 in 2022, and $121,729,000 in 2021. Foreign income before taxes was $119,309,000 in 2023, $202,149,000 in 2022, and $197,171,000 in 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.680%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.154%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;29,084&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,689&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,207&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;41,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(24,731)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(40,772)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,877)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,887&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(19,721)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,629)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;22,114&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#x2019;s income tax expense, or effective tax rate, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.296%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.614%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Taxation on multinational operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax reserves&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Limitation on deduction for executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to employee stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to rate revaluation on state tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit related to GILTI adjustments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax benefit for release of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit for audit settlements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Tax Reserves&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.158%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.642%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(280)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(119)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,072)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,230)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(894)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,714&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s reserve for income taxes, including gross interest and penalties, was $29,053,000 as of December 31, 2023, of which $26,685,000 was classified as a non-current liability and $2,368,000 was classified as an offset to deferred tax assets. The Company's reserve for income taxes, including interest and penalties, was $15,866,000 as of December 31, 2022, which was classified as a non-current liability. The amount of gross interest and penalties included in these balances was $3,339,000 and $2,219,000 as of December&#160;31, 2023 and 2022, respectively. If the Company&#x2019;s tax positions were sustained or the statutes of limitations related to certain positions expired, these reserves would be released and income tax expense would be reduced in a future period. As a result of the &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;expiration of certain statutes of limitations, there is a potential that a portion of these reserves could be released, which would decrease income tax expense by approximately $650,000 to $1,000,000 over the next twelve months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has defined its major tax jurisdictions as the United States, Ireland, China, Japan, and Korea and within the United States, Massachusetts. The statutory tax rate is 12.5% in Ireland, 25% in China, 34.6% in Japan, and 21% in Korea, compared to the U.S. federal statutory corporate tax rate of 21%. These differences resulted in a favorable impact to the effective tax rate of 6 percentage points for 2023, 7 percentage points for 2022, and 5 percentage points for 2021. Management has determined that earnings from its legal entity in China will be indefinitely reinvested to provide local funding for growth, and that earnings from all other jurisdictions will not be indefinitely reinvested. In 2023, the Company qualified for a tax holiday in China, which is renewed every three years. The tax effect of this benefit, derived from the tax holiday, on basic and diluted earnings per share for 2023 was not material. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Within the United States, the tax years 2019 through 2022 remain open to examination by the Internal Revenue Service ("IRS") and various state taxing authorities. The tax years 2017 through 2022 remain open to examination by various taxing authorities in other jurisdictions in which the Company operates. The Company is under audit by the Commonwealth of Massachusetts for the returns filed for tax years 2020 and 2021. In addition, the Company is under audit in Ireland for the returns filed for tax years 2019 through 2020. Management believes the Company is adequately reserved for these audits. The final determination of tax audits could result in favorable or unfavorable changes in our estimates. Any reserves associated with this audit period will not be released until the issue is settled or the audit is concluded. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Interest and penalties included in income tax expense were $1,032,000 in 2023, $229,000 in 2022, and $281,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for income taxes totaled $56,618,000 in 2023, $57,016,000 in 2022, and $49,435,000 in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Deferred Tax Assets and Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2023 and December 31, 2022 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.495%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.735%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.737%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;375,360&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;386,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;20,916&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;7,848&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventory and revenue related&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,897&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,243&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,840&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;339&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalization of R&amp;amp;D expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,521&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,514&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;457,478&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;466,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(943)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,661)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;456,535&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;458,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(28,685)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,762)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(274,327)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(298,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(303,012)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(301,684)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;153,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,280&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Change in Tax Structure and Global Intangible Low-Taxed Income Tax&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2019, the Company made changes to its international tax structure due to legislation by the European Union regarding low tax structures that resulted in an intercompany sale of intellectual property. As a result, the Company recorded an associated deferred tax asset of $437,500,000 in Ireland based on the fair value of the intellectual property that is being realized over fifteen years as future tax deductions. From a United States perspective, the sale was disregarded, and any future deductions claimed in Ireland are added back to taxable income as part of Global Intangible Low-Taxed Income ("GILTI") minimum tax. The Company recorded an associated deferred tax liability of $350,000,000, representing the GILTI minimum tax related to the fair value of the intellectual property.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Other Deferred Tax Assets and Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2022, the Company recorded a deferred tax asset resulting from the capitalization of research and development expenditures. Beginning in 2022, the Tax Cuts and Jobs Act eliminates the option to deduct research and development expenditures in the period incurred and requires taxpayers to capitalize and amortize such expenditures over five or fifteen years, as applicable, pursuant to Section 174 of the Internal Revenue Code.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2023, the Company had foreign net operating loss carryforwards of $1,720,000, state tax credit carryforwards of $8,740,000 that will begin to expire for the 2031 tax return, and foreign tax credit carryforwards of $943,000.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2023, the Company had a valuation allowance for foreign tax credits of $943,000 that was not considered to be realized. Should these credits be utilized in a future period, the reserve associated with these credits would be reversed in the period when it is determined that the credits can be utilized to offset future income tax liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2023, the Company released the valuation allowance for state research and development tax credits of $5,427,000, as these credits are expected to be utilized to offset future state income tax liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;While the deferred tax assets, net of valuation allowance, are not assured of realization, management has evaluated the realizability of these deferred tax assets and has determined that it is more likely than not that these assets will be realized. In reaching this conclusion, we have evaluated certain relevant criteria including the Company&#x2019;s historical profitability, current projections of future profitability, and the lives of tax credits, net operating losses, and other carryforwards. Should the Company fail to generate sufficient pre-tax profits in future periods, we may be required to establish valuation allowances against these deferred tax assets, resulting in a charge to current operations in the period of determination.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-1" decimals="0" id="f-1207" unitRef="usd">16039000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-4" decimals="0" id="f-1208" unitRef="usd">48546000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic contextRef="c-5" decimals="0" id="f-1209" unitRef="usd">121729000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-1" decimals="0" id="f-1210" unitRef="usd">119309000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-4" decimals="0" id="f-1211" unitRef="usd">202149000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign contextRef="c-5" decimals="0" id="f-1212" unitRef="usd">197171000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock contextRef="c-1" id="f-1213">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax expense consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:48.680%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.151%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:15.154%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;29,084&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;48,355&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,870&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3,544&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,689&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,372&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;9,207&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,243&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;41,835&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;64,287&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;41,648&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(24,731)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(40,772)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,266)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(5,877)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,354)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,887&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,406&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(19,721)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,629)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;22,114&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,170&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1214" unitRef="usd">29084000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1215" unitRef="usd">48355000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1216" unitRef="usd">27870000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1217" unitRef="usd">3544000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1218" unitRef="usd">5689000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1219" unitRef="usd">5372000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1220" unitRef="usd">9207000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1221" unitRef="usd">10243000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1222" unitRef="usd">8406000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1223" unitRef="usd">41835000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1224" unitRef="usd">64287000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1225" unitRef="usd">41648000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1226" unitRef="usd">-24731000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1227" unitRef="usd">-40772000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1228" unitRef="usd">-19266000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1229" unitRef="usd">-5877000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1230" unitRef="usd">-8354000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1231" unitRef="usd">-769000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1232" unitRef="usd">10887000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1233" unitRef="usd">20009000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1234" unitRef="usd">17406000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1235" unitRef="usd">-19721000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1236" unitRef="usd">-29117000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1237" unitRef="usd">-2629000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-1" decimals="-3" id="f-1238" unitRef="usd">22114000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-4" decimals="-3" id="f-1239" unitRef="usd">35170000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit contextRef="c-5" decimals="-3" id="f-1240" unitRef="usd">39019000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock contextRef="c-1" id="f-1241">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A reconciliation of the U.S. federal statutory corporate tax rate to the Company&#x2019;s income tax expense, or effective tax rate, was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.853%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:62.296%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.613%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.532%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:10.614%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year&#160;Ended&#160;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense at U.S. federal statutory corporate tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;21&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign tax rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(6)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Taxation on multinational operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax reserves&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;3&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Limitation on deduction for executive compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to employee stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax expense related to tax return filings&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax expense related to rate revaluation on state tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit related to GILTI adjustments&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Discrete tax benefit for release of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;Discrete tax benefit for audit settlements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;16&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-1" decimals="2" id="f-1242" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-4" decimals="2" id="f-1243" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate contextRef="c-5" decimals="2" id="f-1244" unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-1" decimals="2" id="f-1245" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-4" decimals="2" id="f-1246" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes contextRef="c-5" decimals="2" id="f-1247" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="2" id="f-1248" unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-4" decimals="2" id="f-1249" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-5" decimals="2" id="f-1250" unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-1" decimals="2" id="f-1251" unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-4" decimals="2" id="f-1252" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits contextRef="c-5" decimals="2" id="f-1253" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCredits>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-1" decimals="2" id="f-1254" unitRef="number">-0.03</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-4" decimals="2" id="f-1255" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent contextRef="c-5" decimals="2" id="f-1256" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxationOnMultinationalOperationsPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-1" decimals="2" id="f-1257" unitRef="number">0.03</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-4" decimals="2" id="f-1258" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent contextRef="c-5" decimals="2" id="f-1259" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationTaxReservesPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-1" decimals="2" id="f-1260" unitRef="number">0.02</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-4" decimals="2" id="f-1261" unitRef="number">0.01</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent contextRef="c-5" decimals="2" id="f-1262" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationExecutiveCompensationPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-1" decimals="2" id="f-1263" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-4" decimals="2" id="f-1264" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent contextRef="c-5" decimals="2" id="f-1265" unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationShareBasedCompensationExcessTaxBenefitPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-1" decimals="2" id="f-1266" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-4" decimals="2" id="f-1267" unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements contextRef="c-5" decimals="2" id="f-1268" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlements>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-1" decimals="2" id="f-1269" unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-4" decimals="2" id="f-1270" unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal contextRef="c-5" decimals="2" id="f-1271" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxSettlementsStateAndLocal>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-1" decimals="2" id="f-1272" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-4" decimals="2" id="f-1273" unitRef="number">0.03</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent contextRef="c-5" decimals="2" id="f-1274" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationGiltiPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-1" decimals="2" id="f-1275" unitRef="number">0.04</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-4" decimals="2" id="f-1276" unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance contextRef="c-5" decimals="2" id="f-1277" unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-1" decimals="2" id="f-1278" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-4" decimals="2" id="f-1279" unitRef="number">-0.01</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent contextRef="c-5" decimals="2" id="f-1280" unitRef="number">0</cgnx:EffectiveIncomeTaxRateReconciliationAuditSettlementPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-1" decimals="2" id="f-1281" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-4" decimals="2" id="f-1282" unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments contextRef="c-5" decimals="2" id="f-1283" unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-1" decimals="2" id="f-1284" unitRef="number">0.16</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-4" decimals="2" id="f-1285" unitRef="number">0.14</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations contextRef="c-5" decimals="2" id="f-1286" unitRef="number">0.12</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:SummaryOfIncomeTaxContingenciesTextBlock contextRef="c-1" id="f-1287">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The changes in gross amounts of unrecognized tax benefits, excluding interest and penalties, were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:81.158%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:16.642%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,952&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(280)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;525&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(485)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(119)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;505&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,329)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,072)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(242)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in prior periods&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Additions as a result of tax positions taken in the current period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,877&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions relating to settlements with taxing authorities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,230)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reductions as a result of the expiration of the applicable statutes of limitations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(894)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance of reserve for income taxes as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;25,714&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfIncomeTaxContingenciesTextBlock>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-10" decimals="-3" id="f-1288" unitRef="usd">13952000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1289" unitRef="usd">280000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1290" unitRef="usd">100000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-5" decimals="-3" id="f-1291" unitRef="usd">525000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-5" decimals="-3" id="f-1292" unitRef="usd">485000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-9" decimals="-3" id="f-1293" unitRef="usd">13812000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1294" unitRef="usd">119000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1295" unitRef="usd">2850000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-4" decimals="-3" id="f-1296" unitRef="usd">505000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="c-4" decimals="-3" id="f-1297" unitRef="usd">2329000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-4" decimals="-3" id="f-1298" unitRef="usd">1072000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-8" decimals="-3" id="f-1299" unitRef="usd">13647000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1300" unitRef="usd">242000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1301" unitRef="usd">12556000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions contextRef="c-1" decimals="-3" id="f-1302" unitRef="usd">1877000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities contextRef="c-1" decimals="-3" id="f-1303" unitRef="usd">1230000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromSettlementsWithTaxingAuthorities>
    <us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations contextRef="c-1" decimals="-3" id="f-1304" unitRef="usd">894000</us-gaap:UnrecognizedTaxBenefitsReductionsResultingFromLapseOfApplicableStatuteOfLimitations>
    <us-gaap:UnrecognizedTaxBenefits contextRef="c-7" decimals="-3" id="f-1305" unitRef="usd">25714000</us-gaap:UnrecognizedTaxBenefits>
    <cgnx:UnrecognizedTaxBenefitsGross contextRef="c-7" decimals="0" id="f-1306" unitRef="usd">29053000</cgnx:UnrecognizedTaxBenefitsGross>
    <cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability contextRef="c-7" decimals="-3" id="f-1307" unitRef="usd">26685000</cgnx:UnrecognizedTaxBenefitsGrossNoncurrentLiability>
    <cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes contextRef="c-7" decimals="-3" id="f-1308" unitRef="usd">2368000</cgnx:UnrecognizedTaxBenefitsGrossOffsetToTaxAttributes>
    <cgnx:UnrecognizedTaxBenefitsGross contextRef="c-8" decimals="0" id="f-1309" unitRef="usd">15866000</cgnx:UnrecognizedTaxBenefitsGross>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-7" decimals="0" id="f-1310" unitRef="usd">3339000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued contextRef="c-8" decimals="0" id="f-1311" unitRef="usd">2219000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestAccrued>
    <cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="c-1" decimals="0" id="f-1312" unitRef="usd">650000</cgnx:MinimumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves contextRef="c-1" decimals="0" id="f-1313" unitRef="usd">1000000</cgnx:MaximumDecreaseInIncomeTaxExpenseDueToReleaseInReserves>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-221"
      decimals="3"
      id="f-1314"
      unitRef="number">0.125</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-222"
      decimals="2"
      id="f-1315"
      unitRef="number">0.25</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-223"
      decimals="3"
      id="f-1316"
      unitRef="number">0.346</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-224"
      decimals="3"
      id="f-1317"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="c-225"
      decimals="2"
      id="f-1318"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-1" decimals="2" id="f-1319" unitRef="number">0.06</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-4" decimals="2" id="f-1320" unitRef="number">0.07</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential contextRef="c-5" decimals="2" id="f-1321" unitRef="number">0.05</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-1" decimals="-3" id="f-1322" unitRef="usd">1032000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-4" decimals="-3" id="f-1323" unitRef="usd">229000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense contextRef="c-5" decimals="-3" id="f-1324" unitRef="usd">281000</us-gaap:UnrecognizedTaxBenefitsIncomeTaxPenaltiesAndInterestExpense>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-1" decimals="0" id="f-1325" unitRef="usd">56618000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-4" decimals="0" id="f-1326" unitRef="usd">57016000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet contextRef="c-5" decimals="0" id="f-1327" unitRef="usd">49435000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock contextRef="c-1" id="f-1328">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The tax effects of temporary differences and attributes that give rise to deferred income tax assets and liabilities as of December 31, 2023 and December 31, 2022 were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:66.495%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.735%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.737%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Intangible asset in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;375,360&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;386,221&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;20,916&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Tax credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;7,848&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,284&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventory and revenue related&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;10,897&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Bonuses, commissions, and other compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;6,243&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,116&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,840&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,881&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign net operating losses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;339&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Capitalization of R&amp;amp;D expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;28,521&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;5,514&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;457,478&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;466,625&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(943)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,661)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;456,535&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;458,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Amortization&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(28,685)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,762)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;GILTI tax basis differences in connection with change in tax structure&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(274,327)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(298,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;(303,012)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(301,684)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net deferred taxes&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;153,523&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;157,280&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure contextRef="c-7" decimals="-3" id="f-1329" unitRef="usd">375360000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure contextRef="c-8" decimals="-3" id="f-1330" unitRef="usd">386221000</cgnx:DeferredTaxAssetsIntangibleAssetChangeinTaxStructure>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-7" decimals="-3" id="f-1331" unitRef="usd">20916000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost contextRef="c-8" decimals="-3" id="f-1332" unitRef="usd">21962000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic contextRef="c-7" decimals="-3" id="f-1333" unitRef="usd">7848000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic contextRef="c-8" decimals="-3" id="f-1334" unitRef="usd">8284000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-7" decimals="-3" id="f-1335" unitRef="usd">10897000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory contextRef="c-8" decimals="-3" id="f-1336" unitRef="usd">8117000</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="c-7" decimals="-3" id="f-1337" unitRef="usd">6243000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther contextRef="c-8" decimals="-3" id="f-1338" unitRef="usd">5116000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsOther>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="c-7" decimals="-3" id="f-1339" unitRef="usd">1840000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <cgnx:NoncurrentDeferredTaxAssetsDeprecation contextRef="c-8" decimals="-3" id="f-1340" unitRef="usd">4881000</cgnx:NoncurrentDeferredTaxAssetsDeprecation>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-7" decimals="-3" id="f-1341" unitRef="usd">339000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-8" decimals="-3" id="f-1342" unitRef="usd">53000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses contextRef="c-7" decimals="-3" id="f-1343" unitRef="usd">28521000</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses contextRef="c-8" decimals="-3" id="f-1344" unitRef="usd">16889000</cgnx:DeferredTaxAssetsCapitalizationOfResearchAndDevelopmentExpenses>
    <cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="c-7" decimals="-3" id="f-1345" unitRef="usd">5514000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsOtherNoncurrent contextRef="c-8" decimals="-3" id="f-1346" unitRef="usd">15102000</cgnx:DeferredTaxAssetsOtherNoncurrent>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross contextRef="c-7" decimals="-3" id="f-1347" unitRef="usd">457478000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross contextRef="c-8" decimals="-3" id="f-1348" unitRef="usd">466625000</cgnx:DeferredTaxAssetsWithJurisdictionalNettingGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-7" decimals="-3" id="f-1349" unitRef="usd">943000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-8" decimals="-3" id="f-1350" unitRef="usd">7661000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet contextRef="c-7" decimals="-3" id="f-1351" unitRef="usd">456535000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet contextRef="c-8" decimals="-3" id="f-1352" unitRef="usd">458964000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-7" decimals="-3" id="f-1353" unitRef="usd">28685000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment contextRef="c-8" decimals="-3" id="f-1354" unitRef="usd">2762000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome contextRef="c-7" decimals="-3" id="f-1355" unitRef="usd">274327000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome contextRef="c-8" decimals="-3" id="f-1356" unitRef="usd">298922000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <us-gaap:DeferredTaxLiabilities contextRef="c-7" decimals="-3" id="f-1357" unitRef="usd">303012000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities contextRef="c-8" decimals="-3" id="f-1358" unitRef="usd">301684000</us-gaap:DeferredTaxLiabilities>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet contextRef="c-7" decimals="-3" id="f-1359" unitRef="usd">153523000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredIncomeTaxAssetsLiabilitiesNet contextRef="c-8" decimals="-3" id="f-1360" unitRef="usd">157280000</cgnx:DeferredIncomeTaxAssetsLiabilitiesNet>
    <cgnx:DeferredTaxAssetsForeignTaxStructureChange contextRef="c-226" decimals="0" id="f-1361" unitRef="usd">437500000</cgnx:DeferredTaxAssetsForeignTaxStructureChange>
    <cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome contextRef="c-226" decimals="0" id="f-1362" unitRef="usd">350000000</cgnx:DeferredTaxLiabilitiesTaxCutsAndJobsActGlobalIntangibleLowTaxIncome>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign contextRef="c-227" decimals="0" id="f-1363" unitRef="usd">1720000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsForeign>
    <cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState contextRef="c-228" decimals="0" id="f-1364" unitRef="usd">8740000</cgnx:DeferredTaxAssetsTaxCreditCarryforwardsState>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign contextRef="c-227" decimals="0" id="f-1365" unitRef="usd">943000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsForeign>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-7" decimals="-3" id="f-1366" unitRef="usd">943000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance contextRef="c-229" decimals="0" id="f-1367" unitRef="usd">5427000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:EarningsPerShareTextBlock contextRef="c-1" id="f-1368">Weighted Average Shares&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.058%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.124%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;172,249&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;176,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,150&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;173,399&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;174,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options to purchase 6,854,092, 4,715,104, and 497,504 shares of common stock, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. Restricted stock units totaling 365, 26,079, and 605 that will be settled in shares of common stock to the extent they vest, on a weighted-average basis, were outstanding in 2023, 2022, and 2021, respectively, but were not included in the calculation of dilutive net income per share because they were anti-dilutive. No PRSUs were excluded in the calculation of dilutive net income per share in 2023, 2022, and 2021 as PRSUs were not anti-dilutive on a weighted-average basis.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock contextRef="c-1" id="f-1369">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average shares were calculated as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:55.058%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.976%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.124%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="15" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Year Ended December&#160;31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Basic weighted-average common shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;172,249&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;173,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;176,463&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Effect of dilutive stock awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,150&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,453&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Diluted weighted-average common and common-equivalent shares outstanding&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;173,399&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;174,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;179,916&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfWeightedAverageNumberOfSharesTableTextBlock>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-1" decimals="-3" id="f-1370" unitRef="shares">172249000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-4" decimals="-3" id="f-1371" unitRef="shares">173407000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic contextRef="c-5" decimals="-3" id="f-1372" unitRef="shares">176463000</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-1" decimals="-3" id="f-1373" unitRef="shares">1150000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-4" decimals="-3" id="f-1374" unitRef="shares">1462000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment contextRef="c-5" decimals="-3" id="f-1375" unitRef="shares">3453000</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-1" decimals="-3" id="f-1376" unitRef="shares">173399000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-4" decimals="-3" id="f-1377" unitRef="shares">174869000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding contextRef="c-5" decimals="-3" id="f-1378" unitRef="shares">179916000</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-230"
      decimals="0"
      id="f-1379"
      unitRef="shares">6854092</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-231"
      decimals="0"
      id="f-1380"
      unitRef="shares">4715104</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-232"
      decimals="0"
      id="f-1381"
      unitRef="shares">497504</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-233"
      decimals="0"
      id="f-1382"
      unitRef="shares">365</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-234"
      decimals="0"
      id="f-1383"
      unitRef="shares">26079</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-235"
      decimals="0"
      id="f-1384"
      unitRef="shares">605</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-236"
      decimals="0"
      id="f-1385"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-237"
      decimals="0"
      id="f-1386"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="c-238"
      decimals="0"
      id="f-1387"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock contextRef="c-1" id="f-1388">Segment and Geographic Information&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company operates in one segment, machine vision technology. The Company has a single, company-wide management team that administers operations as a whole rather than as discrete operating segments. The Company&#x2019;s chief operating decision maker is the chief executive officer, who makes decisions to allocate resources and assesses performance at the corporate level, without regard to geography, product line, or end market. The Company offers a variety of machine vision products that have similar economic characteristics and are distributed by the same sales channels to the same types of customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:28.665%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.243%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.393%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;United&#160;States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Greater China &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;288,324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,665&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,115&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;62,946&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,005&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,028&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,958&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,937&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;343,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;393,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;195,529&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;63,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;960&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;84,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue is presented geographically based on the customer&#x2019;s country of domicile. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from a single customer accounted for 11% and 17% of total revenue in 2022 and 2021, respectively. Revenue from this customer was not greater than 10% of total revenue in 2023. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenue from a second customer accounted for 11% of total revenue in 2022. Revenue from this customer was not greater than 10% of total revenue in 2023 or 2021. Accounts receivable from this customer was not greater than 10% of total accounts receivable as of December 31, 2023 or December 31, 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:NumberOfReportableSegments
      contextRef="c-1"
      decimals="INF"
      id="f-1389"
      unitRef="segment">1</us-gaap:NumberOfReportableSegments>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock contextRef="c-1" id="f-1390">&lt;div style="margin-top:5pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes information about geographic areas (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.707%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:28.665%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.243%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.389%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.533%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:12.393%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;United&#160;States&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Europe&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Greater China &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;288,324&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;220,665&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,115&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;164,443&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;837,547&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;62,946&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,005&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;17,028&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;15,958&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;112,937&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;343,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;234,643&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,447&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,165&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,006,090&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,928&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,334&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;86,357&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Year Ended December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;393,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;247,744&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;195,529&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,037,098&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Long-lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;63,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;960&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;84,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-239" decimals="-3" id="f-1391" unitRef="usd">288324000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-157" decimals="-3" id="f-1392" unitRef="usd">220665000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-160" decimals="-3" id="f-1393" unitRef="usd">164115000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-240" decimals="-3" id="f-1394" unitRef="usd">164443000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-1" decimals="-3" id="f-1395" unitRef="usd">837547000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-241" decimals="-3" id="f-1396" unitRef="usd">62946000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-242" decimals="-3" id="f-1397" unitRef="usd">17005000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-243" decimals="-3" id="f-1398" unitRef="usd">17028000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-244" decimals="-3" id="f-1399" unitRef="usd">15958000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-7" decimals="-3" id="f-1400" unitRef="usd">112937000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-245" decimals="-3" id="f-1401" unitRef="usd">343835000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-158" decimals="-3" id="f-1402" unitRef="usd">234643000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-161" decimals="-3" id="f-1403" unitRef="usd">227447000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-246" decimals="-3" id="f-1404" unitRef="usd">200165000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-4" decimals="-3" id="f-1405" unitRef="usd">1006090000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-247" decimals="-3" id="f-1406" unitRef="usd">66928000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-248" decimals="-3" id="f-1407" unitRef="usd">14725000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-249" decimals="-3" id="f-1408" unitRef="usd">1334000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-250" decimals="-3" id="f-1409" unitRef="usd">3370000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-8" decimals="-3" id="f-1410" unitRef="usd">86357000</us-gaap:NoncurrentAssets>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-251" decimals="-3" id="f-1411" unitRef="usd">393690000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-159" decimals="-3" id="f-1412" unitRef="usd">247744000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-162" decimals="-3" id="f-1413" unitRef="usd">200135000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-252" decimals="-3" id="f-1414" unitRef="usd">195529000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax contextRef="c-5" decimals="-3" id="f-1415" unitRef="usd">1037098000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets contextRef="c-253" decimals="-3" id="f-1416" unitRef="usd">63141000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-254" decimals="-3" id="f-1417" unitRef="usd">16982000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-255" decimals="-3" id="f-1418" unitRef="usd">960000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-256" decimals="-3" id="f-1419" unitRef="usd">3705000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets contextRef="c-9" decimals="-3" id="f-1420" unitRef="usd">84788000</us-gaap:NoncurrentAssets>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-257"
      decimals="2"
      id="f-1421"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-258"
      decimals="2"
      id="f-1422"
      unitRef="number">0.17</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="c-259"
      decimals="2"
      id="f-1423"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:BusinessCombinationDisclosureTextBlock contextRef="c-1" id="f-1425">Business Combinations&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;Moritex Corporation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On October 18, 2023, the Company acquired all the outstanding shares of Moritex Corporation (Moritex), a global provider of premium optical components based in Japan, for an enterprise value of &#xa5;40&#160;billion Japanese Yen, or approximately $270&#160;million U.S. Dollars based on the closing date foreign exchange rate. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The cash-free, debt-free enterprise value was adjusted by cash acquired, debt assumed, and final working capital balances to arrive at total consideration to be allocated to assets acquired and liabilities assumed of &#xa5;44,376,245,000 ($296,138,000 based on the closing date foreign exchange rate), of which &#xa5;44,227,414,000 ($295,144,000) was paid in cash on the closing date and &#xa5;148,831,000 ($994,000) is expected to be paid in the first quarter of 2024 as a final purchase price adjustment based on the closing balance sheet. The Company acquired cash balances totaling $38,088,000 as part of this transaction, to arrive at a net cash outflow of $257,056,000 on the closing date. There was no contingent consideration as part of this transaction.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Established in 1973, Moritex develops, manufactures, and sells high-end optical components, such as lenses and lighting, for industrial use. The acquisition of Moritex is expected to increase the Company's optical technology capabilities, which include our proprietary embedded liquid lenses and, more recently, computational lighting from our 2022 acquisition of SAC Sirius Advanced Cybernetics GmbH (described below). Vision technology relies on acquiring high-quality images to optimize the performance of machine vision tools. Historically, our customers have primarily used third-party lenses and lighting for image acquisition. We anticipate the portfolio of Moritex optical components will allow us to expand our served market to include high-end lenses and lighting and provide our customers with a more complete product offering by replacing third-party components with Cognex-manufactured optical components. Moritex also provides the Company with a more substantial presence in Japan, which is an important machine vision market where we believe we can increase our share through a stronger local presence. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;This transaction was accounted for as a business combination. As of the date of this filing, the purchase price allocation is preliminary and may change during the one-year measurement period ending October 18, 2024 as new &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;information becomes available, particularly related to tax positions reflected as of the acquisition date. Identifiable assets acquired and liabilities assumed were recorded at their estimated fair values, which were valued using level 3 inputs, as of the acquisition date. Pro-forma information, as well as revenue and earnings from the date of the acquisition, are not presented because they are not material to the Company&#x2019;s consolidated financial statements. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Transaction costs were approximately $5,800,000 and were expensed as incurred as part of SG&amp;amp;A expenses on the Consolidated Statement of Operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The purchase price was allocated based on provisional amounts as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.016%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.784%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,700)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(13,521)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22,055)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,594)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;Purchase price&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;296,138&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The customer relationships, completed technologies, and trademarks are included in "Intangible assets" on the Consolidated Balance &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sheet.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The customer relationships are being amortized to SG&amp;amp;A expenses over fifteen years, the completed technologies are being amortized to cost of revenue over nine years, and the trademarks are being amortized to SG&amp;amp;A expenses over three years. None of the acquired goodwill is deductible for tax purposes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;text-decoration:underline"&gt;SAC Sirius Advanced Cybernetics GmbH&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 7, 2022, the Company acquired all of the outstanding shares of SAC Sirius Advanced Cybernetics GmbH ("SAC"), a leader in computational lighting technology based in Germany. The acquisition of SAC and its technology is expected to expand the Company&#x2019;s capabilities in defect detection, and accelerate its growth trajectory with electric vehicle battery manufacturers. The purchase price of the acquisition was not material to the Company's consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationDisclosureTextBlock>
    <cgnx:BusinessCombinationEnterpriseValue contextRef="c-89" decimals="-9" id="f-1426" unitRef="jpy">40000000000</cgnx:BusinessCombinationEnterpriseValue>
    <cgnx:BusinessCombinationEnterpriseValue contextRef="c-89" decimals="-6" id="f-1427" unitRef="usd">270000000</cgnx:BusinessCombinationEnterpriseValue>
    <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="c-260" decimals="-3" id="f-1428" unitRef="jpy">44376245000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationConsiderationTransferred1 contextRef="c-260" decimals="-3" id="f-1429" unitRef="usd">296138000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-260" decimals="-3" id="f-1430" unitRef="jpy">44227414000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-260" decimals="-3" id="f-1431" unitRef="usd">295144000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-261" decimals="-3" id="f-1432" unitRef="jpy">148831000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross contextRef="c-261" decimals="-3" id="f-1433" unitRef="usd">994000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="c-89" decimals="-3" id="f-1434" unitRef="usd">38088000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired contextRef="c-260" decimals="-3" id="f-1435" unitRef="usd">257056000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:AssetAcquisitionConsiderationTransferredTransactionCost contextRef="c-260" decimals="-3" id="f-1436" unitRef="usd">5800000</us-gaap:AssetAcquisitionConsiderationTransferredTransactionCost>
    <us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock contextRef="c-1" id="f-1437">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The purchase price was allocated based on provisional amounts as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:79.016%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:18.784%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Property, plant and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,047&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;66,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Completed technologies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;32,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,516&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,935&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accounts payable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,700)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Accrued expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(13,521)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred income tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22,055)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve for income taxes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,864)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,594)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&#160;&#160;Purchase price&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;296,138&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRecognizedIdentifiedAssetsAcquiredAndLiabilitiesAssumedTableTextBlock>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents contextRef="c-89" decimals="-3" id="f-1438" unitRef="usd">38088000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCashAndEquivalents>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables contextRef="c-89" decimals="-3" id="f-1439" unitRef="usd">11572000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsReceivables>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory contextRef="c-89" decimals="-3" id="f-1440" unitRef="usd">22788000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment contextRef="c-89" decimals="-3" id="f-1441" unitRef="usd">19876000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedPropertyPlantAndEquipment>
    <us-gaap:Goodwill contextRef="c-89" decimals="-3" id="f-1442" unitRef="usd">145047000</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-120" decimals="-3" id="f-1443" unitRef="usd">66900000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-122" decimals="-3" id="f-1444" unitRef="usd">32300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles contextRef="c-124" decimals="-3" id="f-1445" unitRef="usd">850000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets contextRef="c-89" decimals="-3" id="f-1446" unitRef="usd">4516000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets contextRef="c-89" decimals="-3" id="f-1447" unitRef="usd">4935000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedOtherNoncurrentAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable contextRef="c-89" decimals="-3" id="f-1448" unitRef="usd">6700000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilitiesAccountsPayable>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities contextRef="c-89" decimals="-3" id="f-1449" unitRef="usd">13521000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities contextRef="c-89" decimals="-3" id="f-1450" unitRef="usd">22055000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes contextRef="c-89" decimals="-3" id="f-1451" unitRef="usd">5864000</cgnx:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedReserveForIncomeTaxes>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther contextRef="c-89" decimals="-3" id="f-1452" unitRef="usd">2594000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedNoncurrentLiabilitiesOther>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet contextRef="c-89" decimals="-3" id="f-1453" unitRef="usd">296138000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredGoodwillAndLiabilitiesAssumedNet>
    <cgnx:CatastropheTextBlock contextRef="c-1" id="f-1454">Loss (Recovery) from Fire&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 7, 2022, the Company&#x2019;s primary contract manufacturer experienced a fire at its plant in Indonesia. The fire destroyed a significant amount of Cognex-owned consigned inventories, as well as component inventories owned by the contract manufacturer that were designated for Cognex products. There was no significant damage to the Company's production equipment. Since the date of the fire, the Company has worked with the contract manufacturer to resume production, maintain standards of product quality, and replenish inventories destroyed by the fire. The Company has also been working to ramp up an additional contract manufacturer to further mitigate risk, diversify supply chain, and expand production capacity. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2022, the Company recorded a net loss related to the fire of $20,779,000, consisting primarily of losses of inventories and other assets of $48,339,000, partially offset by insurance proceeds received from the Company's insurance carrier of $27,560,000. In 2023, the Company recorded recoveries related to the fire of $8,000,000, consisting of $2,500,000 for proceeds received from the Company's insurance carrier in relation to a business interruption claim and $5,500,000 for proceeds received as part of a financial settlement for lost inventory and other losses incurred as a result of the fire. Management does not anticipate additional recoveries. These losses and recoveries are presented in the caption "Loss (recovery) from fire" on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;</cgnx:CatastropheTextBlock>
    <us-gaap:LossFromCatastrophes contextRef="c-262" decimals="-3" id="f-1455" unitRef="usd">20779000</us-gaap:LossFromCatastrophes>
    <cgnx:GrossLossFromCatastrophes contextRef="c-262" decimals="-3" id="f-1456" unitRef="usd">48339000</cgnx:GrossLossFromCatastrophes>
    <us-gaap:InsuranceRecoveries contextRef="c-262" decimals="-3" id="f-1457" unitRef="usd">27560000</us-gaap:InsuranceRecoveries>
    <us-gaap:InsuranceRecoveries contextRef="c-263" decimals="-3" id="f-1458" unitRef="usd">8000000</us-gaap:InsuranceRecoveries>
    <cgnx:InsuranceRecoveriesBusinessInterruption contextRef="c-263" decimals="-3" id="f-1459" unitRef="usd">2500000</cgnx:InsuranceRecoveriesBusinessInterruption>
    <cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses contextRef="c-263" decimals="-3" id="f-1460" unitRef="usd">5500000</cgnx:InsuranceRecoveriesLostInventoryAndOtherLosses>
    <us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock contextRef="c-1" id="f-1461">Restructuring Charges&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2022, following its acquisition of SAC Sirius Advanced Cybernetics GmbH (refer to Note 21), the Company completed restructuring activities to align the cost and operating structure of the acquired business with the Company's business strategy. The restructuring activities included a workforce reduction of 18 employees and the termination of certain operating lease contracts, and resulted in charges of $1,657,000 in 2022. These charges are included in &#x201c;Restructuring charges&#x201d; on the Consolidated Statements of Operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.194%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:16pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the activity in the Company&#x2019;s restructuring reserve, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.104%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.081%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.546%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(973)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,048)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:RestructuringAndRelatedActivitiesDisclosureTextBlock>
    <us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated
      contextRef="c-4"
      decimals="0"
      id="f-1462"
      unitRef="employees">18</us-gaap:RestructuringAndRelatedCostNumberOfPositionsEliminated>
    <us-gaap:RestructuringCharges contextRef="c-4" decimals="-3" id="f-1463" unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock contextRef="c-1" id="f-1464">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the restructuring charges for the year ended December 31, 2022 (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:72.876%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.530%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:24.194%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Amount&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;One-time termination benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Contract termination costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;1,657&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringAndRelatedCostsTextBlock>
    <us-gaap:RestructuringCharges contextRef="c-264" decimals="-3" id="f-1465" unitRef="usd">1584000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-265" decimals="-3" id="f-1466" unitRef="usd">73000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-4" decimals="-3" id="f-1467" unitRef="usd">1657000</us-gaap:RestructuringCharges>
    <us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock contextRef="c-1" id="f-1468">&lt;div style="margin-bottom:16pt;margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the activity in the Company&#x2019;s restructuring reserve, which is included in &#x201c;Accrued expenses&#x201d; on the Consolidated Balance Sheets (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:52.701%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.104%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:13.081%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.384%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:14.546%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;One-time Termination Benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Contract Termination Costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restructuring charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,584&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(646)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;28&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;75&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(973)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(75)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,048)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Foreign exchange rate changes&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Balance as of December 31, 2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestructuringReserveByTypeOfCostTextBlock>
    <us-gaap:RestructuringReserve contextRef="c-266" decimals="-3" id="f-1469" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-267" decimals="-3" id="f-1470" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-268" decimals="-3" id="f-1471" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringCharges contextRef="c-269" decimals="-3" id="f-1472" unitRef="usd">-1584000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-270" decimals="-3" id="f-1473" unitRef="usd">-73000</us-gaap:RestructuringCharges>
    <us-gaap:RestructuringCharges contextRef="c-271" decimals="-3" id="f-1474" unitRef="usd">-1657000</us-gaap:RestructuringCharges>
    <us-gaap:PaymentsForRestructuring contextRef="c-269" decimals="-3" id="f-1475" unitRef="usd">646000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring contextRef="c-270" decimals="-3" id="f-1476" unitRef="usd">0</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring contextRef="c-271" decimals="-3" id="f-1477" unitRef="usd">646000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-269" decimals="-3" id="f-1478" unitRef="usd">26000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-270" decimals="-3" id="f-1479" unitRef="usd">2000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-271" decimals="-3" id="f-1480" unitRef="usd">28000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve contextRef="c-272" decimals="-3" id="f-1481" unitRef="usd">964000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-273" decimals="-3" id="f-1482" unitRef="usd">75000</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-274" decimals="-3" id="f-1483" unitRef="usd">1039000</us-gaap:RestructuringReserve>
    <us-gaap:PaymentsForRestructuring contextRef="c-275" decimals="-3" id="f-1484" unitRef="usd">973000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring contextRef="c-276" decimals="-3" id="f-1485" unitRef="usd">75000</us-gaap:PaymentsForRestructuring>
    <us-gaap:PaymentsForRestructuring contextRef="c-277" decimals="-3" id="f-1486" unitRef="usd">1048000</us-gaap:PaymentsForRestructuring>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-275" decimals="-3" id="f-1487" unitRef="usd">9000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-276" decimals="-3" id="f-1488" unitRef="usd">0</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserveTranslationAdjustment contextRef="c-277" decimals="-3" id="f-1489" unitRef="usd">9000</us-gaap:RestructuringReserveTranslationAdjustment>
    <us-gaap:RestructuringReserve contextRef="c-278" decimals="-3" id="f-1490" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-279" decimals="-3" id="f-1491" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:RestructuringReserve contextRef="c-280" decimals="-3" id="f-1492" unitRef="usd">0</us-gaap:RestructuringReserve>
    <us-gaap:SubsequentEventsTextBlock contextRef="c-1" id="f-1493">Subsequent Events&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 15, 2024, the Company's Board of Directors declared a cash dividend of $0.075 per share. The dividend is payable March 14, 2024 to all shareholders of record as of the close of business on February 29, 2024.&lt;/span&gt;&lt;/div&gt;</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:DividendsPayableAmountPerShare
      contextRef="c-281"
      decimals="INF"
      id="f-1494"
      unitRef="usdPerShare">0.075</us-gaap:DividendsPayableAmountPerShare>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock contextRef="c-1" id="f-1495">SCHEDULE II &#x2013; VALUATION AND QUALIFYING ACCOUNTS&lt;div style="margin-top:5pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.269%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:30.711%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:0.536%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.914%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:2.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.472%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:2.581%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;td style="width:1.0%"&gt;&lt;/td&gt;&lt;td style="width:8.481%"&gt;&lt;/td&gt;&lt;td style="width:0.1%"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Additions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance&#160;at&lt;br/&gt;Beginning&lt;br/&gt;of Period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Charged&#160;to&lt;br/&gt;Costs and&lt;br/&gt;Expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Charged&lt;br/&gt;to Other&lt;br/&gt;Accounts&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Deductions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Balance&#160;at&lt;br/&gt;End of&lt;br/&gt;Period&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="33" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(In thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Allowance for Credit Losses on Accounts Receivable:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(645)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;583&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;191&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(237)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;831&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(55)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;776&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Reserve&#160;for Sales Returns:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;500&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,018&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,291&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,518&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Deferred Tax Valuation Allowance:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,718)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;943&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,188&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,650)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,661&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 7.75pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,568&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,420&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,800)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,188&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;padding-left:36pt;text-indent:-36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt"&gt;Specific write-offs&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-indent:-36pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:23.78pt"&gt;Foreign currency exchange rate changes&lt;/span&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-282" decimals="-3" id="f-1496" unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-283" decimals="-3" id="f-1497" unitRef="usd">500000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-283" decimals="-3" id="f-1498" unitRef="usd">645000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-283" decimals="-3" id="f-1499" unitRef="usd">-2000</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-284" decimals="-3" id="f-1500" unitRef="usd">583000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-285" decimals="-3" id="f-1501" unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-286" decimals="-3" id="f-1502" unitRef="usd">191000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-286" decimals="-3" id="f-1503" unitRef="usd">237000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-286" decimals="-3" id="f-1504" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-282" decimals="-3" id="f-1505" unitRef="usd">730000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-287" decimals="-3" id="f-1506" unitRef="usd">831000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-288" decimals="-3" id="f-1507" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-288" decimals="-3" id="f-1508" unitRef="usd">55000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-288" decimals="-3" id="f-1509" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-285" decimals="-3" id="f-1510" unitRef="usd">776000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-289" decimals="-3" id="f-1511" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-290" decimals="-3" id="f-1512" unitRef="usd">500000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-290" decimals="-3" id="f-1513" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-290" decimals="-3" id="f-1514" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-290" decimals="-3" id="f-1515" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-291" decimals="-3" id="f-1516" unitRef="usd">2018000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-292" decimals="-3" id="f-1517" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-293" decimals="-3" id="f-1518" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-293" decimals="-3" id="f-1519" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-293" decimals="-3" id="f-1520" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-293" decimals="-3" id="f-1521" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-289" decimals="-3" id="f-1522" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-294" decimals="-3" id="f-1523" unitRef="usd">1291000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-295" decimals="-3" id="f-1524" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-295" decimals="-3" id="f-1525" unitRef="usd">227000</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-295" decimals="-3" id="f-1526" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-295" decimals="-3" id="f-1527" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-292" decimals="-3" id="f-1528" unitRef="usd">1518000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-296" decimals="-3" id="f-1529" unitRef="usd">7661000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-297" decimals="-3" id="f-1530" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-297" decimals="-3" id="f-1531" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-297" decimals="-3" id="f-1532" unitRef="usd">6718000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-297" decimals="-3" id="f-1533" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-298" decimals="-3" id="f-1534" unitRef="usd">943000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-299" decimals="-3" id="f-1535" unitRef="usd">8188000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-300" decimals="-3" id="f-1536" unitRef="usd">2234000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-300" decimals="-3" id="f-1537" unitRef="usd">3889000</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-300" decimals="-3" id="f-1538" unitRef="usd">6650000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-300" decimals="-3" id="f-1539" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-296" decimals="-3" id="f-1540" unitRef="usd">7661000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-301" decimals="-3" id="f-1541" unitRef="usd">8568000</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense contextRef="c-302" decimals="-3" id="f-1542" unitRef="usd">1420000</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts contextRef="c-302" decimals="-3" id="f-1543" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions contextRef="c-302" decimals="-3" id="f-1544" unitRef="usd">1800000</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesAdjustments contextRef="c-302" decimals="-3" id="f-1545" unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesAdjustments>
    <us-gaap:ValuationAllowancesAndReservesBalance contextRef="c-299" decimals="-3" id="f-1546" unitRef="usd">8188000</us-gaap:ValuationAllowancesAndReservesBalance>
    <dei:AuditorName contextRef="c-1" id="f-1547">GRANT THORNTON LLP</dei:AuditorName>
    <dei:AuditorLocation contextRef="c-1" id="f-1548">Boston, Massachusetts</dei:AuditorLocation>
    <ecd:MtrlTermsOfTrdArrTextBlock contextRef="c-303" id="f-1549">&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;During the quarter ended December 31, 2023, the following Section 16 officer adopted a Rule 10b5-1 trading arrangement, as defined in Item 408 of Regulation S-K, that is intended to satisfy the affirmative defense conditions of the Exchange Act Rule 10b5-1(c):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:112%;padding-left:14.5pt"&gt;On December 12, 2023, Joerg Kuechen, the Chief Technology Officer of the Company, adopted a trading arrangement for the sale of shares of the Company&#x2019;s common stock (a &#x201c;Rule 10b5-1 Trading Plan&#x201d;). Mr. Kuechen&#x2019;s Rule 10b5-1 Trading Plan, which has a term ending on December 6, 2024, provides for the exercise of vested stock options to acquire up to 202,556 shares of common stock and the sale of up to 215,818 shares of common stock pursuant to the terms of the plan. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:115%"&gt;During the quarter ended December 31, 2023, no 10b5-1 trading arrangements were modified or terminated, and no director or officer of the Company adopted or terminated a &#x201c;non-Rule 10b5-1 trading arrangement,&#x201d; as defined in Item 408 of Regulation S-K.&lt;/span&gt;&lt;/div&gt;</ecd:MtrlTermsOfTrdArrTextBlock>
    <ecd:TrdArrAdoptionDate contextRef="c-303" id="f-1550">December 12, 2023</ecd:TrdArrAdoptionDate>
    <ecd:TrdArrIndName contextRef="c-303" id="f-1551">Joerg Kuechen</ecd:TrdArrIndName>
    <ecd:TrdArrIndTitle contextRef="c-303" id="f-1552">Chief Technology Officer</ecd:TrdArrIndTitle>
    <ecd:Rule10b51ArrAdoptedFlag contextRef="c-303" id="f-1553">true</ecd:Rule10b51ArrAdoptedFlag>
    <ecd:TrdArrSecuritiesAggAvailAmt
      contextRef="c-304"
      decimals="INF"
      id="f-1554"
      unitRef="shares">202556</ecd:TrdArrSecuritiesAggAvailAmt>
    <ecd:TrdArrSecuritiesAggAvailAmt
      contextRef="c-305"
      decimals="INF"
      id="f-1555"
      unitRef="shares">215818</ecd:TrdArrSecuritiesAggAvailAmt>
    <ecd:NonRule10b51ArrAdoptedFlag contextRef="c-186" id="f-1556">false</ecd:NonRule10b51ArrAdoptedFlag>
    <ecd:NonRule10b51ArrTrmntdFlag contextRef="c-186" id="f-1557">false</ecd:NonRule10b51ArrTrmntdFlag>
    <ecd:Rule10b51ArrTrmntdFlag contextRef="c-186" id="f-1558">false</ecd:Rule10b51ArrTrmntdFlag>
    <link:footnoteLink
      xlink:role="http://www.xbrl.org/2003/role/link"
      xlink:type="extended">
        <link:loc xlink:href="#f-93" xlink:label="f-93" xlink:type="locator"/>
        <link:loc xlink:href="#f-92" xlink:label="f-92" xlink:type="locator"/>
        <link:loc xlink:href="#f-94" xlink:label="f-94" xlink:type="locator"/>
        <link:footnote id="fn-1" xlink:label="fn-1" xlink:role="http://www.xbrl.org/2003/role/footnote" xlink:type="resource" xml:lang="en-US"><xhtml:span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%">175,790&#160;</xhtml:span></link:footnote>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-93"
          xlink:to="fn-1"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-92"
          xlink:to="fn-1"
          xlink:type="arc"/>
        <link:footnoteArc
          xlink:arcrole="http://www.xbrl.org/2003/arcrole/fact-footnote"
          xlink:from="f-94"
          xlink:to="fn-1"
          xlink:type="arc"/>
    </link:footnoteLink>
</xbrl>
</XML>
</TEXT>
</DOCUMENT>
</SEC-DOCUMENT>
